Rozumiem, że używamy modeli efektów losowych (lub efektów mieszanych), gdy uważamy, że niektóre parametry modelu zmieniają się losowo w zależności od czynnika grupującego. Chcę dopasować model, w którym odpowiedź została znormalizowana i wyśrodkowana (nie idealnie, ale całkiem blisko) w obrębie czynnika grupującego, ale zmienna niezależna x
nie została w żaden sposób dostosowana. Doprowadziło mnie to do następującego testu (przy użyciu sfabrykowanych danych), aby upewnić się, że znajdę efekt, którego szukałem, jeśli rzeczywiście tam jest. Uruchomiłem jeden model efektów mieszanych z przypadkowym przechwytywaniem (pomiędzy grupami zdefiniowanymi przez f
) i drugi model efektu stałego z czynnikiem f jako predyktorem efektu stałego. Użyłem pakietu R lmer
dla modelu efektu mieszanego i funkcji podstawowejlm()
dla modelu z efektem stałym. Poniżej znajdują się dane i wyniki.
Zauważ, że y
niezależnie od grupy, waha się w okolicach 0. I x
różni się w zależności od y
grupy, ale różni się znacznie w zależności od grupy niży
> 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
Jeśli jesteś zainteresowany pracą z danymi, oto dput()
wynik:
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")
Dopasowanie modelu efektów mieszanych:
> 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
Zwracam uwagę, że komponent wariancji przechwytywania jest szacowany na 0 i, co dla mnie ważne, x
nie jest znaczącym predyktorem y
.
Następnie dopasowuję model z efektem stałym f
jako predyktor zamiast czynnika grupującego dla przypadkowego przechwytywania:
> 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
Teraz zauważam, że zgodnie z oczekiwaniami x
jest znaczącym predyktorem y
.
To, czego szukam, to intuicja dotycząca tej różnicy. W jaki sposób błędne jest moje myślenie? Dlaczego niepoprawnie oczekuję znalezienia znaczącego parametru dla x
obu tych modeli, ale faktycznie widzę go tylko w modelu ze stałym efektem?
x
zmienna nie jest znacząca. Podejrzewam, że jest to ten sam wynik (współczynniki i SE), który można uruchomićlm(y~x,data=data)
. Nie mam więcej czasu na diagnozę, ale chciałem to podkreślić.