0

我正在使用 statsmodels 进行多元回归测试。我非常有信心数据中存在关系,无论是从我通过其他来源和绘图已经知道的数据,但是当我使用 statsmodels 进行多元回归测试时,p 值显示为 0.000。我对低 p 值的解释是没有关系。但是,0.000 的值似乎更像是某些计算失败了,因为我假设仅统计噪声就会给我一个至少 0.1 的低 p 值。
当数据中明显存在关系时,计算没有错误但给出 0.000 的 p 值的多元回归测试可能是什么原因?

编辑:
我不确定这是统计问题还是代码问题。因此,如果有经验的人statsmodels能告诉我我是否正确使用它,那将非常有帮助。如果就这是一个与数据相关的问题达成共识,我将在此处关闭此问题并按照评论中的建议在交叉验证上重新打开它

在下图中,我绘制了自变量与因变量的关系。我认为这表明存在某种关系: 自变量之一与因变量的关系图 但是当我进行多元回归测试时:

import statsmodels.api as sm

df = df.dropna()
Y = df['share_yes']
X = df[[
    'party_percent',
]]
X = sm.add_constant(X)
ks = sm.OLS(Y, X)
ks_res = ks.fit()
ks_res.summary()
print(ks_res.summary())

... p 值显示为 0.000:

                            OLS Regression Results                            
==============================================================================
Dep. Variable:              share_yes   R-squared:                       0.504
Model:                            OLS   Adj. R-squared:                  0.504
Method:                 Least Squares   F-statistic:                     2288.
Date:                Mon, 27 Dec 2021   Prob (F-statistic):               0.00
Time:                        13:41:57   Log-Likelihood:                 2152.1
No. Observations:                2256   AIC:                            -4300.
Df Residuals:                    2254   BIC:                            -4289.
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
=================================================================================
                    coef    std err          t      P>|t|      [0.025      0.975]
---------------------------------------------------------------------------------
const             0.4296      0.004    103.536      0.000       0.421       0.438
party_percent     1.2539      0.026     47.831      0.000       1.202       1.305
==============================================================================
Omnibus:                       10.487   Durbin-Watson:                   0.931
Prob(Omnibus):                  0.005   Jarque-Bera (JB):               10.492
Skew:                          -0.166   Prob(JB):                      0.00527
Kurtosis:                       3.044   Cond. No.                         13.6
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
​

这是我的熊猫数据框的样子:

     unique_district  party_percent      share_yes
0               1100       0.089320       0.588583
1               1101       0.099448       0.505556
2               1102       0.146040       0.545226
3               1103       0.094512       0.496875
4               1104       0.136538       0.513672
...              ...            ...            ...
2252           12622       0.040000       0.274827
2253           12623       0.038660       0.322917
2254           12624       0.016453       0.439539
2255           12625       0.060952       0.386774
2256           12626       0.032882       0.306452

请注意,我实际上使用了多个变量,因此是多元回归,但为了简洁起见,我在这里只使用了一个。

4

1 回答 1

1

虽然这不是一个编程问题(除了可能存在错误,如果不提供完整的数据集就无法判断),我会在这里回答,因为它还没有关闭,而且我没有看到你在Cross Validated上询问它。

P 值主要是样本大小的函数(这很容易看到,例如,请参阅关于线性回归的真相的第 7.6 章)并且(对于非零参数)在极限(wrt 样本大小)中接近零。您有一个不错的样本量的单变量回归,因此获得的 p 值应该不足为奇。

于 2021-12-28T23:11:37.213 回答