混合效应模型与重复措施

时间:2013-01-09 15:13:45

标签: r mixed-models nlme

我正在尝试使用重复测量在数据集上开发混合效果模型。

Met是根据提交给3次治疗的24个样本(Treat)的一系列随机选择日测量的,其中cucga )。

由于天气条件的差异(Met),Date的级别会发生变化。因此,日期成为模型的第二个随机效应(以及采样的项目(ID))。

我的主要兴趣是查看Treat是否会在Met天内产生重大影响。

一些示例数据:

# create example data frame 
ID     <-  factor(rep(c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x"), 6))
Treat  <-  factor(rep(c(rep("c",8), rep("uc",8), rep("ga",8)), 6))
Date   <-  factor(rep(c(rep("10/06/2007",24), rep("19/06/2007",24), rep("12/07/2007",24), rep("21/07/2007",24), rep("11/08/2007",24), rep("12/08/2007",24)), 1))
Met    <-  as.numeric(c(rnorm(8,5,2),   rnorm(8,7,2),   rnorm(8,9,2), 
                        rnorm(8,15,2),  rnorm(8,17,2),  rnorm(8,19,2),
                        rnorm(8,9,2),   rnorm(8,11,2),  rnorm(8,13,2),
                        rnorm(8,8,2),   rnorm(8,10,2),  rnorm(8,12,2),
                        rnorm(8,2,2),   rnorm(8,4,2),   rnorm(8,6,2),
                        rnorm(8,3,2),   rnorm(8,5,2),   rnorm(8,7,2)))
ww     <-  gl(1,1,144)

lys.data  <-  data.frame(ID, Treat, Date, Met, ww)
head(lys.data)

# set contrasts of data frame
lys.data$Treat   <-  factor(lys.data$Treat,     levels=c("c", "uc", "ga"))

然后分析:

library(nlme)
lme.001  <-  lme(Met ~ Treat, data = lys.data,
                 random=list(ww=pdBlocked(list(pdIdent(~Date-1),
                             pdIdent(~ID-1)))))
summary(lme.001)

从结果我得到它似乎我没有做我认为我正在做的事情,因为自由度似乎不正确(方式太高)。分母自由度的数量随着实验的重复次数(日期)的增加而增加是否正确?

谁能帮助我或指出正确的方向? 我错误的表示我代表数据的嵌套方式? (我假设没有)。

1 个答案:

答案 0 :(得分:2)

lme用于计算分母自由度的规则在p。 Pinheiro和Bates(2000)的第91页 - 这个页面恰好可用on Google Books。 (该链接也可在GLMM faq page上找到。)

更新:由于Google图书上似乎不再提供有用的表单,因此这里是关键段落的文字:

  

这些固定效应术语的条件测试需要分母自由度。在条件$ F $ -tests的情况下,分子自由度也是必需的,由术语本身决定。分母自由度由估计该项的分组级别确定。如果一个术语的值可以在分组因子的给定级别内发生变化,则该术语相对于因子称为 inner 。如果一个术语的值在分组因子的级别内没有变化,则该术语是外部到分组因子。如果一个术语在$ i-1 $ st分组因子的内部并且在$ i $ th分组因子之外,则称该术语估计为$ i $。例如,Machine模型中的术语fm2MachineMachine %in% Worker之外,而在Worker之外,因此估计在第2级(Machine %in% Worker)。如果一个术语在模型中所有$ Q $分组因子的内部,则估计在组内错误的级别,我们将其表示为$ Q + 1 $ st级别。

     

截距是与模型矩阵$ X_i $中所有1的列对应的参数,当存在时,与所有其他参数的处理方式不同。作为参数,它被认为是在0级估计,因为它在所有分组因子之外。但是,它的分母自由度的计算方式就好像估计为$ Q + 1 $。这是因为拦截是一个参数,即使$ X_i $中的相应列没有随着级别变化,也会汇集来自某个级别的所有观察的信息。

     

让$ m_i $表示$ i $级别的组总数(当固定效果模型包含截距时,$ m_0 = 1 $,否则为0,$ m_ {Q + 1} = N $)和$ p_i $表示对应于$ i $级别估计的条款的自由度之和,$ i $ th级别分母自由度定义为

     

$$   denDF_i = m_i - (m_ {i-1} + p_i),i = 1,\ dots,Q   $$

     

该定义与平衡,多级ANOVA设计中经典自由度的分解相吻合,并为更一般的混合效应模型提供了合理的近似。

我还没有详细检查过你的例子,但我强烈怀疑问题是你有一个随机区块设计而不是严格的嵌套设计,所以你的自由度比你想象的要高。通常,残差/分母df是(块数-1)*(每块1的数量),而不是(正如您所期望的那样)嵌套设计的典型(块数-1):请参阅{例如{3}}。

另一方面,如果设计足够复杂,lme错误的可能性 - 在这种情况下,您可能需要自己解决,或< / em>可能不存在简单的解决方案。再次,请参阅here获取建议。