通过以下设置,为什么在两种情况下都会得到相同的标准偏差,即:1.396411?
回归:
CopierDataRegression <- lm(V1~V2, data=CopierData1)
间隔:
X6 <- data.frame(V2=6)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="confidence", level=0.90)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="prediction", level=0.90)
两者都为se.fit提供相同的结果。
使用以下代码获得预测的正确标准偏差:
z <- predict(CopierDataRegression, X6, se.fit=TRUE)
sqrt(z$se.fit^2 + z$residual.scale^2),
但是我不明白为什么这个公式中的一个在标准误差的计算中增加了残差标准差,有人可以解释一下吗?
数据:
CopierData1 <- structure(list(V1 = c(20L, 60L, 46L, 41L, 12L, 137L, 68L, 89L,
4L, 32L, 144L, 156L, 93L, 36L, 72L, 100L, 105L, 131L, 127L, 57L,
66L, 101L, 109L, 74L, 134L, 112L, 18L, 73L, 111L, 96L, 123L,
90L, 20L, 28L, 3L, 57L, 86L, 132L, 112L, 27L, 131L, 34L, 27L,
61L, 77L), V2 = c(2L, 4L, 3L, 2L, 1L, 10L, 5L, 5L, 1L, 2L, 9L,
10L, 6L, 3L, 4L, 8L, 7L, 8L, 10L, 4L, 5L, 7L, 7L, 5L, 9L, 7L,
2L, 5L, 7L, 6L, 8L, 5L, 2L, 2L, 1L, 4L, 5L, 9L, 7L, 1L, 9L, 2L,
2L, 4L, 5L)), .Names = c("V1", "V2"),
class = "data.frame", row.names = c(NA, -45L))
答案 0 :(得分:0)
您必须考虑采样时的估算误差以及进行预测时的噪声项。置信区间仅考虑前者。请参阅答案here。
此外,它们不会给边界提供相同的结果:
> predict(CopierDataRegression, X6,
+ se.fit=TRUE, interval="confidence", level=0.90)$fit
fit lwr upr
1 89.63133 87.28387 91.9788
> predict(CopierDataRegression, X6,
+ se.fit=TRUE, interval="prediction", level=0.90)$fit
fit lwr upr
1 89.63133 74.46433 104.7983
se.fit
仅为您提供预测均值的误差,而不是?predict.lm
中记录的误差项的sd:
预测意味着
se.fit
标准错误
residual.scale
剩余标准偏差