2017-05-20 204 views
0

我試圖按組運行線性迴歸,並分別顯示每個材質組的結果,包括特定材質的名稱。Python statsmodels - 按組顯示迴歸結果

我的數據集有一個變量ActYTDVol,我在UnitPrice上進行迴歸。我使用statsmodels和for-in分別對每個材質(=組)進行迴歸。

我能夠運行上述迴歸,但迴歸輸出不顯示我正在分析的材料的名稱,因此我無法說出迴歸輸出引用的材料的名稱。

是否有辦法在迴歸輸出旁邊顯示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

您可以在循環中打印Materials

此外,總結了一個yname關鍵字添加響應變量的名稱彙總表 http://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLSResults.summary.html#statsmodels.regression.linear_model.OLSResults.summary

+0

非常感謝您!我已經嘗試了下面的代碼,但得到一個錯誤消息「IndentationError:預計一個縮進塊」。你知道我做錯了什麼嗎?我是Python新手,非常感謝您的幫助,謝謝!對於材料tempdf: print(results.summary()) – Paddington

+0

第一行:對於材料在tempdf:第二行(4空格後):print(results.summary()) – Paddington

+0

現在我明白了:-)我替換了打印行「打印(results.summary(yname =材料))」,它的作品就像一個魅力 - 非常感謝您的幫助! – Paddington