注意:这个问题最初发布在Cross Validated上,建议应该在 StackOverflow 中提问。
我正在尝试对 3 向重复测量实验进行建模,FixedFactorA * FixedFactorB * Time[days]。没有遗漏的观察结果,但我的组 (FactorA * FactorB) 不相等(接近,但不完全平衡)。从在线阅读来看,对观察顺序很重要(由于响应均值和方差随时间变化)和不平等组的重复测量实验建模的最佳方法是使用混合模型并指定适当的协方差结构. 但是,我对混合模型的想法很陌生,我对是否使用正确的语法来建模我想要建模的东西感到困惑。
我想做一个完整的因子分析,这样我就可以检测到重要的时间*因子相互作用。例如,对于 FactorA = 1 的受试者,他们随时间的反应可能具有与 FactorA = 2 的受试者不同的斜率和/或截距。我还希望能够检查 FactorA 和 FactorB 的某些组合是否随着时间的推移具有显着不同的响应(因此是完整的三向交互项)。
从网上看,AR1似乎是一个合理的纵向数据协方差结构,所以我决定尝试一下。另外,我看到如果一个人计划比较两个不同的模型,应该使用 ML,所以我选择了这种方法,因为预计需要对模型进行微调。我的理解也是,目标是在模型选择期间最小化 AIC。
这是我在 SPSS(用于长格式数据)中尝试的日志中的代码,它产生的 AIC 为 2471:
MIXED RESPONSE BY FactorA FactorB Day
/CRITERIA=CIN(95) MXITER(100) MXSTEP(10) SCORING(1) SINGULAR(0.000000000001) HCONVERGE(0,
ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
/FIXED=FactorA FactorB Day FactorA*FactorB FactorA*Day FactorB*Day FactorA*FactorB*Day | SSTYPE(3)
/METHOD=ML
/PRINT=SOLUTION TESTCOV
/REPEATED=Day | SUBJECT(Subject_ID) COVTYPE(AR1)
这是我在 R 中尝试的,它产生了 2156 的 AIC:
require(nlme)
#output error fix: https://stats.stackexchange.com/questions/40647/lme-error-iteration-limit-reached
ctrl <- lmeControl(opt='optim') #I used this b/c otherwise I get the iteration limit reached error
fit1 <- lme(RESPONSE ~ Day*FactorA*FactorB, random = ~ Day|Subject_ID, control=ctrl,
correlation=corAR1(form=~Day), data, method="ML")
summary(fit1)
这些是我的问题:
上面的 SPSS 代码产生了一个 AIC = 2471 的模型,而 R 代码产生了一个 AIC = 2156 的模型。是什么使模型不同的代码?
根据我上面的描述,这些模型中的任何一个都适合我要测试的内容吗?如果没有,什么是更好的方法,我将如何在两个程序中做到这一点以获得相同的结果?
编辑
另一件需要注意的事情是我没有对我的因素进行虚拟编码。我不知道这是否是任何一个软件的问题,或者 SPSS 与 R 中的内置编码是否不同。我也不知道这是否会成为我的三向交互术语的问题。
另外,当我说“因素”时,我指的是一个不变的群体或特征(如“性”)。