Les posteurs les plus actifs de la semaine


glmer

Aller en bas

glmer

Message par leab le Lun 26 Fév 2018 - 12:08

Bonjour,

Je cherche à analyser d'influence de différents paramètres (variables qualitatives) sur la croissance (variable quantitative) de différents individus (plantes). La croissance est obtenue par la différence entre le nombre de feuilles à T1 et à T0, ce qui me donne finalement un nombre de feuilles gagnées (nombre positif ou nul).

Mon jeu de données est constitué de la façon suivante :
Individu
Substrat (= substrat de culture des plantes) : terreau/naturel
Site (= site d'origine des populations) : SA/B/V
Génération (= date de récolte des graines) : 1950/2000
Nombre de feuilles gagnées pour chaque plant

J'ai au total six populations de plantes (trois sites d'origine X deux générations à chaque fois) et ces six populations sont cultivées à la fois en terreau et en sol naturel.
Les résidus sont non normaux (vérification pour chaque groupe). Grâce aux réponses à ma question précédente un peu similaire, je me suis dirigée vers glm avec "individu" en effet aléatoire :

glm2<-glmer(feuilles~site+substrat+generation+(1|individu), family=poisson("log"), data=F_gap)

Première question : par défaut le glmer fait un "Laplace approximation" mais j'aimerais faire un test de Wald car le nombre moyen de mes observations est >5 (choix d'après Bolker et al., 2008 : generalized linear mixed models: a pratical guide for ecology and evolution).
Je ne connais pas ce test et j'ai du mal à comprendre que signifie l'argument "Terms". J'ai essayé plusieurs chiffres (dont la taille de la matrice vcov) et j'obtiens l'erreur suivante : Error in `[<-`(`*tmp*`, i, Terms[i], value = 1) : subscript out of bounds. Pouvez-vous m'éclairer sur cet argument ?

Deuxième question : les résidus du glm ne suivent pas une loi normale, mais sont compris entre -2 et 2. Doivent-ils suivre une loi normale pour valider le modèle ?

Et une dernière : j'ai également testé un modèle avec interaction des effets :

glm1<-glmer(feuilles~site*substrat*generation*(1|individu), family=poisson("log"), data=F_gap).

Et là, le drame... Wink Le modèle "échoue à converger" : Model failed to converge with max|grad| = 0.0158484 (tol = 0.001, component 1). Que signifie cette erreur ? Le modèle est-il non valide ? Y a-t-il d'autres vérifications à faire pour s'en assurer ?

Merci pour votre aide !

leab

Nombre de messages : 4
Date d'inscription : 01/02/2018

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: glmer

Message par Eric Wajnberg le Lun 26 Fév 2018 - 13:24

Je ne suis pas sûr de bien comprendre. Pour chaque individu, vous faites une mesure (variation entre T0 et T1). Vous n'avez donc qu'une seule valeur par individu. Comment alors le facteur "individu" peut-il être entré dans le modèle comme facteur aléatoire ? Il y a quelque chose qui m'échappe ici.

Par ailleurs, un test de Wald fonctionne "paramètre par paramètre" et n'est ni très puissant, ni recommandé. Vous devriez partir sur des tests de rapport de vraisemblance, et la fonction anova() de R fait ca très bien, et très facilement.

Enfin, vous ajustez une régression log-linéaire (sur données de comptage, Poisson). On n'est plus dans le monde gaussien ici, et les résidus ne doivent pas (et ne peuvent pas) suivre des lois normales.

Résoudre déjà ces quelques points devrait faire progresser les choses, je pense.

HTH, Eric.
avatar
Eric Wajnberg

Nombre de messages : 950
Date d'inscription : 14/09/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum