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 中绘制逻辑回归曲线