我正在使用 sm.Logit 在 python 中进行逻辑回归,然后获取模型、p 值等是函数 .summary,我想要t 存储 .summary 函数的结果,到目前为止我有:
- .params.values : 给出 beta 值
- .params : 给出变量名和beta值
- .conf_int() : 给出置信区间
我仍然需要获取std err、z 和p 值
我也想知道有没有办法得到这个(.summary 函数的第一部分):
最佳答案
如果您使用如下代码计算您的模型
model = sm.Logit(y_data, x_data)
model_fit = model.fit()
然后您可以直接使用 model_fit.pvalues
访问 p 值.
对于系数的标准误差,您可以调用
cov = model_fit.cov_params()
std_err = np.sqrt(np.diag(cov))
计算标准误差作为模型协方差矩阵估计的方差项(对角线项)的平方根。
z 值定义为每个系数除以其标准误差,因此您可以将其计算为
z_values = model_fit.params / std_err
使用 std_err
在上面的行中定义。
关于你的最后一个问题,不清楚你是否在询问如何从 summary()
中获取实际的子字符串。输出,或单独获取它打印的所有不同数据片段。
如果您想要单独使用它们,我建议您在交互式编程 session 中使用 Tab 键补全来拟合您的模型,例如使用 jupyter,这样您就可以在 model_fit
上看到各种自由度选项和其他可用数据。对象。
如果您只是在寻找字符串,那么很简单:
'\n'.join(str(model_fit.summary()).split('\n')[1:10])
关于python - 逻辑回归得到 sm.Logit 值(python,statsmodels),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50350816/