我使用的是lsmeans提供的oranges数据。
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 ? ?发布于 2016-07-08 05:17:18
confint(contrast(days.lsm, "trt.vs.ctrl", ref = c(5,6)))运行良好
发布于 2021-01-03 01:25:30
冒着打死马的风险,我觉得问题的要点是获得置信区间,因为在days_contr.lsm中看到的只是t比率和P值。
这是因为汇总contrast()结果的默认方法是显示测试而不是CI,而汇总emmeans()结果的默认方法是显示CI而不是测试。summary.emmGrid()的infer参数控制您所看到的内容。因此,您可以使用以下命令获取配置项和测试
summary(days_contr.lsm, infer = c(TRUE, TRUE))这将填充操作中的问号。顺便说一句,summary()结果属于c("summary_emm", "data.frame")类;它是一个具有特殊print方法的data.frame,该方法通常会显示一些额外的注释。
还有额外的emmGrid方法confint()和test(),它们分别与infer = c(TRUE, FALSE)和infer = c(FALSE, TRUE)一起运行summary() (尽管这两个方法都有额外的功能)。as.data.frame()方法就是as.data.frame(summary(...))。有关详细信息,请参阅emmeans::summary.emmGrid帮助页面。
https://stackoverflow.com/questions/38255442
复制相似问题