我在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()
在这里,sm是作为sm的statsmodels.api,对于示例测试,您可以考虑dataset sm.datasets.spector。
发布于 2019-01-04 02:53:24
数据的结构方式--您是在建模Y
与Y|lag Y|constant
。请注意,OLS
文档(model.OLS.html)指出-
除非您使用公式,否则模型不会添加任何常量。
所以,你看到的第一个值不是截距,而是拟合Y
对Y
的系数,它将是1.0
。
你可以试着检查你是否得到了合理的结果,就是把Y
从这样的预测器中排除出来-
res2down = sm.OLS(dta[:, 0], dtaown[:, 1:]).fit()
https://stackoverflow.com/questions/54035907
复制