[英]trying to print mulitple logistic regressions in statsmodels python
我正在嘗試在statsmodels中打印一系列邏輯回歸,但是不確定如何將結果打印到控制台屏幕以外的其他內容。 我創建了一個函數來運行回歸,其中數據是數據集,其他變量是數據集中的一系列虛擬變量標簽列表(我確信這不是運行這些變量的最有效方法,但是當我有5個因變量要使用var 2中的9個虛擬變量和var3中的15個虛擬變量進行回歸時,這是有道理的:
def regression(data, var1, var2, var3):
for var in var 2:
for var in var1:
for var in var3:
f = '%s ~ %s * %s' % (var1, var2, var3)
y, x = patsy.dmatrices(f, data, return_type = 'dataframe')
result = sm.Logit(y,x).fit()
print(result.summary())
print(np.exp(result.params))
無論如何-我試圖將輸出打印到控制台以外的其他位置,以便我可以保存並進行重大處理。 我敢打賭答案並不難,但是我是python和statsmodels的新手,在statsmodels文檔或stackoverflow上還沒有看到足夠明顯的東西。 謝謝
我會嘗試這樣的事情:
with open("summary.txt", "w") as f:
f.write(result.summary)
with open("params.txt", "w") as f:
f.write(np.exp(result.params))
如果要寫入文件而不是標准輸出,可以打開文件並使用.write()
:
def regression(...):
with open("outfile") as out:
for var in var 2:
for var in var1:
for var in var3:
...
out.write(str(result.summary()) + "\n")
out.write(str(np.exp(result.params)) + "\n)
正如@NeilG指出的,您也可以使用print(result.summary(), out=out)
。 這幾乎是out.write(str(...) + "\\n")
的快捷方式。如果要將result.summary()
和np.exp(result.params)
放在單獨的文件中,請with open("summary", "w") as summary, open("params", "w") as params:
並使用summary
和params
而不是out
。
按照@zondo所說的做,然后打開一個文件。 然后將文件句柄作為out
參數傳遞到print
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.