2015-11-04 111 views
1

我試圖理解來自predict()的輸出,以及瞭解這種方法是否適合於我試圖解決的問題。預測區間沒有道理給我,但是當我繪製這在散點圖它看起來像一個很好的模式:瞭解'預測'的輸出在R

enter image description here

我創造交易規模($)的簡單線性迴歸模型用公司的銷售量作爲預測變量。該數據是僞造的,交易規模是銷量加上或減去一些噪音的倍數:

Call: 
lm(formula = deal_size ~ sales_volume, data = accounts) 

Residuals: 
     Min  1Q Median  3Q  Max 
-19123502 -3794671 -3426616 4838578 17328948 

Coefficients: 
       Estimate Std. Error t value Pr(>|t|)  
(Intercept) 3.709e+06 1.727e+05 21.48 <2e-16 *** 
sales_volume 1.898e-01 2.210e-03 85.88 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 6452000 on 1586 degrees of freedom 
Multiple R-squared: 0.823, Adjusted R-squared: 0.8229 
F-statistic: 7376 on 1 and 1586 DF, p-value: < 2.2e-16 

的預測是正是如此產生:

d = data.frame(accounts, predict(fit, interval="prediction")) 

當我繪製sales_volume與deal_size上的散點圖,並將迴歸線與預測區間疊加,看起來很不錯,除了少數區間跨度爲銷售額接近於零的負值。

我明白擬合預測值,但什麼是LWR和UPR?他們是否以絕對項(y座標)定義間隔?間隔似乎是極寬,寬於纔有意義,如果我的模型是一個不錯的選擇:

sales_volume deal_size fit   lwr   upr 
0    0   3709276.494 -8950776.04 16369329.03 
0    8586337.22 3709276.494 -8950776.04 16369329.03  
110000   549458.6512 3730150.811 -8929897.298 16390198.92 
+0

也許看看'?predict.lm' –

+0

完成後僅code.With輸出我們沒有任何幫助確定問題的方式。 –

+3

我已經放在一起顯示兩個時間間隔工作的短文檔。 http://rpubs.com/RomanL/7024 –

回答

4

當您使用predictlm模型,你可以指定一個interval。你有三個選擇:none不會返回間隔,confidenceprediction。這兩者都會返回不同的值。第一列將如您所說的預測值(列fit)。然後您有另外兩列:lwrupper,它們是置信區間的上限和下限。

是什麼confidenceprediction之間的區別?

confidence是一個(默認95%,使用level如果你想改變)預測值的平均值的置信區間。這是你的情節的綠色區間。而prediction是所有值的(也是95%)置信區間,這意味着如果您重複您的經驗/調查/ ......很多次,您可以預期95%的值將落入黃色區間,因此它比綠色的寬得多,因爲綠色的只評估平均值。

而當你在你的情節看,幾乎所有值都在黃色區間。 R不知道你的價值只能是積極的,因此解釋了爲什麼黃色間隔「開始」 0

而且下,當你說「的時間間隔似乎是極寬,寬於纔有意義,如果我的模型非常合適「,您可以在您的情節中看到間隔不是那麼大,考慮到您可以預期95%的數值在其中,並且您可以清楚地看到數據中的趨勢。由於調整後的R平方和全球P值告訴你,你的模型顯然是一個很好的選擇。

4

正上方@etienne輕微的改寫,這是非常好的和準確的。

置信區間是(1-α;例如95%)的平均值預測(或組的響應)的時間間隔。IE如果你有10家新公司,銷售量爲2e+08,那麼predict(..., interval= "confidence")區間會給你的團體平均值的長期平均間隔。

使用var(\帽子Y | X = X *)= \西格馬^ 2(1/N +(X * - \酒吧X)^ 2/SXX)

預測間隔是(1 -α;例如95%)的間隔爲個體反應 - predict(..., interval= "predict")。 IE爲一個銷售量爲2e+08的單個新公司......

隨着Var(\ hat y | X = x *)= \ sigma^2(1 + 1/n +(x * - \ bar x)^2/SXX)

(對不起,不支持該膠乳)