在线性模型中删除截距后的显着值变化

Significant value change after remove intercept in Linear model

我已经实现了带截距和不带截距的线性回归:

TotalReview ~ Number_of_files + LOC

通过拦截,我得到以下输出,其中 Number_of_files 变量很重要:

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -5.279e+02  1.114e+02  -4.740  0.00515 **
LOC              7.045e-04  2.260e-03   0.312  0.76778   
Number_of_files  1.929e+00  6.026e-01   3.202  0.02395 *

没有拦截,我得到一个非常不同的输出,LOC 突然很重要:

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)  
Number_of_files -0.760434   0.433852  -1.753   0.1302  
LOC              0.008528   0.003302   2.582   0.0416 *

为什么去掉截距后我的变量的意义从Number_of_files变为LOC

直觉上,回归的作用是通过数据点云在 "best possible way" 中拟合一条线。回归输出中的一个系数是这条线的斜率。如果斜率(系数)为零,则(根据回归逻辑)因变量 y 和自变量 x 之间没有关系,即系数将不显着。

当您决定从拟合线中删除截距时,线的斜率将发生变化,以尝试仍然通过数据点云拟合最佳线。您所看到的正是:LOCNumber_of_files 的系数发生了巨大变化。

在下图中,您可以看到只有一个自变量(例如,只有 LOC)的情况下的影响。如您所见,蓝线(无截距)的斜率比红线(有截距)的斜率陡得多。

最后一点,除非你有很好的理由说明你的模型不应包含截距,否则你应该保留截距。