提到线性模型可能会联想到三大类:
- 一般线性模型
- 广义线性模型
- 混合线性模型
- 一般线性模型比较简单,模拟线性关系,求得我们关心的因素的系数。看到一个关于退烧药的例子很形象:吃一片药退0.1度,两片药退0.2度。模型简单,但是应用该模型的前提假设相对比较严苛:要求观测值之间相互独立,残差正态以及方差齐。
- 广义线性模型,顾名思义,应用范围更宽泛,数据的前提假设要求有所放宽:自变量可离散可连续,残差可呈一定分布态。还是那个例子:吃一片药退0.1度,吃两片药退0.4度,及其他相对复杂关系如指数关系,对数关系等,可通过数学变换转换成为线性关系。
- 混合线性模型则在线性模型中加入了随机效应项,没有了数据观测值独立和方差齐的限制。因而,混合线性模型的特点使其更适用于复杂的生物实验数据,尤其是自然取材、长期观察、就地检测的生态实验。
今天我们主要关注混合线性模型。并通过简单的小例子对这种模型的应用进行粗浅的了解。
案例之前需要知道的:
为什么需要mixed-effect model?
因为有些现实的复杂数据是普通线性回归处理不了的。比如数据中存在组内(noise)和组间(random effect)的随机效应。换句话说,就是当数据中存在复杂的层次结构,除了感兴趣的变量还存在需要控制的变量时,使用该模型可以得到更切合稳健的结果。自变量的固定效应和随机效应:
看到的一个很容易理解的说法——两者的不同实际在于看待参数的方式的不同。
固定效应:参数含义是自变量每变化一个单位,应变量平均变化多少。因此固定效应fixed effect影响响应变量response variable(Y)的均值
随机效应:参数是服从正态分布的一个随机变量,对于两个不同的自变量的值,对应变量的影响不一定是相同的。 也就是说Random effect影响的是响应变量的方差。-
随机效应影响模型的两种方式:
截距影响(random intercept model)
对某个固定效应的斜率影响(random intercept and slope model)
现实数据中更多的是既具有截距影响也具有斜率影响的效应。
处理混合线性模型的两个常用R包:lme4和nlme,区别不大。
在R中使用混合线性模型时,主要用法如下:
fit=lmer(data=, formula=DV~fixed_factor+(random_intercept+random_slope|random_factor))
data - 要处理的数据集
formula - 表达式
DV - 因变量
fixed_factor - 固定因子,即考察的自变量
random_intercept - 随机截距,即认为不同群体的因变量的分布不同
random_slope - 随机斜率,即认为不同群体受固定因子的影响是不同的
random_factor - 随机因子
/ nested inside
接下来看例子:
案例来自这篇文章:
该文章讲了混合模型使用不当时会产生pseudo-replication的问题。pseudo-replication会出现在复杂结构的生物实验数据中,主要原因是无意识地将非独立的data point当作独立的数据点并用作生物学重复。对群体中的个体测量两个及以上观测量的时候很容易出现这种情况。有时我们对自己的实验结构非常清楚,但是用在模型上面表达出来时会出现错意。总之我们使用模型时需要确认代码中的表达式是否符合实验设计。
一群雌鸟跟good quality和poor quality两种雄鸟交配,测量其产下蛋的大小。
-
首先关心雄鸟quality对于雌鸟产蛋大小的影响。
数据或许是这样的:
这是最简单的一种情况:
lmer(EggSize ~ MaleQual + (1|FemID))
其中EggSize是关心的响应变量,MaleQual是固定效应,FemID是基于总体均值的随机效应。所以“|”前是1。这里允许了每只雌鸟个体差异对产蛋大小造成的影响。
-
然后研究鸟类生态的同学可能会关心到产蛋的顺序,涉及到雌鸟对子代的资源分配等问题。所以我们的问题变成了:雄鸟quality是否影响雌鸟的eggsize以及eggsize如何随着产蛋顺序而改变?
于是在其中加上LaySeq因素:
lmer(EggSize~MaleQual+LaySeq+MaleQual:LaySeq+(1+LaySeq|FemID))
但此时LaySeq是因子型变量,所以分类数据是可以作为random slope的。这里检测的就是eggsize是否因malequal而不同,是否随layseq而不同,是否受到二者相互作用的影响。同时控制了受产蛋顺序影响的雌性个体差异带来的波动。 -
在上述基础上再复杂一点,考虑地域性。比如
模型中加入地域性因素:
lmer(EggSize~MaleQual+LaySeq+MaleQual:LaySeq+(1+LaySeq|FemID)+(1+LaySeq|Territory))
这里除了控制上述因素,还控制了雌鸟因地域不同带来的影响。 -
再添加最后一个因素,雌鸟体型的影响。
我们要看雄鸟质量、雌鸟的体型如何影响eggsize以及eggsize随产蛋顺序如何变化。既然是兴趣变量,FemMass则要作为固定效应。
lmer(EggSize~MaleQual+LaySeq+MaleQual:LaySeq+FemMass+FemMass:LaySeq+(1+LaySeq+FemMass|FemID)+(1+LaySeq+FemMass|Territory))
除了加入了FemMass相关的固定效应外,还控制了个体差异和地域差异带来的影响。
以上例子中的表达式并不是该情景和目的下的唯一写法。有时表达式也可以简化。
以上就是我最近学习到的一些关于混合线性模型的一些东西。刚刚接触,很多东西也是似懂非懂。以下是我学习时搜索到用到的一些资料,很多东西都直接从这些地方搬过来的:
https://blog.csdn.net/sinat_26917383/article/details/51636011
https://zhuanlan.zhihu.com/p/63092231
https://cloud.tencent.com/developer/article/1434962
https://luansheng.github.io/2017/11/19/线性混合效应模型教程1/
https://zhuanlan.zhihu.com/p/49480686
https://stats.stackexchange.com/questions/38370/interpreting-three-forms-of-a-mixed-model
https://cran.r-project.org/web/packages/lme4/vignettes/lmer.pdf
文章:A brief introduction to mixed effects modelling and multi-model inference in ecology
文章:Conclusions beyond support: overconfident estimates in mixed models
我的感觉也是这样的:这些个模型说简单也简单,说复杂也复杂。简单的是只要把自己的实验逻辑理清楚,参照工具的做法照做就可以了。复杂在于要精确地用模型将自己的实验表述清楚,要对数据存在的问题进行适当的矫正。否则就容易出现评估偏差,影响结论。
写的很粗浅,为自己做一个记录,同时也欢迎大家批评指正~