Python statsmodels - 按组显示回归结果

Python statsmodels - display regression results by group

我正在尝试按组 运行 线性回归并分别显示每个 material 组的结果,包括特定 material 的名称。

我的数据集有一个变量 ActYTDVol,我正在对 UnitPrice 进行回归。我使用 statsmodels 和 for-in.

分别对每个 Material (=group) 执行回归

我能够 运行 上面的回归,但是回归输出没有显示我正在分析的 Material 的名称,因此我无法说出是哪个 Material回归输出指的是。

有没有办法在回归输出旁边显示 Material(=组)名称?

这是我目前使用的代码:

import statsmodels.api as sm
from statsmodels.iolib.summary2 import summary_col

for Materials in df.Material.unique():
tempdf = df[df.Material == Materials]
X = sm.add_constant(tempdf['UnitPrice'])
y = tempdf['ACTYTDVol']

model = sm.OLS(y, X)
results = model.fit()

print(results.summary())

我当前的输出显示了我拥有的 10 个 Material 中的每一个的 10 个 OLS 回归结果表。但是,它没有说明进行回归的 Material 的名称,因此我不知道结果指的是哪个 Material。

非常感谢您的帮助!

你可以在循环中打印Materials

此外,summary 有一个 yname 关键字,用于将响应变量的名称添加到汇总表中 http://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLSResults.summary.html#statsmodels.regression.linear_model.OLSResults.summary