2015-11-04 110 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)

(对不起,不支持该胶乳)