如何在sommer R包中正确指定嵌套随机效应结构?
正确在sommer中指定嵌套结构的方法
你当前的代码存在重复拟合genotype随机效应的问题,这确实可能导致方差估计偏差,进而让CV准确率虚高。以下是对应lme4中(1|genotype/root_ID)嵌套结构的正确写法:
核心逻辑
lme4的(1|genotype/root_ID)等价于同时拟合两个随机效应:
- 基因型(genotype)的随机截距
- 基因型内根ID(root_ID)的嵌套随机截距
在sommer中,若你要给genotype指定加性遗传矩阵Gu=a,只需把普通的基因型随机效应替换为vsr(genotype, Gu=a),再保留嵌套的genotype:root_ID项即可,不要额外重复添加genotype项。
修正后的代码
mod1 <- mmer(Y ~ 1, random= ~ vsr(genotype, Gu=a) + genotype:root_ID, rcov= ~units, nIters=10, data=fold, verbose = FALSE, dateWarning=FALSE)
额外说明
- 如果你想明确用
vsr()包裹嵌套项,也可以写成vsr(genotype:root_ID),效果和直接写genotype:root_ID一致 - 重复添加
genotype项会让模型同时拟合加性遗传版和普通随机截距版的基因型效应,这会人为放大模型的解释能力,导致CV准确率被高估
内容的提问来源于stack exchange,提问作者bigoof99
相关产品推荐
相关产品推荐

