1

我正在使用orangeslsmeans 提供的数据。

library(lsmeans)
oranges.rg1<-lm(sales1 ~ price1 + price2 + day + store, data = oranges)
days.lsm <- lsmeans(oranges.rg1, "day")
days_contr.lsm <- contrast(days.lsm, "trt.vs.ctrl", ref = c(5,6))   

置信区间可以通过绘图来可视化plot(contrast(days.lsm, "trt.vs.ctrl", ref = c(5,6))),但它们不会显示在days_contr.lsm

> days_contr.lsm
 contrast       estimate       SE df t.ratio p.value
 1 - avg(5,6) -7.8538769 2.194243 23  -3.579  0.0058
 2 - avg(5,6) -6.9234858 2.127341 23  -3.255  0.0125
 3 - avg(5,6)  0.2462789 2.155529 23   0.114  0.9979
 4 - avg(5,6) -4.6760034 2.110761 23  -2.215  0.1184

如何将置信区间提取到 data.frame?

> days_contr.lsm
 contrast       estimate       SE df t.ratio p.value lower.CL upper.CL
 1 - avg(5,6) -7.8538769 2.194243 23  -3.579  0.0058  ?       ?
 2 - avg(5,6) -6.9234858 2.127341 23  -3.255  0.0125  ?       ?
 3 - avg(5,6)  0.2462789 2.155529 23   0.114  0.9979  ?       ?
 4 - avg(5,6) -4.6760034 2.110761 23  -2.215  0.1184  ?       ?
4

2 回答 2

2

confint(contrast(days.lsm, "trt.vs.ctrl", ref = c(5,6)))工作正常

于 2016-07-07T21:17:18.100 回答
0

冒着打死马的风险,我觉得问题的重点是获得置信区间,因为所看到的days_contr.lsm只是t比率和P值。

发生这种情况是因为汇总contrast()结果的默认方法是显示测试而不是 CI,而汇总emmeans()结果的默认方法是显示 CI 而不是测试。的infer论点summary.emmGrid()控制着你所看到的。因此,您可以使用获得 CI 和测试

summary(days_contr.lsm, infer = c(TRUE, TRUE))

这将填写 OP 中的问号。顺便说一句,结果summary()是一流的c("summary_emm", "data.frame");它是data.frame一种特殊的print方法,通常显示一些额外的注释。

还有其他emmGrid方法confint(),它们分别与和一起test()运行(尽管两者都有额外的功能)。方法就是。有关详细信息,请参阅 tge 帮助页面。summary()infer = c(TRUE, FALSE)infer = c(FALSE, TRUE)as.data.frame()as.data.frame(summary(...))emmeans::summary.emmGrid

于 2021-01-02T17:25:30.353 回答