我正在使用 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
请注意,我实际上使用了多个变量,因此是多元回归,但为了简洁起见,我在这里只使用了一个。