Je comprends que nous utilisons des modèles à effets aléatoires (ou à effets mixtes) lorsque nous pensons que certains paramètres du modèle varient de façon aléatoire selon un facteur de regroupement. J'ai le désir d'adapter un modèle où la réponse a été normalisée et centrée (pas parfaitement, mais assez proche) sur un facteur de regroupement, mais une variable indépendante x
n'a été ajustée d'aucune façon. Cela m'a conduit au test suivant (en utilisant des données fabriquées ) pour m'assurer que je trouverais l'effet que je recherchais s'il était effectivement là. J'ai exécuté un modèle à effets mixtes avec une interception aléatoire (entre les groupes définis par f
) et un deuxième modèle à effets fixes avec le facteur f comme prédicteur d'effets fixes. J'ai utilisé le package R lmer
pour le modèle à effets mixtes et la fonction de baselm()
pour le modèle à effet fixe. Voici les données et les résultats.
Notez que y
, indépendamment du groupe, varie autour de 0. Et cela x
varie de manière cohérente avec y
au sein du groupe, mais varie beaucoup plus entre les groupes quey
> data
y x f
1 -0.5 2 1
2 0.0 3 1
3 0.5 4 1
4 -0.6 -4 2
5 0.0 -3 2
6 0.6 -2 2
7 -0.2 13 3
8 0.1 14 3
9 0.4 15 3
10 -0.5 -15 4
11 -0.1 -14 4
12 0.4 -13 4
Si vous souhaitez travailler avec les données, voici la dput()
sortie:
data<-structure(list(y = c(-0.5, 0, 0.5, -0.6, 0, 0.6, -0.2, 0.1, 0.4,
-0.5, -0.1, 0.4), x = c(2, 3, 4, -4, -3, -2, 13, 14, 15, -15,
-14, -13), f = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L,
4L, 4L, 4L), .Label = c("1", "2", "3", "4"), class = "factor")),
.Names = c("y","x","f"), row.names = c(NA, -12L), class = "data.frame")
Ajustement du modèle d'effets mixtes:
> summary(lmer(y~ x + (1|f),data=data))
Linear mixed model fit by REML
Formula: y ~ x + (1 | f)
Data: data
AIC BIC logLik deviance REMLdev
28.59 30.53 -10.3 11 20.59
Random effects:
Groups Name Variance Std.Dev.
f (Intercept) 0.00000 0.00000
Residual 0.17567 0.41913
Number of obs: 12, groups: f, 4
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.008333 0.120992 0.069
x 0.008643 0.011912 0.726
Correlation of Fixed Effects:
(Intr)
x 0.000
Je note que la composante de variance d'interception est estimée à 0 et, ce qui x
est important pour moi, n'est pas un prédicteur significatif de y
.
Ensuite, j'adapte le modèle à effet fixe f
comme prédicteur au lieu d'un facteur de regroupement pour une interception aléatoire:
> summary(lm(y~ x + f,data=data))
Call:
lm(formula = y ~ x + f, data = data)
Residuals:
Min 1Q Median 3Q Max
-0.16250 -0.03438 0.00000 0.03125 0.16250
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.38750 0.14099 -9.841 2.38e-05 ***
x 0.46250 0.04128 11.205 1.01e-05 ***
f2 2.77500 0.26538 10.457 1.59e-05 ***
f3 -4.98750 0.46396 -10.750 1.33e-05 ***
f4 7.79583 0.70817 11.008 1.13e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1168 on 7 degrees of freedom
Multiple R-squared: 0.9484, Adjusted R-squared: 0.9189
F-statistic: 32.16 on 4 and 7 DF, p-value: 0.0001348
Maintenant, je remarque que, comme prévu, x
est un prédicteur significatif de y
.
Ce que je recherche, c'est une intuition concernant cette différence. En quoi ma pensée est-elle mauvaise ici? Pourquoi est-ce que je m'attends à tort à trouver un paramètre significatif pour x
dans ces deux modèles mais ne le vois réellement que dans le modèle à effet fixe?
x
variable ne soit pas significative. Je soupçonne que c'est le même résultat (coefficients et SE) que vous auriez obtenu en cours d'exécutionlm(y~x,data=data)
. Je n'ai plus de temps pour diagnostiquer, mais je voulais le souligner.