簡體   English   中英

試圖在statsmodels python中打印多邏輯回歸

[英]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:並使用summaryparams而不是out

按照@zondo所說的做,然后打開一個文件。 然后將文件句柄作為out參數傳遞到print中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM