首页 > 解决方案 > 获取 OLSmodel 的摘要时的问题

问题描述

我有femalesucide数组size (4,180)HDIar数组size(4,180)。我运行 OLS 回归,但是当我尝试获取模型摘要时它给出了错误

femalesucide=np.array([femalesuiciderate2000,femalesuiciderate2005,femalesuiciderate2010,femalesuiciderate2015])
HDIar=np.array([HDIRank2000,HDIRank2005,HDIRank2010,HDIRank2015])
model4=sm.OLS(femalesucide,HDIar).fit()
prediction=model4.predict(HDIar)
print_model4=model4.summary()
print(print_model4)

我收到以下错误:

C:\Users\srija\AppData\Local\Programs\Python\Python37-32\lib\site-packages\statsmodels\stats\stattools.py:72:ValueWarning:omni_normtest 在少于 8 个观察值时无效;给了4个样品。“给了样品。” % int(n), ValueWarning) ValueError: 形状 (4,180) 和 (4,180) 未对齐: 180 (dim 1) != 4 (dim 0)

标签: python

解决方案


您的因变量femalesucide是多变量的,即具有多列的二维。

OLS 只支持单变量因变量,即endog应该是一维的。由于线性代数用于估计的方式,拟合可能有效并估计params,但大多数其他结果不适用于多元因变量。

作为替代方案,您可以堆叠因变量以获得一个单变量模型并添加相应的虚拟变量和交互项,或者使用linearmodels包并估计面板数据模型。

statsmodels 尚不完全支持具有多变量因变量的模型。


推荐阅读