lmer et tests post-hoc

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

Virginie Durier
Messages : 3
Enregistré le : 31 Mai 2017, 09:20

lmer et tests post-hoc

Messagepar Virginie Durier » 01 Juin 2017, 13:17

Bonjour

J'ai cherché sur le forum mais je n'ai pas trouvé la réponse à ma question, j'espère ne pas être redondante... et que vous pourrez m'aider.

J'observe des bébés qui regardent des videos et je mesure les temps de regard sur certaines zones en fonction du contexte (appelé Situation dans mon tableau de données). J'ai d'autres variables explicatives issues de la manip per se (histoire racontée, position du locuteur, ordre des videos) et issues des caractéristiques socio-démo des sujets (âge, sexe, CSP des parents, mode de garde). Je voudrais savoir si le temps de regard mesuré varie en fonction de ces variables.
J'ai donc fait le mlm suivant:
Mod_cib <- <-lmer(Variable ~ Situation* (Exp1+ Exp2+ Exp3 + SD1+ SD2+ SD3 + SD4) +(1|BB))

L'Anova du modèle donne ça:
> Anova(Mod_cib)
Analysis of Deviance Table (Type II Wald chisquare tests)

Response: Variable
Chisq Df Pr(>Chisq)
Situation 13.7452 2 0.001036 **
Exp1 1.4743 2 0.478486
Exp2 2.3470 2 0.309281
Exp3 3.6296 1 0.056759 .
SD1 0.5671 1 0.451408
SD2 0.0386 1 0.844182
SD3 5.1383 3 0.161945
SD4 8.6126 2 0.013483 *
Situation:Exp1 9.2446 4 0.055269 .
Situation:Exp2 2.8030 4 0.591319
Situation:Exp3 3.6384 2 0.162157
Situation:SD1 0.9563 2 0.619924
Situation:SD2 5.0637 2 0.079512 .
Situation:SD3 13.7538 6 0.032510 *
Situation:SD4 7.5089 4 0.111319

On est d'accord que j'ai une interaction Situation*SD3 ?
Je voudrais donc savoir comment ma variable varie en fonction de ces deux facteurs, c'est-à-dire si la réponse à Situation1 est différente de la réponse à Situation3 en fonction de si le BB est SD3_A ou SD3_B.
J'ai 3 modalités dans Situation et 4 modalités dans SD3, sachant qu'un BB a une donnée pour chaque Situation mais qu'il ne peut être que dans une modalité pour SD3.

J'ai utlisé difflsmeans() qui me donne donc une longue liste de comparaisons dont au moins la moitié n'a aucun intérêt statistique/biologique. Est-ce que ça pose problème (autre que visuel) d'avoir des comparaisons inutiles?
Est-ce qu'il y a d'autres façons de faire ces comparaisons multiples?

Merci beaucoup de votre aide
Virginie

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: lmer et tests post-hoc

Messagepar Florent Aubry » 02 Juin 2017, 20:47

1) Ne pas oublier de citer les packages utilisés : difflsmeans() est dans quel package ? et le lmer utilisé provient-il du même package ?
2) Donner le code utilisé : quels sont les arguments passés à difflsmeans() ?
3) Expliquer réellement le problème (quels sont les interactions d'intérêt ?)

La doc de difflsmeans dit :
Usage
difflsmeans(model, test.effs=NULL, ddf="Satterthwaite",...)

Arguments
model linear mixed effects model (lmer object).
test.effs charachter vector specifying names of terms to be tested. If NULL all the terms are tested.


Donc si test.effs est NULL, ce n'est pas étonnant qu'il y ait une tres longue liste.

Est-ce que ça pose problème (autre que visuel) d'avoir des comparaisons inutiles?
Plus il y a de comparaisons, plus la correction des comparaisons multiple est importante, donc ajouter des tests de différences non pertinentes risque de conduire à une inflation de rejets à tort de différences significatives.

Virginie Durier
Messages : 3
Enregistré le : 31 Mai 2017, 09:20

Re: lmer et tests post-hoc

Messagepar Virginie Durier » 06 Juin 2017, 04:43

Bonjour

Désolée pour les oublis, je n'y ai pas pensé. Alors:
1) difflsmeans vient du package lmerTest et lmer vient du package lme4

2) Code pour difflsmeans: difflsmeans(Mod_cib,test.eff="Situation:SD3")

3) Mais avec ça, j'ai quand même 3 situations et 4 SD3 donc 12 combinaisons possibles à comparer entre elles, ce qui me rend près de 70 comparaisons. Sauf que comparer la réponse à Sitation1-SD3A avec la réponse à Situation3-SD3C n'a aucun intérêt.

Ce qui m'intéresse, c'est de comparer pour chaque situation, les différences de réponse entre les SD3 et pour chaque SD3, les différences de réponse dans chaque situation.
S1-A vs S1-B
S1-A vs S1-C
S1-A vs S1-D
S1-B vs S1-C
S1-B vs S1-D
S1-C vs S1-D
A-S1 vs A-S2
A-S1 vs A-S3
A-S2 vs A-S3
etc...
Donc si mes calculs sont bons, environ 30 comparaisons.

Ma question est donc de savoir comment ne faire QUE ces comparaisons et pas toutes les autres qui ne veulent rien dire.

Merci

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: lmer et tests post-hoc

Messagepar Florent Aubry » 06 Juin 2017, 08:06

Merci des précisions. Je tiens à souligner que ces deux premiers points ne concernent pas seulement ta demande mais sont plus généraux ayant constaté que très souvent les personnes demandant de l'aide oublient de donner les précisions nécessaires à la compréhension de la demande, entre autres de donner le contexte et le véritable message d'erreur en cas d'erreur.

Ce qui m'intéresse, c'est de comparer pour chaque situation, les différences de réponse entre les SD3 et pour chaque SD3, les différences de réponse dans chaque situation.

- La première question qui se pose vu l'objectif (qui sort en fait de l'objectif de ce forum) porte sur la formule . Est-ce nécessaire d'analyser

Code : Tout sélectionner

Variable ~ Situation* (Exp1+ Exp2+ Exp3 + SD1+ SD2+ SD3 + SD4) +(1|BB)

ou faut-il se contenter d'utiliser une formule contenant le facteur aléatoire BB et les deux autres facteurs d'intérêt SD3 et Situation ? Il ne faut pas oublier que plus il y a de paramètres à estimer, moins l'analyse est robuste.

- La seconde question porte toujours sur la formule. Ce que tu sembles désirer est de tester Situation à l'intérieur de SD3 (question de modélisation du problème, théoriquement aussi hors du forum). Si c'est le cas, la véritable formule est

Code : Tout sélectionner

Variable ~ SD3 / Situation #equivalent  SD3 + SD3:Situation

- Enfin, je n'utiliserai pas lmerTest mais directement lm4r, même si ce dernier n'inclut pas les corrections de lmerTest, corrections qui n'interviennent pas dans le code ci-dessous, associé au package lsmeans :

Code : Tout sélectionner

require( lme4) # lmerTest est aussi valble
require( lsmeans)
res <- lmer( Variable ~ SD3 / Situation + (1 | BB), ...)
lsr <- lsmeans( res, ~ SD3 + Situation) # lmerTest::lsmeansLT n'est pas applicable pour la formule utilisee
pairs( lsr, by="SD3")

Cette dernière instruction devrait donner ce que tu cherches.

Virginie Durier
Messages : 3
Enregistré le : 31 Mai 2017, 09:20

Re: lmer et tests post-hoc

Messagepar Virginie Durier » 06 Juin 2017, 13:22

Merci beaucoup de prendre du temps sur mon problème.

Alors pour commencer, je me suis p-t mal expliquée. Si je m'intéresse à l'interaction Situation:SD3, c'est parce qu'elle ressort comme significative dans l'analyse de mon modèle.
Mais a priori, les autres facteurs aussi m'intéressent ou au moins peuvent expliquer ma variable, c'est pour cela que je les ai mis dans mon modèle.

En comparant les AIC de modèles avec moins de facteurs avec le modèle complet, j'ai enlevé des facteurs qui avaient peu d'incidence sur la variable. Il m'en reste quand même 5 avec 2 interactions significatives. Du coup, je m'interroge sur l'effet croisé de ces 2 facteurs sur ma variable sans a priori sur la hiérarchie de ces facteurs. Je reviens donc à ma 1ère question.
Si je regarde votre réponse, j'en conclus que je dois refaire un modèle pour chaque interaction. Je ne pensais pas qu'il fallait faire ça.
Ou est-ce que j'ai trop de facteurs "tout simplement"?

En ce qui concerne l'analyse de l'interaction, si j'essaie de résumer ma pensée avec des mots concrets (pour moi)
Admettons que SD3 soit l'âge des enfants et que Situation corresponde à plusieurs conditions expé, je veux savoir si ma variable change entre les conditions expé pour chaque classe d'âge (est-ce que les enfants de 3 mois réagissent différemment entre l'expé 1 et l'expé 2 ?) et si ma variable change entre les classes d'âge pour chaque expé (est-ce que les enfants de 3 mois et de 6 mois réagissent différemment dans l'expé 1).

Edit: J'ai utilisé le code que vous m'avez proposé (avec la fonction pairs...) et j'ai bien les comparaisons dont j'ai besoin et uniquement celles-ci si je fais :
(lsm.1<-lsmeans::lsmeans(Mod_cib,~Situation*SD3))
pairs(lsm.1, by="SD3")
pairs(lsm.1, by="Situation")

Pour rappel, mon modèle est construit ainsi: Mod_cib<-lmer(Var ~ Situation* (Exp1 + Exp2 + SD1 + SD2 + SD3) +(1|BB)

Si vous trouvez que je suis hors-sujet, savez-vous où je pourrais trouver mes réponses?
Encore merci

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: lmer et tests post-hoc

Messagepar Florent Aubry » 06 Juin 2017, 14:14

Si je regarde votre réponse, j'en conclus que je dois refaire un modèle pour chaque interaction. Je ne pensais pas qu'il fallait faire ça.
Ou est-ce que j'ai trop de facteurs "tout simplement"?

Non, je voulais simplement dire qu'il faut se limiter aux facteurs d'intérêt et non pas essayer de tout mettre dans un modèle. Ceci signifie qu'il faut peut-être ne conserver que les effets principaux et les interactions significatives (éventuellement celles dont le p est entre 0.05 et 0.1 aussi). Une manière de chercher le modèle adapté, bien que cette façon de procéder ne fait pas l'unanimité, est d'utiliser la fonction stepAIC du package MASS en partant une première fois du modèle maximum, celui que tu utilises, vers le modèle NULL (~ 1) puis en faisant l'inverse, partir du modèle NULL vers le modèle maximum. Si les deux modèles sont les mêmes, c'est celui-ci qu'on garde, sinon, celui dont l'AIC est le plus faible ou, si les deux AIC sont équivalents (en valeur relative, différents disons de moins de 5%), le plus simple des deux.

Si vous trouvez que je suis hors-sujet, savez-vous où je pourrais trouver mes réponses?
Ce forum est un forum sur les problèmes liés à R, l'utilisation de lmer, lmerTest, lsmeans en font partie mais pas réellement le problème de modélisation de l'expérience sauf si cela concerne la difficulté de le traduire en une formule R. Pour ce genre de question, un forum statistique comme le Forum des Statistiques (http://statistiques.forumpro.fr/) est plus adapté. En ce qui concerne les problèmes spécifiques de R, je pense que ce forum est le plus adapté car touchant plus largement la communauté R bien qu'on retrouve des contributeurs communs aux deux forums.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron