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명의 개인에 대한 다음 정보가 포함되어 있습니다.
- 기본값: 개인이 채무 불이행을 했는지 여부를 나타냅니다.
- 학생: 개인이 학생인지 여부를 나타냅니다.
- 잔액: 개인이 보유하고 있는 평균 잔액입니다.
- 소득: 개인의 소득.
우리는 학생 상태, 은행 잔고, 소득을 사용하여 특정 개인의 채무 불이행 가능성을 예측하는 로지스틱 회귀 모델을 구축할 것입니다.
R이 데이터세트에 로지스틱 회귀 모델을 맞추도록 glm 함수를 사용하고 family=’binomial’을 지정할 수 있습니다.
#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달러 증가할 때마다 개인이 대출을 불이행할 확률이 1.0057 배 증가한다는 것을 의미합니다. 이는 학생 상태와 소득이 일정하게 유지된다는 가정하에 이루어집니다 .
다른 예측 변수에 대한 승산비도 같은 방식으로 해석할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 로지스틱 회귀 모델과 함께 Predict()를 사용하는 방법
R의 로지스틱 회귀 출력에서 Pr(>|z|)를 해석하는 방법
R에서 로지스틱 회귀 곡선을 그리는 방법