首页 > 解决方案 > 逻辑回归得到 sm.Logit 值(python,statsmodels)

问题描述

我正在使用sm.Logit在 python 中进行逻辑回归,然后获取模型、p 值等是函数.summary,我想要存储.summary函数的结果,到目前为止我有:

我仍然需要得到std errzp 值

我也想知道有没有办法得到这个(.summary函数的第一部分):

在此处输入图像描述

标签: pythonpython-3.xmachine-learninglogistic-regressionstatsmodels

解决方案


如果您使用以下代码计算模型

model = sm.Logit(y_data, x_data)
model_fit = model.fit()

然后您可以使用 直接访问 p 值model_fit.pvalues

对于系数的标准误差,您可以调用

cov = model_fit.cov_params()
std_err = np.sqrt(np.diag(cov))

将标准误差计算为模型协方差矩阵估计的方差项(对角线项)的平方根。

z 值定义为每个系数除以其标准误差,因此您可以将其计算为

z_values = model_fit.params / std_err

使用std_err上面一行中定义的。

关于您的最后一个问题,尚不清楚您是在询问如何从summary()输出中获取实际的子字符串,还是单独获取它打印的所有不同数据。

如果您想要单独使用它们,我建议将您的模型安装在具有选项卡完成的交互式编程会话中,例如使用 jupyter,以便您可以查看对象上可用的各种自由度选项和其他数据model_fit

如果你只是在寻找字符串,它很简单:

'\n'.join(str(model_fit.summary()).split('\n')[1:10])

推荐阅读