我已经训练了glm
如下内容:
fitGlm = smf.glm( listOfInModelFeatures,
family=sm.families.Binomial(),data=train, freq_weights = train['sampleWeight']).fit()
结果看起来不错:
print(fitGlm.summary())
Generalized Linear Model Regression Results
==============================================================================
Dep. Variable: Target No. Observations: 1065046
Model: GLM Df Residuals: 4361437.81
Model Family: Binomial Df Model: 7
Link Function: Logit Scale: 1.0000
Method: IRLS Log-Likelihood: -6.0368e+05
Date: Sun, 25 Aug 2024 Deviance: 1.2074e+06
Time: 09:03:54 Pearson chi2: 4.12e+06
No. Iterations: 8 Pseudo R-squ. (CS): 0.1716
Covariance Type: nonrobust
===========================================================================================
coef std err z P>|z| [0.025 0.975]
-------------------------------------------------------------------------------------------
Intercept 3.2530 0.003 1074.036 0.000 3.247 3.259
feat1 0.6477 0.004 176.500 0.000 0.641 0.655
feat2 0.3939 0.006 71.224 0.000 0.383 0.405
feat3 0.1990 0.007 28.294 0.000 0.185 0.213
feat4 0.4932 0.009 54.614 0.000 0.476 0.511
feat5 0.4477 0.005 90.323 0.000 0.438 0.457
feat6 0.3031 0.005 57.572 0.000 0.293 0.313
feat7 0.3711 0.004 87.419 0.000 0.363 0.379
===========================================================================================
然后我尝试按照这里的建议将其summary()
导出.png
:
Python:如何将 statsmodels 结果保存为图像文件?
因此,我写了这样的代码:
fig, ax = plt.subplots(figsize=(16, 8))
summary = []
fitGlm.summary(print_fn=lambda x: summary.append(x))
summary = '\n'.join(summary)
ax.text(0.01, 0.05, summary, fontfamily='monospace', fontsize=12)
ax.axis('off')
plt.tight_layout()
plt.savefig('output.png', dpi=300, bbox_inches='tight')
但是我收到此错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[57], line 57
55 fig, ax = plt.subplots(figsize=(16, 8))
56 summary = []
---> 57 fitGlm.summary(print_fn=lambda x: summary.append(x))
58 summary = '\n'.join(summary)
59 ax.text(0.01, 0.05, summary, fontfamily='monospace', fontsize=12)
TypeError: GLMResults.summary() got an unexpected keyword argument 'print_fn'
看起来好像print_fn
没有被 statsmodels 识别?
有人能帮帮我吗?
我设置了一个测试来查看 print_fn 可以在何处使用。我也查看了上一个问题发布的解决方案,但在文档中找不到 print_fn。
我尝试将其转换为制表格式以便将摘要保存为 png:
在我看来,将数据保存为 png 是一种非常不寻常的情况。它阻止用户共享信息。有选项可以将摘要导出到 csv 和 latex。如果您手动执行此操作,我建议导出到 csv 并复制粘贴为图像。或者保存为 txt 甚至截图。
供参考:
或者