2

我正在尝试在具有重复测量的数据集上开发一个混合效应模型。

MetTreat在提交给 3 个处理( 、 水平c和)的 24 个样本的一系列随机选择的日子里测量ucga

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)

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

谁能在这里帮助我或为我指明正确的方向?我代表数据嵌套的方式有问题吗?(我假设没有)。

4

1 回答 1

3

lme用于计算分母自由度的规则在第 4 页描述。Pinheiro and Bates (2000) 的第 91 页——这个页面恰好可以在 Google 图书上找到。(该链接也可在GLMM 常见问题页面上找到。)

更新:由于这似乎不再以有用的形式在 Google 图书上提供,因此这里是关键段落的文本:

这些固定效应项的条件检验需要分母自由度。在条件 $F$-tests 的情况下,分子自由度也是必需的,由术语本身决定。分母自由度由估计项的分组级别确定。如果一个术语的值可以在分组因子的给定级别内变化,则该术语称为相对于因子的内部。如果一个术语的值在分组因子的级别没有变化,则它在分组因子之外。如果一个项在 $i-1$st 分组因子的内部并且在 $i$th 分组因子的外部,则称该词项在级别 $i$ 上进行估计。例如,模型中的术语Machinefm2Machine外部Machine %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$ 级分母自由度定义为

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

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

我没有详细检查你的例子,但我强烈怀疑问题在于你有一个随机块设计而不是一个严格嵌套的设计,所以你的自由度比你想象的要高。一般来说,残差/分母 df 是(块数-1)*(每块数-1),而不是(如您所料)嵌套设计的典型(块数-1):见这里, 例如。

另一方面,lme如果设计足够复杂,则可能会出错——在这种情况下,您可能必须自己解决,或者可能不存在简单的解决方案。再次,请参阅GLMM 常见问题解答以获取建议。

于 2013-01-16T18:04:36.683 回答