逻辑回归得到 sm.Logit 值(python,statsmodels)
logistic regression get the sm.Logit values (python, statsmodels)
我正在使用 sm.Logit 在 python 中进行逻辑回归,然后得到模型、p 值等是函数 .summary,我想存储 .summary 函数的结果,到目前为止我有:
- .params.values : 给出贝塔值
- .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()
输出中获取实际的子字符串,还是单独获取它打印的所有不同数据片段。
如果您想要单独使用它们,我建议您在交互式编程会话中使用 Tab 补全来拟合您的模型,例如使用 jupyter,这样您就可以在 [=17= 上看到各种自由度选项和其他可用数据] 对象。
如果您只是在寻找字符串,这很简单:
'\n'.join(str(model_fit.summary()).split('\n')[1:10])
在您的代码中写下这行代码 print(dir(model_fit))
它会显示您可以从 model_fit
答案中访问的所有函数和方法。
我正在使用 sm.Logit 在 python 中进行逻辑回归,然后得到模型、p 值等是函数 .summary,我想存储 .summary 函数的结果,到目前为止我有:
- .params.values : 给出贝塔值
- .params : 给出变量的名称和 beta 值
- .conf_int() :给出置信区间
我仍然需要获取 std err、z 和 p 值
我也想知道有没有办法得到这个(.summary 函数的第一部分):
如果您使用像
这样的代码来计算您的模型model = sm.Logit(y_data, x_data)
model_fit = model.fit()
然后您可以直接使用 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()
输出中获取实际的子字符串,还是单独获取它打印的所有不同数据片段。
如果您想要单独使用它们,我建议您在交互式编程会话中使用 Tab 补全来拟合您的模型,例如使用 jupyter,这样您就可以在 [=17= 上看到各种自由度选项和其他可用数据] 对象。
如果您只是在寻找字符串,这很简单:
'\n'.join(str(model_fit.summary()).split('\n')[1:10])
在您的代码中写下这行代码 print(dir(model_fit))
它会显示您可以从 model_fit
答案中访问的所有函数和方法。