2017-10-07 67 views
1

通过以下设置,为什么在两种情况下都会得到相同的标准偏差,即:1.396411?R中prediction.lm预测的标准偏差是否错误?

回归:

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)) 
+1

看起来像一个函数是在系数/参数空间中提供一个估计,而在数据空间中则是另一个函数。 –

回答

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只给你的预测均值,而不是误差项的SD的误差在?predict.lm记载:

se.fit标准误差预测装置

residual.scale残留标准偏差

+0

这就是我的观点。这就是为什么我写道:“_With下面的设置,为什么在这两种情况下得到相同的标准偏差,即:1.396411?_” – HeyJane

+0

对不起,我回复“_...我不明白为什么一个在这个公式中添加了标准差的计算中的残差标准差,有人可以解释这个吗?_“ –

+0

我编辑了我的答案,以澄清'se.fit'元素是返回的对象。它应该是相同的,无论'interval“参数。 –