Pau*_*idt 3 r mixed-models lsmeans emmeans
其他关键字: 最佳线性无偏估计量 (BLUE)、调整均值、混合模型、固定效应、线性组合、对比度、R
mmer()使用sommer包拟合模型后- 是否可以从对象获得估计边际均值 ( emmeans()) /最小二乘均值 (LS-means)mmer?也许类似于predict()ASReml-R v3 的功能?
实际上,我想要很多东西,也许分开要求会更清楚:
predict(..., vcov=T))emmeans(mod, pairwise ~ effect, adjust="Tukey")predict(..., sed=T))所以是的,基本上 和 的混合predict()将emmeans()是这里的目标。
提前致谢!
看来是有可能的。这是该包的示例之一:
library(sommer) # Version 4.1.2
data(DT_cornhybrids)
DT <- DT_cornhybrids
DTi <- DTi_cornhybrids
GT <- GT_cornhybrids
hybrid2 <- DT
A <- GT
K1 <- A[levels(hybrid2$GCA1), levels(hybrid2$GCA1)]
K2 <- A[levels(hybrid2$GCA2), levels(hybrid2$GCA2)]
S <- kronecker(K1, K2, make.dimnames=TRUE)
ans <- mmer(Yield ~ Location,
random = ~ vs(GCA1,Gu=K1) + vs(GCA2,Gu=K2) + vs(SCA,Gu=S),
rcov=~units,
data=hybrid2)
summary(ans)
## ...
## Fixed effects:
## Trait Effect Estimate Std.Error t.value
## 1 Yield (Intercept) 1.379e+02 1.962 7.031e+01
## 2 Yield Location2 1.776e-14 2.099 8.461e-15
## 3 Yield Location3 7.835e+00 2.099 3.732e+00
## 4 Yield Location4 -9.097e+00 2.099 -4.333e+00
## ...
Run Code Online (Sandbox Code Playgroud)
返回的对象具有元素$Beta并且$VarBeta返回其固定效应和协方差。我们可以使用以下方法创建参考网格emmeans::qdrg():
rg <- qdrg(~ Location, data = hybrid2, coef = ans$Beta$Estimate,
vcov = ans$VarBeta)
rg
## 'emmGrid' object with variables:
## Location = 1, 2, 3, 4
emmeans(rg, trt.vs.ctrl1 ~ Location)
## $emmeans
## Location emmean SE df asymp.LCL asymp.UCL
## 1 138 1.96 Inf 134 142
## 2 138 1.96 Inf 134 142
## 3 146 1.96 Inf 142 150
## 4 129 1.96 Inf 125 133
## Confidence level used: 0.95
## $contrasts
## contrast estimate SE df z.ratio p.value
## 2 - 1 0.00 2.1 Inf 0.000 1.0000
## 3 - 1 7.84 2.1 Inf 3.732 0.0006
## 4 - 1 -9.10 2.1 Inf -4.333 <.0001
## P value adjustment: dunnettx method for 3 tests
Run Code Online (Sandbox Code Playgroud)
事实上,位置 1 的 EMM 及其 SE 与summary()截距相匹配,并且其余回归系数和 SE 与对比结果相匹配,这一事实令人放心。
qdrg有关更多详细信息,请参阅文档。
在 sommer >= 3.7 中,已实现预测函数,以便像 asreml 那样获得固定或随机效应的预测。它需要一个模型和分类参数来知道使用哪些参数来聚合超表并得出正确的标准错误。例如:
data(DT_cpdata)
#### create the variance-covariance matrix
A <- A.mat(GT) # additive relationship matrix
#### look at the data and fit the model
head(DT)
mix1 <- mmer(Yield~1,
random=~vs(id,Gu=A)
+ Rowf + Colf,
rcov=~units,
data=DT)
summary(mix1)
preds <- predict(mix1,classify = "id")
> head(preds$predictions)
id predicted.value.Yield standard.errors.Yield
1 P003 111.15400 28.16363
2 P004 135.21958 29.81544
3 P005 109.72743 29.68574
4 P006 144.98582 27.99627
preds <- predict(mix1,classify = "Rowf")
> head(preds$predictions)
Rowf predicted.value.Yield standard.errors.Yield
1 1 81.71645 23.22997
2 2 96.79625 22.92514
3 3 128.89043 22.64216
4 4 132.65795 22.73903
Run Code Online (Sandbox Code Playgroud)
等等... RtermsToForce 和 FtermsToForce 参数可用于强制在预测中使用特定的固定或随机项。我猜是下一个版本的定制对比。