在 R 中拟合多元线性混合模型

机器算法验证 r 混合模式
2022-03-16 22:33:50

我想知道如何拟合多元线性混合模型并在 R 中找到多元 BLUP。如果有人提出示例和 R 代码,我将不胜感激。谢谢

编辑

我想知道如何将多元线性混合模型与lme4. 我用以下代码拟合了单变量线性混合模型:

library(lme4)
lmer.m1 <- lmer(Y1~A*B+(1|Block)+(1|Block:A), data=Data)
summary(lmer.m1)
anova(lmer.m1)

lmer.m2 <- lmer(Y2~A*B+(1|Block)+(1|Block:A), data=Data)
summary(lmer.m2)
anova(lmer.m2)

我想知道如何将多元线性混合模型与lme4. 数据如下:

Block A B    Y1    Y2
 1 1 1 135.8 121.6
 1 1 2 149.4 142.5
 1 1 3 155.4 145.0
 1 2 1 105.9 106.6
 1 2 2 112.9 119.2
 1 2 3 121.6 126.7
 2 1 1 121.9 133.5
 2 1 2 136.5 146.1
 2 1 3 145.8 154.0
 2 2 1 102.1 116.0
 2 2 2 112.0 121.3
 2 2 3 114.6 137.3
 3 1 1 133.4 132.4
 3 1 2 139.1 141.8
 3 1 3 157.3 156.1
 3 2 1 101.2  89.0
 3 2 2 109.8 104.6
 3 2 3 111.0 107.7
 4 1 1 124.9 133.4
 4 1 2 140.3 147.7
 4 1 3 147.1 157.7
 4 2 1 110.5  99.1
 4 2 2 117.7 100.9
 4 2 3 129.5 116.2

提前感谢您的时间和合作。

2个回答

lme4用or拟合多元模型nlme有点繁琐,但可以在Ben Bolker 的本文档中找到解决方案。

否则,如果您想留在常客框架中,该mcglm包可以处理多变量模型,即使是非正态分布。详细的教程应该很快就会发布。如果您不熟悉设计矩阵,那么设计随机效应矩阵可能会有些棘手。

在贝叶斯框架中,该MCMCglmm包也非常擅长建模多元特征,包括。非正态分布,并以比实际更简单的方式处理随机效应mcglmBen Bolker也很好地描述了它在多变量模型中的用途但是您首先必须让自己熟悉马尔可夫链蒙特卡罗,以及贝叶斯统计的原理。

所以无论哪种方式,一开始可能会有一个缓慢的学习曲线,这取决于你对这两种方法的熟悉程度!

试试 R 包nlme

您可以在以下网址找到一些示例、理论和进一步的文档: http ://cran.r-project.org/doc/contrib/Fox-Companion/appendix-mixed-models.pdf

nlme软件包能够计算汇总估计值 [或所谓的 BLUP = 最佳线性无偏预测器]。

下载包后,输入 R 控制台:help(predict.lme)

如需更多信息,请查看 Fox 论文的第 17 页。在那里,您可以找到有关如何跨主题汇集信息的示例。

希望这可以帮助 :)