在夏天的时候得到 emmeans?

Get emmeans in sommer's mmer?

Additional keywords: Best linear unbiased Estimator (BLUE), adjusted means, mixed model, fixed effects, linear combination, contrast, R

sommer package - is it possible to obtain estimated marginal means (emmeans()) / least squares means (LS-means) from an mmer object? Maybe similar to the predict() function with ASReml-R v3mmer() 拟合模型后?

其实我想要多件东西,也许分开要更清楚:

  1. emmeans 自己 和他们的
  2. 标准误 (s.e.)
  3. 作为每个级别均值旁边的一列
  4. emmeans 的方差-协方差矩阵(参见predict(..., vcov=T)
  5. 均值和它们
  6. 之间的对比
  7. 差异的标准误差 (s.e.d.)
  8. 均值之间的所有成对差异,最好使用 post hoc 检验(参见 emmeans(mod, pairwise ~ effect, adjust="Tukey")
  9. S.e.d。矩阵(参见 predict(..., sed=T)
  10. 最小值、平均值和最大值s.e.d.
  11. 自定义对比度

所以是的,基本上 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
## ...

returned 对象具有元素 $Beta$VarBeta,其中 return 其固定效应和协方差。我们可以使用 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 

位置 1 的 EMM 及其 SE 与 summary() 截距匹配,并且其余回归系数和 SE 与对比结果匹配,这一事实令人安心。

有关详细信息,请参阅 qdrg 的文档。

在 sommer >= 3.7 中,predict 函数已经实现,可以像 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

等等... RtermsToForce 和 FtermsToForce 参数可用于强制在预测中使用特定的固定或随机项。我猜是为下一个版本定制的对比度。