régression polytomique - sélection de modèles

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Alice Fouillouze
Messages : 4
Enregistré le : 12 Aoû 2022, 14:02

régression polytomique - sélection de modèles

Messagepar Alice Fouillouze » 02 Sep 2022, 13:30

Bonjour,
J’étudie actuellement différents paramètres qui pourraient influencer la volonté des gens à s’impliquer dans des activités en faveur de la biodiversité (variable "invol").

J’ai pour cela dû faire tourner sur R un modèle de régression logistique ordinale polytomique avec ces variables (facteurs) :
- "Ins" (la « force » de connexion avec la nature des individus : échelle de 1 à 7)
- "Satisfaction" (leur implication engendrera-t-elle de la satisfaction selon eux : oui/non/jsp)
- "Ecomanagement" (est-ce qu’une gestion de la nature plus durable est-elle favorable selon eux : oui/non/jsp)

modlogit1 <-polr(invol ~ INS + satisfaction + ecomanagement, data = df4, Hess = TRUE)

J’ai ensuite rajouté les interactions entre INS et les autres variables :

modlogit2 <-polr(invol ~ INS + satisfaction + ecomanagement + INS*satisfaction + INS*ecomanagement, data = df4, Hess = TRUE)

Le problème : je rencontre des difficultés pour déterminer le modèle le plus significatif (celui avec les interactions ou celui sans). Je crois devoir faire un wald test mais malgré mes recherches, je ne parviens pas à coder correctement (j’ai en outre l’impression que le modèle de régression logistique ordinale polytomique est peu utilisé).

library(aod) #ce package ne fonctionne pas
install.packages(aod)
wald.test(Sigma = vcov(modlogit3), b = coef(modlogit3), Terms = ?:?) #terms = ?

Pourriez-vous dans ce cas m’aider dans la ligne de code svp ?
En vous remerciant,
Bonne soirée,
Alice

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: régression polytomique - sélection de modèles

Messagepar Logez Maxime » 08 Sep 2022, 12:06

Bonjour,

tu devrais jeter un oeil ici :
https://lrouviere.github.io/doc_cours/p ... stique.pdf

Cordialement,
Maxime

Alice Fouillouze
Messages : 4
Enregistré le : 12 Aoû 2022, 14:02

Re: régression polytomique - sélection de modèles

Messagepar Alice Fouillouze » 14 Sep 2022, 07:31

Bonjour Maxime,
Merci beaucoup pour le document. Après l'avoir lu, j'ai fait le code suivant mais malheureusement la réponse n'est pas celle que j'attendais et je ne sais pas comment l'interpréter du coup... Pourrais-tu me dire pourquoi j'obtiens ceci ?

> modlogit0 <- polr(invol~1,data=df4)
> statRV <- -2*(logLik(modlogit0)-logLik(modlogit))
> 1-pchisq(statRV,df=length(coef(modlogit))-length(coef(modlogit0)))
'log Lik.' 0 (df=2) #la réponse...

la sélection de modèles automatique ou la sélection manuelle en fonction des AIC ne suffirait-elle pas ?

Merci beaucoup !
Très bonne journée,
Alice

PS: modlogit est le modèle avec les interactions et a finalement plus de variables que dans mon message précédent:
modlogit<-polr(invol ~ INS + satisfaction + preservimp + ecomanagement + natfrequency + golfimpact + INS*satisfaction + INS*preservimp + INS*ecomanagement + INS*natfrequency + INS*golfimpact, data = df4, Hess = TRUE)
modlogit0 correspond au modèle sans interaction, c'est bien ça ?

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: régression polytomique - sélection de modèles

Messagepar jean lobry » 14 Sep 2022, 15:57

Bonjour Alice,

quand j'essaye d'exécuter ton code j'obtiens ceci :

Code : Tout sélectionner

> modlogit0 <- polr(invol~1,data=df4)
Error in polr(invol ~ 1, data = df4) :
  impossible de trouver la fonction "polr"


Tu trouveras facilement sur ce forum des conseils pour publier un code reproductible. C'est indispensable si tu veux que l'on puisse t'aider.

bien amicalement,

jean lobry

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: régression polytomique - sélection de modèles

Messagepar Logez Maxime » 14 Sep 2022, 18:32

Alice Fouillouze a écrit : modlogit0 <- polr(invol~1,data=df4)
> statRV <- -2*(logLik(modlogit0)-logLik(modlogit))
> 1-pchisq(statRV,df=length(coef(modlogit))-length(coef(modlogit0)))
'log Lik.' 0 (df=2) #la réponse...
La réponse est "bonne" c'est l'affichage qui est trompeur. Il ne faut pas tenir compte de tout ce qu'il y a derrière le 0 ce sont des héritages de la fonction logLik.

Un exemple (pas le même modèle mais peu importe) :

Code : Tout sélectionner

tab <- MASS:::mvrnorm(100, rep(0,2), matrix(c(1, 0.95, 0.95, 1), 2))
colnames(tab) <- c("x", "y")
tab <- as.data.frame(tab)
lm0 <- lm(y ~ 1, data = tab)
lm1 <- lm(y ~ x, data = tab)
1-pchisq(-2*(logLik(lm0)-logLik(lm1)), 1)

# pour ne garder que les valeurs numériques
1-pchisq(-2*(as.numeric(logLik(lm0))-as.numeric(logLik(lm1))), length(coef(lm1))-length(coef(lm0)))

Ce qui compte ici c'est le chiffre donc ton '0' qui correspond à la p-value.

Cordialement,
Maxime

Alice Fouillouze
Messages : 4
Enregistré le : 12 Aoû 2022, 14:02

Re: régression polytomique - sélection de modèles

Messagepar Alice Fouillouze » 16 Sep 2022, 08:58

Merci beaucoup Jean et Maxime pour vos réponses ! Je vais regarder tout ça en détail et je tenterai de mettre un code reproductible si je rencontre encore des difficultés (mais celui-ci est très long et il y a beaucoup de données que je ne peux pas diffuser - article scientifique en cours...).
Alice

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: régression polytomique - sélection de modèles

Messagepar jean lobry » 16 Sep 2022, 16:52

Bonjour Alice,

tu as bien raison : les données coutent cher et il n'est pas question de les divulguer tant que l'embargo n'est pas levé ! Mais ce n'est pas incompatible, bien le rebours, avec la notion d'exemple reproductible. Le premier truc c'est de ne donner qu'un sous-ensemble de tes données, la fonction sample() fait ça très bien, et ça permet de ne pas surcharger les serveurs pour rien grâce à un jeu de taille réduite. La seconde astuce c'est évidemment d'anonymiser les choses tant du point de vue des individus que des variables (c'est un peu de l'overkilling de mon point de vue, mais qui pourrait reprocher à quelqu'un d'avoir une attitude "ceinture-bretelles" vis-à-vis de ses employeurs ?)

Je ne compte plus le nombre de fois où en voulant construire un jeu de données anonymisé j'ai trouvé la solution au problème technique avant même d'avoir à poster la question...

bien amicalement,

jean lobry

Alice Fouillouze
Messages : 4
Enregistré le : 12 Aoû 2022, 14:02

Re: régression polytomique - sélection de modèles

Messagepar Alice Fouillouze » 25 Sep 2022, 17:46

Bonsoir Jean,
Merci pour les astuces, je saurai quoi faire la prochaine fois !
En attendant, j'ai trouvé les réponses à mes problèmes, tout roule :)
Bonne soirée, et encore merci pour la rapidité et la pertinence de vos réponses.
Alice


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité