A:如何计算逻辑回归模型中的优势比


当响应变量是二元时,逻辑回归是我们可以用来拟合回归模型的方法。

当您在 R 中拟合逻辑回归模型时,模型摘要中的系数表示与每个预测变量增加 1 个单位相关的响应变量对数几率的平均变化。

然而,我们经常想计算模型中预测变量的优势比

要快速计算模型中每个预测变量的优势比,您可以使用以下语法:

 exp(coef(model))

您还可以使用以下语法计算每个优势比的 95% 置信区间:

 exp(cbind(Odds_Ratio = coef(model), confint(model)))

以下示例演示如何使用此语法来计算和解释 R 中逻辑回归模型的优势比。

示例:计算 R 中逻辑回归模型中的优势比

对于此示例,我们将使用 R 中ISLR包中的默认数据集。

我们可以使用以下代码来加载并显示数据集的摘要:

 library (ISLR)

#view first five rows of Default dataset
head(Default)

  default student balance income
1 No No 729.5265 44361.625
2 No Yes 817.1804 12106.135
3 No No 1073.5492 31767.139
4 No No 529.2506 35704.494
5 No No 785.6559 38463.496
6 No Yes 919.5885 7491.559

该数据集包含 10,000 人的以下信息:

  • 违约:表明个人是否违约。
  • 学生:表明个人是否是学生。
  • 余额:个人持有的平均余额。
  • 收入:个人的收入。

我们将使用学生身份、银行余额和收入构建逻辑回归模型,预测给定个人违约的概率。

我们可以使用glm函数并指定 family=’binomial’ 以便 R 将逻辑回归模型拟合到数据集:

 #fit logistic regression model
model <- glm(default~student+balance+income, family=' binomial ', data=Default)

#disable scientific notation for model summary
options(scipen=999)

#view model summary
summary(model)

Call:
glm(formula = default ~ student + balance + income, family = "binomial", 
    data = train)

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-2.5586 -0.1353 -0.0519 -0.0177 3.7973  

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept) -11.478101194 0.623409555 -18.412 <0.0000000000000002 ***
studentYes -0.493292438 0.285735949 -1.726 0.0843 .  
balance 0.005988059 0.000293765 20.384 <0.0000000000000002 ***
income 0.000007857 0.000009965 0.788 0.4304    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2021.1 on 6963 degrees of freedom
Residual deviance: 1065.4 on 6960 degrees of freedom
AIC: 1073.4

Number of Fisher Scoring iterations: 8

结果中的系数表示违约对数赔率的平均变化。

例如,余额增加 1 个单位与违约对数概率平均增加0.005988相关。

为了计算每个预测变量的优势比,我们可以使用以下语法:

 #calculate odds ratio for each predictor variable
exp(coef(model))

  (Intercept) studentYes balance income 
0.00001903854 0.52373166965 1.00575299051 1.00000303345 

我们还可以计算每个优势比以及每个优势比的 95% 置信区间:

 #calculate odds ratio and 95% confidence interval for each predictor variable 
exp(cbind(Odds_Ratio = coef(model), confint(model)))

               Odds_Ratio 2.5% 97.5%
(Intercept) 0.00001903854 0.000007074481 0.0000487808
studentYes 0.52373166965 0.329882707270 0.8334223982
balance 1.00575299051 1.005308940686 1.0062238757
income 1.00000303345 0.999986952969 1.0000191246

每个系数的优势比代表个体默认概率的平均增加(假设所有其他预测变量保持不变)。

例如,预测变量的平衡的优势比为1.0057

这意味着,假设学生身份和收入保持不变,个人余额中每增加一美元,个人拖欠贷款的几率就会增加1.0057倍。

我们可以用同样的方式解释其他预测变量的优势比。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中将 Predict() 与逻辑回归模型结合使用
如何解释 R 中逻辑回归输出中的 Pr(>|z|)
如何在 R 中绘制逻辑回归曲线

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注