STATSMODELS线性回归与PANDAS DF.CORR()函数之间的不同P值



我正在研究住房价格预测数据集。它具有13个功能,我正在使用多个线性回归模型。当我检查功能和目标值的相关性时,它显示了df.corr()方法和Summary()函数的奇怪结果。

对于少数特征,P相关系数的值很低。但是,如果我在回归后使用summary()函数,则这些功能具有不同的p值。相关系数值最低的功能没有最高的P值。否则相关系数和P值没有相似性/相关性。可能出了什么问题?

相关系数

correlation_matrix = BostonHousing_df.corr().round(2)

对于p值

X=BostonHousing_df.iloc[:,:-1].values
y=BostonHousing_df.iloc[:,-1].values
X_opt = X1[:,[0,1,2,3,4,5,6,7,8,9,10,11,12,13]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()

作为dataframe.corr()方法默认情况下使用pearson corelation。

PVALUE

CoreLationCoeff

如果您观察到图像的2个结果,则具有最低的CORELATION系数的特征没有较高的P值。

这里的问题是,当您检查成对的皮尔森相关性时,您并没有考虑所有其他变量的效果。因此,您不能期望皮尔森与目标的相关性与回归模型中的p值之间存在直接关系。

这是一个极端的例子来说明这一点:

说我们有一个目标c,该目标由两个功能a+b的总和定义。说您有以下培训集:

a = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]    
b = [4, 3, 2, 1, 0, 6, 5, 4, 3, 2]  
c = [5, 5, 5, 5, 5, 7, 7, 7, 7, 7]

请注意,即使a+b完美地给您c,如果您只检查ac之间的相关性,您也将拥有0!

numpy.corrcoef(a, c)  
> array([[1., 0.],
         [0., 1.]])  

但是,如果将这些数据插入线性回归估计器中,那么对于a,您当然会获得极小的p值。

,如您所见,与目标的小相关性不一定意味着缺乏效果/小p值。

相关内容

  • 没有找到相关文章

最新更新