我有一个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值不同?
答案 0 :(得分:0)
似乎第二个模型中缺少一个拦截术语。或者是隐藏的。
缺失的拦截术语将解释p值的变化。它会改变标准误差,t值,从而改变p值。更不用说改变回归系数(正如你在结果中看到的那样)。