【发布时间】:2016-03-20 20:02:26
【问题描述】:
我正在尝试在 statsmodels 中打印一系列逻辑回归,但不确定如何将结果打印到控制台屏幕以外的其他地方。我创建了一个运行回归的函数,其中数据是数据集,其他变量是数据集中的一系列虚拟变量标签列表(我确信它不是运行这些的最有效方法,但它有效,并且当我有 5 个因变量要使用 var3 中的 var 2 和 15 的 9 个虚拟变量进行回归时,这很有意义):
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("outfile-name.txt", "w") as out: sys.stdout = out ... -
@zondo:我认为写信给
sys不是一个好主意:/ -
@NeilG:确实如此。我什至没有想过你说了什么。只要您要更改每个
print()调用,为什么不使用fileobject.write(...)而不是print(..., out=fileobject)? -
@zondo 我不确定。也许添加一个解释差异的替代答案?
-
@NeilG:我已经听从了你的建议。在这个过程中,我意识到为什么使用
print更容易;)
标签: python logistic-regression statsmodels