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에서 로지스틱 회귀 곡선을 그리는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다