r - 理解 R 中 'predict' 的输出

标签 r prediction

我试图了解 predict() 的输出,以及了解这种方法是否适合我要解决的问题。预测区间对我来说没有意义,但是当我在散点图上绘制它时,它看起来像一个很好的模型:

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 的关系,并用预测区间覆盖回归线时,它看起来不错,除了一些跨越负值的区间,其中销售额为零或接近零。

我知道 fit 是预测值,但 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

最佳答案

当您使用 predictlm型号,您可以指定一个 interval .您有三个选择:none不会返回区间,confidenceprediction .这两者都会返回不同的值。第一列将是您所说的预测值(列 fit )。然后您还有另外两列:lwrupper它们是置信区间的下限和上限。
confidence有什么区别和 prediction ?
confidence是(默认为 95%,如果你想改变它,请使用 level)预测值均值的置信区间。它是您情节上的绿色区间。而prediction是您所有值的(也是 95%)置信区间,这意味着如果您重复您的经验/调查/...大量次数,您可以预期 95% 的值将落在黄色区间内,因此使它比绿色的宽很多,因为绿色的只评估平均值。

正如您在绘图中看到的,几乎所有值都在黄色区间内。 R 不知道您的值只能为正值,因此它解释了为什么黄色间隔“开始”在 0 以下。

此外,当您说“间隔似乎非常宽,比我的模型适合时更宽”时,您可以在图中看到间隔不是那么大,考虑到您可以预期 95%要包含在其中的值,您可以清楚地看到数据中的趋势。您的模型显然非常适合,因为调整后的 R 平方和全局 p 值告诉您。

关于r - 理解 R 中 'predict' 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33527497/

相关文章:

r - 如何创建在 R 的 for 循环中使用的 lmer 模型对象列表?

r - 绘制 glm 交互 : "newdata=" structure in predict() function

apache-spark - ALS模型增量训练

r - R 中的显式公式与符号导数

r - 在ggplot中为glue命令添加小数位

使用 R margins 包复制 Stata marginlist 参数?

keras - 我需要有状态或无状态的 LSTM 吗?

python - fbprophet库中的 'yhat'(预测)是如何计算的?

r - 在 R 中合并数据帧的多个重复行

r - 定时大块?