在SPSS的MIXED过程中,REPEATED子命令的lmer / nlme等价物是什么?

时间:2018-01-30 09:54:48

标签: r spss lme4 mixed-models nlme

我遇到了像这样的SPSS语法

MIXED value BY factor1
    /CRITERIA=CIN(95) MXITER(100) MXSTEP(10) SCORING(1) SINGULAR(0.000000000001)
    HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001,
    ABSOLUTE)
    /FIXED=factor1 | SSTYPE(3)
    /METHOD=REML
    /REPEATED=factor1 | SUBJECT(participant) COVTYPE(UN).

并且很难找到这种模型的等效lmer / nlme(或一般的R)公式。

有人知道如何将REPEATED子命令转换为R代码吗?

3 个答案:

答案 0 :(得分:1)

这总结了我在r-sig-mixed-models邮件列表中得到的answers
REPEATED命令在{{3}的残差方差-协方差矩阵( R 矩阵)中,即所谓的 R-side 结构中指定结构。 }}。对于lme4::lmer(),此结构固定为单位矩阵的倍数。但是,可以使用weights中的correlationnlme::gls()参数来指定 R侧结构,如下所示:

gls(value ~ factor1,
    correlation = corSymm(form = ~ 1|participant),
    weights = varIdent(form = ~1|factor1),
    method = "REML", 
    data = data)

如果除R侧结构外还需要 G侧效果,nlme::lme()提供适当的扩展。

答案 1 :(得分:0)

我相信/REPEATED只是指定随机效果的方式,所以

nlme中的

random=~factor1|participant

我也猜测固定和随机效应中的截距都是隐含的。

所以在lme4 + lmerTest中,整个模型可能是:

m <- lmerTest::lmer(value ~ 1 + factor1 + (1+factor1|participant))
lmerTest::anova(m, type=3,ddf='Satterthwaite')

答案 2 :(得分:0)

我们已经在论文中运行了一些混合模型,并在R中复制了所有SPSS结果。这就是我们的语法:

MIXED y BY x1 WITH x2 x3
  /CRITERIA=CIN(95) MXITER(100) MXSTEP(10) SCORING(1) SINGULAR(0.000000000001) HCONVERGE(0, 
    ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
  /FIXED=x1 x2 x3 | SSTYPE(3)
  /METHOD=REML
  /PRINT=G  R SOLUTION TESTCOV
  /RANDOM=INTERCEPT x1 | SUBJECT(id) COVTYPE(UN)
  /REPEATED=x1| SUBJECT(id) COVTYPE(UN).


lmer(
  y ~ x1 + x2 + x3 + (1 + x1 | id),
  data = data,
  # this one is required because the random slope
  # is categorical. else, you could model uncorrelated
  # slope / intercept, see below 
  control = lmerControl(check.nobs.vs.nRE = "ignore")
)

lmer(
  y ~ x1 + x2 + x3 + (1 + x1 || id),
  data = data
)

我们已将时间变量x1转换为一个因子,因为SPSS似乎无法处理REPEATED语句中的数字时间变量。

要获得相同的标准误差,p值和置信区间,请使用lmerTest::summary(..., ddf = "Satterthwaite"),因为SPSS将Satterthwaite近似值用作默认值。