2017-01-20 5 views
2

Я пытаюсь воспроизвести вывод из смешанной процедуры PROC с использованием приближения Satterwaithe в SAS, используя lmerTest пакет в R.SAS PROC MIXED против выхода lmerTest

Это мои данные:

Participant Condition Data 
1 0 -1,032941629 
1 0 0,869267841 
1 0 -1,636722191 
1 0 -1,15451393 
1 0 0,340454836 
1 0 -0,399315906 
1 1 0,668983169 
1 1 1,937817592 
1 1 3,110013393 
1 1 3,23409718 
2 0 0,806881925 
2 1 2,71020911 
2 1 3,406864275 
2 1 1,494288182 
2 1 0,741827047 
2 1 2,532062685 
2 1 3,702118917 
2 1 1,825046681 
2 1 4,37167021 
2 1 1,85125279 
3 0 0,288743786 
3 0 1,024396121 
3 1 2,051281876 
3 1 0,24543851 
3 1 3,349677964 
3 1 1,565395822 
3 1 3,077031712 
3 1 1,087494708 
3 1 1,546150033 
3 1 0,440249347 

Использование следующее заявление в SAS:

proc mixed data=mbd; 
     class participant; 
     model data = condition/solution ddfm=sat; 
     random intercept condition/sub=participant; 
     run; 

я получаю этот выход:

enter image description here

Моя проблема заключается в том, что я не могу показаться, чтобы воспроизвести эти результаты с использованием lmerTest в R.

Я думал, что lmer(Data ~ Condition + (1 | Participant) + (Condition | Participant), REML=TRUE) было равнозначно утверждение о том, что я сделал в SAS, но это дает разные результаты. Обратите внимание, что степень свободы выходит за пределы выхода SAS, поэтому я думаю, что я оцениваю параметры в R, которые я не оцениваю в SAS. Я попробовал несколько других утверждений в R, но мне не удалось получить тот же результат. Однако это должно быть возможно, так как функция lmer() из пакета lmerTest также использует приближение Satterwaithe и должна быть точно такой же, как и процедура SAS PROC MIXED.

Кто-нибудь знает, что я делаю неправильно в R?

Большое спасибо!

Bart

ответ

4

Вы не указали те же случайные эффекты, как в вашем примере SAS. (Condition | Participant) расширяется внутри до (1 + Condition | Participant), что соответствует случайному перехвату, случайному наклону и ковариации между ними [1]. Итак, у вас есть два дополнительных параметра (дисперсия перехвата и ковариация) в вашей модели. Некоррелированные случайные эффекты могут быть указаны с использованием || в синтаксисе lme4. Обратите внимание, как формула расширяется в итоговом выпуске.

library(lmerTest) 
fit <- lmer(Data ~ Condition + (Condition || Participant), REML=TRUE, data = DF) 
summary(fit) 
#Linear mixed model fit by REML 
#t-tests use Satterthwaite approximations to degrees of freedom ['lmerMod'] 
#Formula: Data ~ Condition + ((1 | Participant) + (0 + Condition | Participant)) 
# Data: DF 
# 
#REML criterion at convergence: 90.6 
# 
#Scaled residuals: 
#  Min  1Q Median  3Q  Max 
#-1.58383 -0.78970 -0.06993 0.87801 1.91237 
# 
#Random effects: 
# Groups  Name  Variance Std.Dev. 
# Participant (Intercept) 0.00000 0.000 
# Participant.1 Condition 0.07292 0.270 
# Residual     1.20701 1.099 
#Number of obs: 30, groups: Participant, 3 
# 
#Fixed effects: 
#   Estimate Std. Error  df t value Pr(>|t|)  
#(Intercept) -0.09931 0.36621 26.50400 -0.271 0.788363  
#Condition 2.23711 0.46655 12.05700 4.795 0.000432 *** 
#--- 
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
# 
#Correlation of Fixed Effects: 
#   (Intr) 
#Condition -0.785