r语言 - 如何使用predict获得标准差?



我正在尝试绘制一个三方交互。首先,我使用expand.grid来创建变量的不同组合。然后我用predict得到预测值。它工作得很好,但是,我想得到标准差或置信区间。一旦我在predict中包含选项se.fit = T,我就会得到一些结果,我无法解释为两个组合得到一个预测值,另外两个得到四个结果的范围。我不确定se.fit = T选项在这种情况下是否错误,或者问题是否在我对结果的解释中。有人能帮忙吗?

这是没有se.fit选项的代码:

set.seed(20170925) 
dat <- data.frame(time=gl(n = 2,k = 5000),
y= rnorm(10000, mean=1000, sd=400),
a=factor(sample(1:2, 10000, replace=TRUE)),
b=factor(sample(1:2, 10000, replace=TRUE)),
c=factor(rep(rep(1:3,times=c(2500,2500,5000)),2)))
m = lm(y ~ a*b*c, data=dat)
pred <- expand.grid(a=factor(1:2),b=factor(1:2), c=factor(1, levels=c(1,2,3)))
pred$y <- predict(m,pred)
要添加se.fit选项,我们运行相同的代码,但将最后一行改为:
pred$y <- predict(m,pred, se.fit = T)

predict现在给你一个列表,你只需要挑选出它的元素,也许像这样:

p <- predict( m, pred, se.fit=TRUE )
pred$y <- p$fit
pred$se.fit <- p$se.fit

编辑:让它更简单

最新更新