2016-12-30 3 views
0

У меня есть шесть фиксированных факторов: A, B, C, D, E и F, и один случайный фактор R. Я хочу проверить линейные члены, чистые квадратичные члены и двустороннее взаимодействие с помощью языка R. Таким образом, я построил полную линейную смешанную модель и попытались проверить свои условия с drop1:Почему drop1 игнорирует линейные термины для смешанных моделей?

full.model <- lmer(Z ~ A + B + C + D + E + F 
        + I(A^2) + I(B^2) + I(C^2) + I(D^2) + I(E^2) + I(F^2) 
        + A:B + A:C + A:D + A:E + A:F 
          + B:C + B:D + B:E + B:F 
           + C:D + C:E + C:F 
             + D:E + D:F 
              + E:F 
        + (1 | R), data=mydata, REML=FALSE) 
drop1(full.model, test="Chisq") 

Кажется, что drop1 полностью пренебрегая линейные члены:

Single term deletions 

Model: 
Z ~ A + B + C + D + E + F + I(A^2) + I(B^2) + I(C^2) + I(D^2) + 
    I(E^2) + I(F^2) + A:B + A:C + A:D + A:E + A:F + B:C + B:D + 
    B:E + B:F + C:D + C:E + C:F + D:E + D:F + E:F + (1 | R) 
     Df AIC  LRT Pr(Chi)  
<none> 127177      
I(A^2) 1 127610 434.81 < 2.2e-16 *** 
I(B^2) 1 127378 203.36 < 2.2e-16 *** 
I(C^2) 1 129208 2032.42 < 2.2e-16 *** 
I(D^2) 1 127294 119.09 < 2.2e-16 *** 
I(E^2) 1 127724 548.84 < 2.2e-16 *** 
I(F^2) 1 127197 21.99 2.747e-06 *** 
A:B  1 127295 120.24 < 2.2e-16 *** 
A:C  1 127177 1.75 0.185467  
A:D  1 127240 64.99 7.542e-16 *** 
A:E  1 127223 48.30 3.655e-12 *** 
A:F  1 127242 66.69 3.171e-16 *** 
B:C  1 127180 5.36 0.020621 * 
B:D  1 127202 27.12 1.909e-07 *** 
B:E  1 127300 125.28 < 2.2e-16 *** 
B:F  1 127192 16.60 4.625e-05 *** 
C:D  1 127181 5.96 0.014638 * 
C:E  1 127298 122.89 < 2.2e-16 *** 
C:F  1 127176 0.77 0.380564  
D:E  1 127223 47.76 4.813e-12 *** 
D:F  1 127182 6.99 0.008191 ** 
E:F  1 127376 201.26 < 2.2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Если исключить взаимодействие с моделью:

full.model <- lmer(Z ~ A + B + C + D + E + F 
        + I(A^2) + I(B^2) + I(C^2) + I(D^2) + I(E^2) + I(F^2) 
        + (1 | R), data=mydata, REML=FALSE) 
drop1(full.model, test="Chisq") 

то линейные члены получают тэ STED:

Single term deletions 

Model: 
Z ~ A + B + C + D + E + F + I(A^2) + I(B^2) + I(C^2) + I(D^2) + 
    I(E^2) + I(F^2) + (1 | R) 
     Df AIC LRT Pr(Chi)  
<none> 127998      
A  1 130130 2133.9 < 2.2e-16 *** 
B  1 130177 2181.0 < 2.2e-16 *** 
C  1 133464 5467.6 < 2.2e-16 *** 
D  1 129484 1487.9 < 2.2e-16 *** 
E  1 130571 2575.0 < 2.2e-16 *** 
F  1 128009 12.7 0.0003731 *** 
I(A^2) 1 128418 422.2 < 2.2e-16 *** 
I(B^2) 1 128193 197.4 < 2.2e-16 *** 
I(C^2) 1 129971 1975.1 < 2.2e-16 *** 
I(D^2) 1 128112 115.6 < 2.2e-16 *** 
I(E^2) 1 128529 533.0 < 2.2e-16 *** 
I(F^2) 1 128017 21.3 3.838e-06 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

ответ

4

Потому что это путь drop1 работы (это не относится к смешанным моделям - вы найдете это поведение для правильной линейной модели, снабженной lm, а). От ?drop1:

Иерархия соблюдается при рассмотрении условий, которые будут добавлены или отбрасывается: все основные эффекты, содержащиеся в взаимодействия второго порядка должно оставаться, и так далее.

Я обсуждаю это довольно подробно в this CrossValidated post

статистически Хитрость в том, что тестирование взаимодействия нижнего уровня в модели, которая также содержит взаимодействия более высокого уровня является (в зависимости от того, кто вы говорите) либо (i) трудно сделать правильно, либо (ii) просто глупым (для последней позиции см. часть 5 статьи "exegeses on linear models" Билла Венейблса). Категорией для этого является принцип маргинальности. По крайней мере, значение членов более низкого порядка чувствительно зависит от того, как кодируются контрасты в модели (например, лечение против средней точки/суммы к нулю). Мое правило по умолчанию состоит в том, что если вы не уверены, что понимаете, почему это может быть проблемой, вы не должны нарушать принцип маргинальности.

Однако, как Venables фактически описывает в связанном статье вы можете получить R нарушать маргинальность, если вы хотите (стр. 15):

К моей радости я вижу, что маргинальность ограничения между факторные термины по умолчанию соблюдаются, а учащиеся не ведут вниз по логически скользкому «типу III квадратов квадратов». Мы обсуждаем, почему нет никаких основных эффектов, и это делает полезную учебную точку.

Ирония, конечно же, состоит в том, что суммы квадратов типа III были доступны все время, если бы только люди поняли, что они на самом деле и как их получить. Если вызов drop1 содержит любую формулу в качестве второго аргумента, участки модели матрицы, соответствующей всем слагаемым, не перехватывают опущены из по порядку модели, что дает какое-то испытание для главного эффекта ...

Предоставлено вы использовали контрастную матрицу с нулевыми столбцами, они будут уникальными, и они являются не чем иным, как пресловутой «суммой квадратов типа III».Если вы используете, скажем, contr.treatment, то контрасты, так что столбцы не имеют нулевой суммы, вы получаете бред. Эта чувствительность к чему-то, что в этом контексте должна быть произвольной, должна быть достаточной, чтобы предупредить кого-либо о том, что делается что-то глупое.

Другими словами, использование scope = . ~ . будет вынуждать drop1 игнорировать маргинальность. Вы делаете это на свой страх и риск - вы определенно должны быть в состоянии объяснить себе, что вы на самом деле тестирования, когда вы будете следовать этой процедуре ...

Например:

set.seed(101) 
dd <- expand.grid(A=1:10,B=1:10,g=factor(1:10)) 
dd$y <- rnorm(1000) 
library(lme4) 
m1 <- lmer(y~A*B+(1|g),data=dd) 
drop1(m1,scope=.~.) 
## Single term deletions 
## 
## Model: 
## y ~ A * B + (1 | g) 
##  Df AIC 
## <none> 2761.9 
## A  1 2761.7 
## B  1 2762.4 
## A:B  1 2763.1 
Смежные вопросы