R^2 多元回归统计模型 OLS

问题描述 投票:0回答:1

我需要将内生变量

Y
回归到外生变量
X
上。
Y
如下所示:

ID              0       1       2   ...        22        23        24
Date                                ...                              
1981        0.0111 -0.1685 -0.2010  ...  0.155037  0.008162 -0.038970
1982        0.2974  0.4805  0.0352  ...  0.100300  0.249513  0.165870
1983        0.1575  0.2501  0.1812  ...  0.128059  0.210568  0.444479
1984        0.0194 -0.0821 -0.1136  ...  0.200166  0.154689  0.016384
1985        0.3704  0.1424  0.2205  ...  0.279801  0.297258  0.137567

这意味着我的列上有 25 个不同的时间序列。 我的

X
看起来像这样:

           A       B       C       D       E       F       G
Date                                                        
1981 -0.1813  0.0731  0.2512 -0.0141  0.1091  0.1471 -0.0825
1982  0.1066  0.0727  0.1336 -0.0416  0.1773  0.1054  0.3473
1983  0.1374  0.1227  0.2049  0.0048  0.1606  0.0880 -0.0984
1984 -0.0605 -0.0826  0.1907  0.1523  0.0364  0.0985  0.0888
1985  0.2491 -0.0021  0.0145  0.1185 -0.0300  0.0772  0.1469

这意味着我的列上有 7 个预测变量。请注意,预测变量不是

Y
ID 的特征,它们是本着因子分析精神的相当不同的因子。现在我使用以下命令进行回归:

import statsmodels.api as sm
mod=sm.OLS(Y,X)
res=mod.fit()

模型拟合正确:我获得的

res.params
正是我在
Y
上对
X
的每一列进行回归时得到的参数,但我既无法获得 R^2,也无法获得预测值,也无法获得摘要。
print(res.summary())
行实际上给了我以下错误:

ValueError: shapes (5,25) and (5,25) not aligned: 25 (dim 1) != 5 (dim 0)

我知道这与

X
的尺寸无关,但这只是由于使用
sm.OLS
来表示
Y
中的“多个”ID。当然,我可以对
Y
上的
X
的每个元素进行单独回归,保存系数和预测值,并根据总体观测值计算 R^2。但是,我不明白背后的问题是什么
sm.OLS
。有人可以向我解释一下这里发生了什么以及潜在的不同解决方法吗?

python regression linear-regression statsmodels least-squares
1个回答
0
投票

不幸的是,据我所知,没有解决方案,因为 statsmodels OLS 不支持二维内生变量。这非常烦人,因为模型似乎拟合并生成了很好的系数;这只是拟合模型的方法需要一维数组作为系数。

© www.soinside.com 2019 - 2024. All rights reserved.