在本文中,咱们将用R语言对数据进行线性混合效应模型的拟合,而后可视化你的结果。ide
线性混合效应模型是在有随机效应时使用的,随机效应发生在对随机抽样的单位进行屡次测量时。来自同一天然组的测量结果自己并非独立的随机样本。所以,这些单位或群体被假定为从一个群体的 "人口 "中随机抽取的。示例状况包括测试
混合效应的线性模型在R命令lme4和lmerTest包中实现。另外一个选择是使用nmle包中的lme方法。lme4中用于计算近似自由度的方法比nmle包中的方法更准确一些,特别是在样本量不大的时候。优化
这第一个数据集是从Griffith和Sheldon(2001年,《动物行为学》61:987-993)的一篇论文中提取的,他们在两年内对瑞典哥特兰岛上的30只雄性领头鶲的白色额斑进行了测量。该斑块在吸引配偶方面很重要,但其大小每一年都有变化。咱们在这里的目标是估计斑块长度(毫米)。lua
读取并检查数据。设计
head(fly)
# 点阵图 chart(patch ~ bird)
# 但显示成对数据的更好方法是用成对的交互图来显示 plot(res=patch, x = year)
# 优化版本 plot(y = patch, x = factor(year), theme_classic)
拟合一个线性混合效应模型。summary()的输出将显示两个随机变异的来源:单个鸟类之间的变异(鸟类截距),以及对同一鸟类进行的重复测量之间的变异(残差)。每一个来源都有一个估计的方差和标准差。固定效应只是全部鸟类的平均值--另外一个 "截距"。 3d
# 1.混合效应模型 # 2. 参数估计 summary(z)
# 5. 方差份量 VarCorr(z)
# 可重复性 1.11504^2/(1.11504^2 + 0.59833^2)
## [1] 0.7764342
# 7.残差与拟合值的关系图 plot(z)
Cronly-Dillon和Muntz(1965; J. Exp. Biol 42: 481-493)用视运动反应来测量金鱼的色觉。在这里,咱们将对数据进行拟合,包括测试的所有波长。5条鱼中的每一条都以随机的顺序在全部的波长下被测试。敏感度的值大代表鱼能够检测到低的光强度。视运动反应的一个重要特色是,鱼不习惯,在一个波长下的视觉敏感度的测量不太可能对后来在另外一个波长下的测量产生影响。rest
*这是一个 "按实验对象 "的重复测量设计,由于每条鱼在每一个实验下被测量一次。它本质上与随机彻底区块设计相同(把每条鱼看做是 "区块")。code
*可视化是首选,由于数据和拟合值都被绘制出来。请注意鱼与鱼之间的预测值是多么的类似。这代表在这项研究中,个体鱼之间的估计差别很是小。对象
***通常来讲,在方差分析表中只测试固定效应。使用测试随机效应中没有方差的无效假设是可能的。blog
读取并检查数据。
x <- read.csv("fish.csv", stringsAsFactors = FALSE) head(x)
拟合一个线性混合效应模型。
该模型假设全部拟合值的残差为正态分布,方差相等。该方法还假设个体鱼之间的随机截距为正态分布。该方法还假设组(鱼)的随机抽样,对同一鱼的测量之间没有影响。
# # 1. 拟合混合效应模型。
## boundary (singular) fit: see ?isSingular
# 2. 这就为每条鱼分别绘制了拟合值。 vis(z)
# 3.测试假设 plot(z)
# 4. 提取参数估计值 summary(z)
# 6. 基于模型的平均敏感度估计 means(z)
# 7. ANOVA方差分析
项目实验性地调查了国家公园的北方森林生态系统中施肥和食草的影响(Krebs, C.J., Boutin, S. & Boonstra, R., eds (2001a) Ecosystem dynamics of the Boreal Forest.Kluane项目. 牛津大学出版社,纽约)) ,目前的数据来自于一项关于植物资源和食草动物对底层植物物种防护性化学的影响的研究。
16个5x5米的小区中的每个都被随机分配到四个实验之一。1)用栅栏围起来排除食草动物;2)用N-P-K肥料施肥;3)用栅栏和施肥;4)未实验的对照。而后,16块地中的每一块被分红两块。每块地的一侧(随机选择)在20年的研究中持续接受实验。每块地的另外一半在头十年接受实验,以后让它恢复到未实验的状态。这里要分析的数据记录了欧蓍草(Achillea millefolium)中酚类物质的浓度(对植物防护化合物的粗略测量),欧蓍草是地块中常见的草本植物。测量单位是每克干重毫克丹宁酸当量。
*实验采用了分块设计,即整个块被随机分配到不一样的实验,而后将第二种实验(持续时间)的不一样水平分配到块的一半。
*应该没有差异,由于设计是彻底平衡的。
阅读并检查数据。
一个好的策略是对实验类别进行排序,把对照组放在前面。这将使线性模型的输出更加有用。
# 1. 读取数据 # 2. 检查 head(x)
# 3. 分组带状图 # 首先,从新排列实验类别 factor(treat,levels=c("cont","exc","fer","bo")) plot(data = x, y = log(phe), x = treat, fill = dura, color = dura)
# 4. 在多个面板上分别绘制成对的数据 plot(data = x,y = log(ach, x = dur, fill = dur, col = dur)
拟合一个线性混合效应模型。固定效应是 "实验 "和 "持续时间",而 "块"是随机效应。拟合交互做用时,实验水平之间的差别大小在持续时间水平之间会有所不一样。
因为随机效应也存在(块),系数表将显示两个随机变化来源的方差估计。一个是拟合模型的残差的方差。第二个是(随机)块截距之间的方差。
# 2. 拟合混合效应模型-无交互做用
# 3. 可视化 vis(z)
# 4. 包括交互项和再次视觉化 z.int <- lmer(log(phen.ach) ~ treatment * duration + (1|plot), data=x) vis(z.int, overlay = TRUE)
# 5. 绘制图表以检验方差齐性(以及正态性) plot(z)
# 6. 系数 summary(z)
# 8. 模型拟合平均值 means(z, data = x)
# 9. 方差分析表 anova(z) # lmerTest中默认为3类平方和。
# 10. 改成1类 anova(z, type = 1)