我正在使用pandas 0.11.0
(数据处理)进行逻辑回归并statsmodels 0.4.3
在 Mac OSX Lion 上进行实际回归。
我将运行约 2,900 个不同的逻辑回归模型,并且需要将结果输出到 csv 文件并以特定方式格式化。
目前,我只知道print result.summary()
将结果(如下)打印到shell:
Logit Regression Results
==============================================================================
Dep. Variable: death_death No. Observations: 9752
Model: Logit Df Residuals: 9747
Method: MLE Df Model: 4
Date: Wed, 22 May 2013 Pseudo R-squ.: -0.02672
Time: 22:15:05 Log-Likelihood: -5806.9
converged: True LL-Null: -5655.8
LLR p-value: 1.000
===============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
-------------------------------------------------------------------------------
age_age5064 -0.1999 0.055 -3.619 0.000 -0.308 -0.092
age_age6574 -0.2553 0.053 -4.847 0.000 -0.359 -0.152
sex_female -0.2515 0.044 -5.765 0.000 -0.337 -0.166
stage_early -0.1838 0.041 -4.528 0.000 -0.263 -0.104
access -0.0102 0.001 -16.381 0.000 -0.011 -0.009
===============================================================================
我还需要优势比,它由 计算print np.exp(result.params)
,并打印在外壳中,如下所示:
age_age5064 0.818842
age_age6574 0.774648
sex_female 0.777667
stage_early 0.832098
access 0.989859
dtype: float64
我需要将这些都以非常长的行的形式写入 csv 文件(我不确定,在这一点上,我是否需要类似的东西Log-Likelihood
,但为了彻底起见已经包含了它):
`Log-Likelihood, age_age5064_coef, age_age5064_std_err, age_age5064_z, age_age5064_p>|z|,...age_age6574_coef, age_age6574_std_err, ......access_coef, access_std_err, ....age_age5064_odds_ratio, age_age6574_odds_ratio, ...sex_female_odds_ratio,.....access_odds_ratio`
我想你明白了——一个很长的行,包含所有这些实际值,以及一个包含所有列名称的标题都采用类似的格式。
我熟悉csv module
Python 中的 ,并且越来越熟悉pandas
. 不确定是否可以将此信息格式化并存储在 a 中pandas dataframe
,然后to_csv
在所有约 2,900 个逻辑回归模型完成后将其写入文件;那肯定没问题。此外,在每个模型完成时编写它们也很好(使用csv module
)。
更新:
所以,我更多地关注 statsmodels 站点,特别是试图弄清楚模型的结果是如何存储在类中的。看起来有一个名为“Results”的类,需要使用它。我认为使用这个类的继承来创建另一个类,其中一些方法/运算符发生变化可能是要走的路,以获得我需要的格式。我在这方面的经验很少,需要花很多时间来解决这个问题(这很好)。如果有人可以提供帮助/有更多经验,那就太棒了!
这是布置类的站点:statsmodels 结果类