如何在R中编写嵌套重复度量模型
一段时间以来,我一直在试图找出如何建立一个混合效应模型,并用R编写代码。我已经读了很多关于混合模型的书,但是我找不到一个和我所看到的相似的例子。我的主管最近建议我向在线社区寻求帮助。我是这个论坛的新成员,所以请让我知道这是不是一个合适的地方询问或如果信息丢失。 下面是我的实验是如何设置的。我在一个长期的田间试验中调查了不同凋落物处理和冠层类型对苔藓生长的影响。我们选择了三个区域(A区、B区、C区),确定了相邻的云杉和桦树林分(森林类型处理,6个林分)。在每个林分中,我们设置了5个地块(30个地块),其中我们放置了4个苔藓移植(这是我的取样单元,n=120)。每个移植被分配到4个落叶处理中的1个(编码为ADD、AMB、CON、EXC)。我在每次移植中标记了10个单独的苔藓芽,然后在2013年、2014年和2015年测量了它们的大小。我将每次移植的苔藓苗平均大小作为我的反应变量。我预计凋落物处理将与森林类型相互影响,并且在三个采样时间内,每个主要影响的影响程度以及相互作用对苔藓大小的影响程度将有所不同(例如,2013年只有森林类型的影响,2014年两个主要影响,然后是2015年的相互影响)。 下面是数据的样子如何在R中编写嵌套重复度量模型,r,R,一段时间以来,我一直在试图找出如何建立一个混合效应模型,并用R编写代码。我已经读了很多关于混合模型的书,但是我找不到一个和我所看到的相似的例子。我的主管最近建议我向在线社区寻求帮助。我是这个论坛的新成员,所以请让我知道这是不是一个合适的地方询问或如果信息丢失。 下面是我的实验是如何设置的。我在一个长期的田间试验中调查了不同凋落物处理和冠层类型对苔藓生长的影响。我们选择了三个区域(A区、B区、C区),确定了相邻的云杉和桦树林分(森林类型处理,6个林分)。在每个林分中,我们设置了5个地块(30个地块
df=data.frame(Year = as.ordered(rep(2013:2015, each=120)),
ForestType = as.factor(rep(rep(c('Spruce', 'Birch'), each=60), 3)),
Block=as.factor(rep(rep(c('A','B','C'), each=20), 6)),
Plot=as.factor(rep(rep(1:5, each=4),18)),
Treatment=as.factor(rep(c('ADD', 'AMB', 'CON', 'EXC'), 90)))
# Create unique IDs for each of the 30 plots and 120 moss transplants
cols <- c('ForestType', 'Block', 'Plot')
cols2 <- c('ForestType', 'Block', 'Plot', 'Treatment')
df$plot.id <- as.factor(do.call(paste, c(df[cols], sep=".")))
df$transplant.id <- as.factor(do.call(paste, c(df[cols2], sep=".")))
# Created a variable with a similar structure to the original one
df$MossSize=c(1.5 , 1.4 , 1.2 , 1.6 , 1.5 , 1.4 , 1.9 , 1.7 , 2.2 , 1.6 , 1.7 , 2.3 , 1.6 , 1.7 , 1.4 , 2.0 , 2.1 , 3.3 , 2.7 , 1.1 , 3.1 , 2.2 , 2.7 , 2.3 , 2.4 , 2.0 , 2.1 , 2.6 , 2.6 , 2.1 , 2.8 , 1.7 , 2.1 , 2.2 , 3.6 , 1.8 , 2.7 , 2.5 , 3.1 , 2.9 , 3.5 ,2.2 , 1.5 , 2.3 , 2.0 , 1.4 , 1.9 , 1.8 , 2.8 , 2.9 , 2.5 , 2.6 , 2.1 , 2.0 , 1.6 , 2.3 , 3.0 , 3.9 , 2.4 , 3.6 , 3.2 , 2.3 , 4.5 , 2.7 , 2.1 , 2.1 , 2.2 , 1.7 , 1.8 , 2.0 , 2.3 , 2.3 , 2.2 , 3.5 , 3.7 , 2.4 , 2.1 , 2.3 , 2.9 , 2.0 , 2.6 , 2.5 , 3.4 , 3.3 , 2.5 , 2.8 , 4.1 , 3.5 , 2.9 , 3.2 , 2.5 , 3.2 , 2.7 , 2.7 , 3.8 , 3.6 , 3.0 , 3.3 , 2.9 , 1.8 , 3.3 , 2.8 , 4.8 , 3.8 , 2.5 , 2.5 , 3.9 , 3.0 , 4.5 , 3.0 , 3.1 , 3.0 , 2.7 , 3.5 , 3.6 , 2.9 , 2.9 , 3.6 , 2.6 , 3.0 , 3.3 , 3.2 , 2.9 , 3.5 , 2.3 , 2.1 , 3.8 , 3.9 , 4.3 , 2.4 , 3.6 , 6.6 , 1.7 , 6.2 , 4.7 , 4.0 , 3.1 , 4.0 , 5.9 , 2.7 , 4.7 , 5.9 , 6.5 , 5.0 , 5.1 , 5.7 , 7.1 , 6.2 , 4.2 , 3.4 , 4.9 , 4.7 , 3.1, 2.7 , 6.8 , 4.0 , 4.2 , 3.9 , 5.9 , 7.1 , 5.3 , 4.6 , 3.7 , 4.2 , 3.2 , 2.2 , 5.8 , 5.2 , 4.8 , 3.9 , 5.4 , 7.3 , 4.7 , 4.5 , 5.3 , 5.8 , 5.9 , 3.8 , 6.5 , 8.3 , 7.2 , 5.9 , 9.9 , 5.9 , 3.4 ,3.4 , 3.8 , 3.3 , 4.6 , 3.0 , 3.6 , 4.1 , 2.6 , 8.0 , 9.1 , 6.3 , 4.1 , 6.7 , 9.0 , 5.1 , 4.4 , 6.9 , 6.9 , 8.2 , 3.8 , 6.1 , 8.8 , 8.8 , 5.3 , 8.9 , 7.5 , 7.0 , 4.7 ,6.7 , 8.9 , 11.3 , 6.0, 7.2 , 6.3 , 4.7 , 6.8 , 8.1 , 9.1 , 10.2, 4.5 , 5.8 , 5.9 , 7.1 , 13.0, 7.2 , 9.1 , 9.0 , 6.0 , 7.9 , 9.3 , 3.8 , 5.8 , 9.0 , 7.7 , 6.3 , 3.4 , 4.9 , 6.4 , 7.5 , 3.8 , 3.1 , 10.4 , 5.8 , 5.5 , 2.9 , 9.0 , 10.4 , 1.6 , 5.4 , 6.6 , 6.2 , 4.6 , 8.7 , 10.0 , 4.7 , 5.2 , 12.4 , 10.4 , 8.6 , 7.9 , 10.5 , 14.9 , 10.3 , 4.7 , 4.8 , 9.7 , 6.6 , 2.8 , 2.4 , 9.5 , 5.6 , 5.1 , 4.9 , 11.5 , 9.8 , 6.8 , 6.8 , 5.5 , 7.5 , 3.1 , 3.2 , 8.7 , 7.4 , 5.8 , 4.5 , 10.9 , 11.1 , 4.6 , 6.5 , 7.5 , 10.3 , 8.3 , 6.1 , 9.3 , 11.6 , 9.5 , 10.2 , 16.1 , 10.4, 4.4 , 4.5 , 6.9 , 4.6 , 4.5 , 4.1 , 6.1 , 5.0 , 4.2 , 9.3 , 15.4 , 8.6 , 3.9 , 11.7 , 13.3 , 9.2 , 6.3 , 9.7 , 11.8 , 14.6 , 4.9 , 9.4 , 15.4 , 17.6 , 6.8 , 16.7 , 9.3 , 11.8 , 4.8 , 10.5 , 13.2 , 15.2 , 5.9 , 12.6 , 13.1 , 9.3 , 9.9 , 13.4 , 10.7 , 18.9 , 5.5 , 8.7 , 14.0 , 16.3 , 12.3 , 16.7, 14.0 , 15.0 , 6.2 , 17.9 , 18.2 , 8.3 , 8.7 , 17.8 , 12.5 , 9.9)
df$logMossSize=log(MossSize+1)
head(df)
我不确定这是否正确,也不确定这是处理重复措施的好方法。由于森林类型只有两个级别,我也不确定将其作为随机效果包含是否正确。如果我对混合模型的理解是正确的,这允许随机截距,但不允许随机斜率。任何帮助或建议都将不胜感激 你好,梅兰妮,这是一个很好的解决方案,如果这不能解决你的问题,或者是基本问题,我很乐意为你提供帮助。谢谢@derekcorran。这是一个非常好的混合模型书面解释。我猜我应该考虑添加一些随机斜率。然而,它没有涵盖的是,真正让我感到困惑的是,如何处理随机截距和坡度顶部的嵌套随机效果。有什么建议吗?
# Tentative model -
fit=lmer(logMossSize~ForestType*Treatment*Year+(1|Block/ForestType/plot.id/transplant.id), data=df)
anova(fit)
summary(fit)