如何用lme4和lmerTest构建符合要求的lmer混合效应模型?
线性混合效应模型构建疑问解答
问题1:实现Genotype的截距随Herbivory处理水平变化
要让基因型(Genotype)的截距随食草处理(Herbivory)水平变化,你需要在随机效应部分加入Herbivory与Genotype的交叉项,把原模型中的(1|Genotype)替换为(1 + Herbivory | Genotype)即可。这个结构表示允许每个基因型在不同Herbivory水平下拥有独立的随机截距,以此实现截距随Herbivory处理的变化。
修改后的完整模型代码:
model_2a <- lmer(data = plant_data, Avg.Bnr.Wdth ~ Herbivory * Pollination + Herbivory * HCN + Pollination * HCN + (1|Block) + (1 + Herbivory | Genotype)) summary(model_2a)
问题2:输出中显示HerbivoryReduced、PollinationSupp的原因
这是R处理分类因子变量的默认输出逻辑,和你用as.factor()转换变量无关:
- 当因子变量存在多个水平时,R会自动选取一个水平作为参考水平(默认是因子水平排序最靠前的,比如字母顺序),其余水平的效应会以「变量名+水平名」的形式展示,用来明确区分该水平相对于参考水平的差异。
- 比如Herbivory的水平是
Control和Reduced,若Control是参考水平,那么Reduced水平的效应就会显示为HerbivoryReduced;Pollination的Supp同理,是该变量的非参考水平。
如果需要调整参考水平,可以用relevel()函数修改,比如将Herbivory的参考水平改为Reduced:
plant_data$Herbivory <- relevel(plant_data$Herbivory, ref = "Reduced")
重新拟合模型后,输出就会显示HerbivoryControl作为非参考水平的效应项。
内容的提问来源于stack exchange,提问作者Sam Chen
相关产品推荐
相关产品推荐

