尝试在 statsmodels python 中打印多重逻辑回归
trying to print mulitple logistic regressions in statsmodels python
我正在尝试在 statsmodels 中打印一系列逻辑回归,但不确定如何将结果打印到控制台屏幕以外的其他地方。我创建了一个函数 运行s 回归,其中数据是数据集,其他变量是数据集中的一系列虚拟变量标签列表(我确信这不是最有效的方法 运行 虽然这些,但它有效,并且当我有 5 个因变量想要 运行 回归时有意义,其中 9 个虚拟变量来自 var 2 和 15 in var3):
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 文档或 Whosebug 上没有看到任何足够明显的内容。
谢谢
按照@zondo 所说的操作并打开一个文件。然后将文件句柄作为 out
参数传递给 print
。
我会尝试这样的事情:
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
.
我正在尝试在 statsmodels 中打印一系列逻辑回归,但不确定如何将结果打印到控制台屏幕以外的其他地方。我创建了一个函数 运行s 回归,其中数据是数据集,其他变量是数据集中的一系列虚拟变量标签列表(我确信这不是最有效的方法 运行 虽然这些,但它有效,并且当我有 5 个因变量想要 运行 回归时有意义,其中 9 个虚拟变量来自 var 2 和 15 in var3):
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 文档或 Whosebug 上没有看到任何足够明显的内容。 谢谢
按照@zondo 所说的操作并打开一个文件。然后将文件句柄作为 out
参数传递给 print
。
我会尝试这样的事情:
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
.