我正在尝试在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上还没有看到足够明显的东西。谢谢
如果要写入文件而不是标准输出,可以打开文件并使用.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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句