lme4 : facteur emboîté dans une interaction

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

Stéphane Laurent
Messages : 1551
Enregistré le : 05 Déc 2006, 19:07

lme4 : facteur emboîté dans une interaction

Messagepar Stéphane Laurent » 16 Sep 2011, 09:39

Bonjour,
Dans l'exemple ci-dessous je voudrais emboîter le facteur "dil" dans l'interaction "Opérateur*Equipement" :

Code : Tout sélectionner

> lmer(log(response) ~ (1|Operator) + (1|Equipement) + (1|Operator:Equipement) + (1|dil/Operator:Equipement), data=dat1)
Linear mixed model fit by REML
Formula: log(response) ~ (1 | Operator) + (1 | Equipement) + (1 | Operator:Equipement) +      (1 | dil/Operator:Equipement)
   Data: dat1
    AIC    BIC logLik deviance REMLdev
 -61.86 -50.78  37.93   -79.46  -75.86
Random effects:
 Groups                  Name        Variance   Std.Dev.
 Operator:Equipement:dil (Intercept) 0.00000000 0.000000
 Operator:Equipement     (Intercept) 0.00000000 0.000000
 dil                     (Intercept) 0.00000000 0.000000
 Equipement              (Intercept) 0.00039392 0.019847
 Operator                (Intercept) 0.00818002 0.090443
 Residual                            0.00536712 0.073261
Number of obs: 36, groups: Operator:Equipement:dil, 12; Operator:Equipement, 4; dil, 3; Equipement, 2; Operator, 2

Fixed effects:
            Estimate Std. Error t value
(Intercept)   3.5039     0.0666   52.61

En sortie j'obtiens le facteur "dil" dans les Random efects, pourquoi ? Avec SAS je ne l'obtiens pas :

Code : Tout sélectionner

                               Operator                 0.008180
                               Equipement               0.000394
                               Operator*Equipement             0
                               dil(Operato*Equipem)            0
                               Residual                 0.005367

Stéphane Laurent
Messages : 1551
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 16 Sep 2011, 10:18

NB : dans un exemple où les estimateurs ne sont pas égaux à zéro, on a l'estimateur correspondant à dil(Operato*Equipem) dans SAS qui est égal à la somme de dil et de Operator:Equipement:dil dans R

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Re: lme4 : facteur emboîté dans une interaction

Messagepar Renaud Lancelot » 17 Sep 2011, 08:27

Stéphane Laurent a écrit :Bonjour,
Dans l'exemple ci-dessous je voudrais emboîter le facteur "dil" dans l'interaction "Opérateur*Equipement" :

Code : Tout sélectionner

> lmer(log(response) ~ (1|Operator) + (1|Equipement) + (1|Operator:Equipement) + (1|dil/Operator:Equipement), data=dat1)


Dans ce modèle, tu n'indiques que des effets aléatoires ==> normal que tu n'aies que des effets aléatoires dans les résultats. Si tu veux que dil apparaisse dans les effets fixes,

Code : Tout sélectionner

> lmer(log(response) ~ dil + (1|Operator) + (1|Equipement) + (1|Operator:Equipement) + (1|dil/Operator:Equipement), data=dat1)


J'ai du mal à voir l'intérêt du terme (1|dil/Operator:Equipement).
Renaud

Stéphane Laurent
Messages : 1551
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 17 Sep 2011, 13:54

Non non, je ne veux pas d'effet fixe. Je disais que dans les effets aléatoires il y a dil et (1|dil/Operator:Equipement), alors que SAS ne retourne que (1|dil/Operator:Equipement).
J'ai du mal à voir l'intérêt du terme (1|dil/Operator:Equipement).

Chaque opérateur travaille sur plusieurs équipements, et avec ces équipements ils préparent plusieurs "dil" (dilutions). Ce n'est pas la bonne façon de modéliser ?

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 17 Sep 2011, 15:20

Alors c'est plus une question de codage des échantillons que d'identification des facteurs de variation, non ?
Renaud

Matthieu Lesnoff
Messages : 118
Enregistré le : 29 Nov 2004, 12:41

Re: lme4 : facteur emboîté dans une interaction

Messagepar Matthieu Lesnoff » 20 Sep 2011, 23:21

Stéphane Laurent a écrit :Bonjour,
Dans l'exemple ci-dessous je voudrais emboîter le facteur "dil" dans l'interaction "Opérateur*Equipement" :


SAS n'a pas forcément la même syntaxe que lme4. Sous lme4, '(1|dil/Operator:Equipement)' signifie : effet 'dil' + effet 'Operator:Equipement' emboité dans 'dil' (je ne pense pas que cela corresponde à ce vous cherchez). C'est pour cela que vous voyez les deux effets dans les deux résultats.

Le terme seul 'dil emboité dans Operator:Equipement' s'écrit : (1 | Operator:Equipement:dil), ce qui est équivalent à (1 | dil) si le codage de dil définit des valeurs uniques pour chaque dil.

Même si vous n'avez pas d'effet fixe, classiquement on estime une moyenne générale : lmer(log(response) ~ 1 + (1|Operator) + ....
ML

Stéphane Laurent
Messages : 1551
Enregistré le : 05 Déc 2006, 19:07

Messagepar Stéphane Laurent » 23 Sep 2011, 07:48

effet 'dil' + effet 'Operator:Equipement' emboité dans 'dil' (je ne pense pas que cela corresponde à ce vous cherchez).

En fait on utilise le modèle mixte pour estimer les composantes de la variance. Comme chaque opérateur avec chaque équipement utilise plusieurs "dil", ça me semble correct de faire ça, non ?

Matthieu Lesnoff
Messages : 118
Enregistré le : 29 Nov 2004, 12:41

Messagepar Matthieu Lesnoff » 23 Sep 2011, 18:58

Ma remarque était juste par rapport à :

Stéphane Laurent a écrit :je voudrais emboîter le facteur "dil" dans l'interaction "Opérateur*Equipement""


Sous lme4, "(1 | A/B") est équivalent à "(1 | A) + (1 | A:B)", c'est à dire effet aléatoire "A" + effet aléatoire "B emboité dans A". Si vous voulez "emboiter dil dans Operator:Equipement", la syntaxe est donc

Code : Tout sélectionner

 ... + (1 | Operator:Equipement) + (1 | Operator:Equipement:dil)


ou avec "/" :

Code : Tout sélectionner

... + (1 | Operator:Equipement/dil)


(mais pas sûr que ça marche ici à cause de ":", à vérifier), et non pas (comme dans votre 1er msg) :

Code : Tout sélectionner

... + (1 | dil/ Operator:Equipementl)
ML


Retourner vers « Questions en cours »

Qui est en ligne

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