为什么在OLS回归模型中,除第一个(截距)外的所有系数都获得非常接近零的值(e^17或低)?

2024-06-10 22:55:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了以下代码,使用statsmodels包来创建OLS回归模型。我尝试了不同数据集的代码,得到了除第一个(截距)系数外所有系数值都接近零的模型。代码可能有什么问题?你知道吗

data1 = pandas.concat([Y, X], axis = 1)
dta = lagmat2ds(data1, mxlg, trim='both', dropex=1)
dtaown = sm.add_constant(dta[:, 0:(mxlg + 1)], prepend = False)
dtajoint = sm.add_constant(dta[:, 0:], prepend = False)
res2down = sm.OLS(dta[:, 0], dtaown).fit()
res2djoint = sm.OLS(dta[:, 0], dtajoint).fit()

Here the sm is statsmodels.api as sm and for sample testing you can consider the dataset sm.datasets.spector.


Tags: 代码模型addfalsefitsmprependconstant
1条回答
网友
1楼 · 发布于 2024-06-10 22:55:04

数据的结构方式—您正在建模YY|lag Y|constant。请注意,OLS文档(https://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLS.html)指出-

No constant is added by the model unless you are using formulas.

所以你看到的第一个值不是截距,而是拟合系数YY,也就是1.0。你知道吗

你可以试着检查你是否得到了合理的结果,就是把Y排除在这样的预测之外-

res2down = sm.OLS(dta[:, 0], dtaown[:, 1:]).fit()

相关问题 更多 >