我尝试按组运行线性回归,并分别显示每个材料组的结果,包括特定材料的名称。
我的数据集有一个变量ActYTDVol,我在UnitPrice上回归。我使用statsmodels和for-in分别对每个Material(= group)执行此回归。
我可以运行上面的回归,但是回归输出没有显示我正在分析的材料的名称,因此我无法说出回归输出所指的材料。
有没有办法在回归输出旁边显示Material(= group)名称?
这是我目前使用的代码:
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种材料中的每种材料的10个OLS回归结果表。但是,它没有说明回归所用材料的名称,因此我无法知道结果所涉及的材料。
非常感谢您的帮助!
答案 0 :(得分:0)
您可以在循环中打印Materials
。
此外,summary还有一个yname关键字,用于将响应变量的名称添加到摘要表中 http://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLSResults.summary.html#statsmodels.regression.linear_model.OLSResults.summary