R中最终观测的中心日变量(线性混合模型)

时间:2014-03-14 19:53:00

标签: r mixed-models

我试图通过对不同治疗组的受试者进行重复测量来分析一些数据。这是我的数据的一个子集,在第1,3和21天进行了观察(完整的数据集在3到21天之间有额外的观察)。

mydata <- data.frame(
  Subject  = c(13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 
           34, 35, 36, 37, 38, 39, 40, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 
           19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 
           40, 62, 63, 64, 65, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 
           29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 62, 63, 64, 65), 
  Day       = as.numeric(c(rep(c("1", "3", "21"), each=28))), 
  Treatment = c(rep(c("B", "A", "C", "B", "C", "A", "A", "B", "A", "C", "B", "C", 
                  "A", "A", "B", "A", "C", "B", "C", "A", "A"), each = 4)), 
  Obs       = c(6.472687, 7.017110, 6.200715, 6.613928, 6.829968, 7.387583, 7.367293, 
            8.018853, 7.527408, 6.746739, 7.296910, 6.983360, 6.816621, 6.571689, 
            5.911261, 6.954988, 7.624122, 7.669865, 7.676225, 7.263593, 7.704737, 
            7.328716, 7.295610, 5.964180, 6.880814, 6.926342, 6.926342, 7.562293, 
            6.677607, 7.023526, 6.441864, 7.020875, 7.478931, 7.495336, 7.427709, 
            7.633020, 7.382091, 7.359731, 7.285889, 7.496863, 6.632403, 6.171196, 
            6.306012, 7.253833, 7.594852, 6.915225, 7.220147, 7.298227, 7.573612, 
            7.366550, 7.560513, 7.289078, 7.287802, 7.155336, 7.394452, 7.465383, 
            6.976048, 7.222966, 6.584153, 7.013223, 7.569905, 7.459185, 7.504068, 
            7.801867, 7.598728, 7.475841, 7.511873, 7.518384, 6.618589, 5.854754, 
            6.125749, 6.962720, 7.540600, 7.379861, 7.344189, 7.362815, 7.805802, 
            7.764172, 7.789844, 7.616437, NA, NA, NA, NA))

我想使用线性混合模型(使用nlme)分析我的数据:

mymodel <- lme(Obs ~ Treatment * Day, random = ~1 | Subject, correlation = corAR1(form = ~1 | Subject), data=mydata, na.action=na.omit)

由于我对实验最后一天的差异最感兴趣,我真的很喜欢第21天的中心,但是R似乎使用最低值作为数值变量的参考水平。我可以将第21天设置为0,但这会扰乱时间序列,这对于自相关结构非常重要,将Day更改为一个因子只会给出错误信息:

MEEM中的错误(object,conLin,control $ niterEM):   反向的奇点在0级,第1区

那么,我如何测试第21天的治疗效果作为日间的参考水平?

1 个答案:

答案 0 :(得分:0)

mydata$Day = relevel(mydata$Day, ref="Day21")

在运行模型之前。 (我认为在你的模型Subject中应该写{而不是Sample),至少在你的例子中,因为Sample中没有mydata

修改

原始示例已经过编辑,但同样的方法仍然可以使用:

mydata$Day = factor(mydata$Day, levels=c(21, 3, 1))


mymodel <- lme(Obs ~ Treatment * Day, random = ~1 | Subject, correlation = 
                corAR1(form = ~1 | Subject), data=mydata, na.action=na.omit)
summary(mymodel)

给出:

Fixed effects: Obs ~ Treatment * Day 
Value Std.Error DF  t-value p-value
(Intercept)      7.635586 0.1159703 46 65.84086  0.0000
TreatmentB      -0.965811 0.1682325 25 -5.74093  0.0000
TreatmentC      -0.169050 0.1682325 25 -1.00486  0.3246
Day3            -0.208276 0.1133072 46 -1.83815  0.0725
Day1            -0.452858 0.1306224 46 -3.46693  0.0012
TreatmentB:Day3  0.229415 0.1636327 46  1.40201  0.1676
TreatmentC:Day3  0.060868 0.1636327 46  0.37198  0.7116
TreatmentB:Day1  0.352958 0.1932224 46  1.82669  0.0742
TreatmentC:Day1  0.334850 0.1932224 46  1.73298  0.0898