2017-10-07 120 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「參數。 –