逻辑回归获取 sm.Logit 值(python,statsmodels)

Joe*_*Joe 2 python machine-learning python-3.x statsmodels logistic-regression

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

  • .params.values:给出 beta 值
  • .params:给出变量的名称和 beta 值
  • .conf_int():给出置信区间

我仍然需要获取std errzp 值

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

在此输入图像描述

ely*_*ely 5

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

model = sm.Logit(y_data, x_data)
model_fit = model.fit()
Run Code Online (Sandbox Code Playgroud)

那么您可以直接使用 访问 p 值model_fit.pvalues

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

cov = model_fit.cov_params()
std_err = np.sqrt(np.diag(cov))
Run Code Online (Sandbox Code Playgroud)

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

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

z_values = model_fit.params / std_err
Run Code Online (Sandbox Code Playgroud)

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

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

如果您需要单独使用它们,我建议您将模型放入具有制表符完成功能的交互式编程会话中,例如使用 jupyter,以便您可以看到对象上可用的各种自由度选项和其他数据model_fit

如果您只是寻找字符串,那么很简单:

'\n'.join(str(model_fit.summary()).split('\n')[1:10])
Run Code Online (Sandbox Code Playgroud)