回归的回归和交叉验证 - 为什么不同的p值?

时间:2015-07-13 01:53:10

标签: regression cross-validation

我有一个R问题。我想知道为什么使用lm的原始回归分析中的p值与使用DAAG包的k-fold交叉验证中的p值存在差异。

所以,首先我运行回归。

Model = lm(ExampleData$DependentVariable ~ ExampleData$IV1  + ExampleData$IV2  + ExampleData$IV3  + ExampleData$IV4)

这给出了预测变量的p值(如下所示)。

(Intercept)  = 0.01958 *, ExampleData$IV1  =  0.05631 ., ExampleData$IV2  =  0.00295 **, ExampleData$IV3  =  0.00492 **, ExampleData$IV4  = 0.00473 **

然后,我使用DAAG包中的cv.lm来交叉验证模型。

cv.lm(df=ExampleData, Model_forCV, m=5)

这为我提供了交叉验证结果以及预测变量的p值(如下所示)。

IV1  = 0.07541 . , IV2  = 0.00059 ***, IV3  = 0.03938 * , IV4  = 0.00473 **

为什么p值不同?

1 个答案:

答案 0 :(得分:0)

似乎第二个模型中缺少一个拦截术语。或者是隐藏的。

缺失的拦截术语将解释p值的变化。它会改变标准误差,t值,从而改变p值。更不用说改变回归系数(正如你在结果中看到的那样)。