【发布时间】:2012-08-05 20:15:52
【问题描述】:
关于更复杂的实验设计的混合模型有几个问题和帖子,所以我认为这个更简单的模型会帮助这个过程中的其他初学者以及我。
所以,我的问题是我想从 sas proc 混合过程中制定 R 中的重复测量 ancova:
proc mixed data=df1;
FitStatistics=akaike
class GROUP person day;
model Y = GROUP X1 / solution alpha=.1 cl;
repeated / type=cs subject=person group=GROUP;
lsmeans GROUP;
run;
这是使用 R 中创建的数据的 SAS 输出(如下):
. Effect panel Estimate Error DF t Value Pr > |t| Alpha Lower Upper
Intercept -9.8693 251.04 7 -0.04 0.9697 0.1 -485.49 465.75
panel 1 -247.17 112.86 7 -2.19 0.0647 0.1 -460.99 -33.3510
panel 2 0 . . . . . . .
X1 20.4125 10.0228 7 2.04 0.0811 0.1 1.4235 39.4016
以下是我如何使用“nlme”包在 R 中制定模型,但没有得到类似的系数估计:
## create reproducible example fake panel data set:
set.seed(94); subject.id = abs(round(rnorm(10)*10000,0))
set.seed(99); sds = rnorm(10,15,5);means = 1:10*runif(10,7,13);trends = runif(10,0.5,2.5)
this = NULL; set.seed(98)
for(i in 1:10) { this = c(this,rnorm(6, mean = means[i], sd = sds[i])*trends[i]*1:6)}
set.seed(97)
that = sort(rep(rnorm(10,mean = 20, sd = 3),6))
df1 = data.frame(day = rep(1:6,10), GROUP = c(rep('TEST',30),rep('CONTROL',30)),
Y = this,
X1 = that,
person = sort(rep(subject.id,6)))
## use package nlme
require(nlme)
## run repeated measures mixed model using compound symmetry covariance structure:
summary(lme(Y ~ GROUP + X1, random = ~ +1 | person,
correlation=corCompSymm(form=~day|person), na.action = na.exclude,
data = df1,method='REML'))
现在,我现在意识到 R 的输出类似于 lm() 的输出:
Value Std.Error DF t-value p-value
(Intercept) -626.1622 527.9890 50 -1.1859379 0.2413
GROUPTEST -101.3647 156.2940 7 -0.6485518 0.5373
X1 47.0919 22.6698 7 2.0772934 0.0764
我相信我已经接近规范,但不确定我缺少哪一部分以使结果匹配(在合理范围内..)。任何帮助将不胜感激!
更新:使用下面答案中的代码,R 输出变为:
> summary(model2)
滚动到底部查看参数估计值——看!与 SAS 相同。
Linear mixed-effects model fit by REML
Data: df1
AIC BIC logLik
776.942 793.2864 -380.471
Random effects:
Formula: ~GROUP - 1 | person
Structure: Diagonal
GROUPCONTROL GROUPTEST Residual
StdDev: 184.692 14.56864 93.28885
Correlation Structure: Compound symmetry
Formula: ~day | person
Parameter estimate(s):
Rho
-0.009929987
Variance function:
Structure: Different standard deviations per stratum
Formula: ~1 | GROUP
Parameter estimates:
TEST CONTROL
1.000000 3.068837
Fixed effects: Y ~ GROUP + X1
Value Std.Error DF t-value p-value
(Intercept) -9.8706 251.04678 50 -0.0393178 0.9688
GROUPTEST -247.1712 112.85945 7 -2.1900795 0.0647
X1 20.4126 10.02292 7 2.0365914 0.0811
【问题讨论】:
-
没有得到类似结果是什么意思?你的意思是缺少信息,或者你得到不同的估计?如果是后者,你确定输入的数据是一样的吗?
-
我得到了不同的估计。我确实检查过输入数据也相同,即 SAS 中的 df1 = R 中的 df1。
-
可能只是固定效果的对比不同吗?即
contrasts(df1$GROUP) <- contr.SAS(2)? -
嗨@BenBolker!很高兴看到你注意到这个线程。如果您同意我在下面的评估,我会很好奇。我认为这比 OP 希望的要棘手,但如果我错了就好了。
-
@baha-kev:如果您添加统计信息并进一步询问什么模型是合适的,这对于 stats.stackexchange 来说将是一个很好的问题。
标签: r sas mixed-models