본문 바로가기
11. 회귀분석/로지스틱 회귀분석

R 로지스틱 회귀분석 하는 법 (nodal 데이터 예시)

by makhimh 2023. 1. 8.
반응형

로지스틱 회귀분석은 독립변수가 여러개이고 종속변수가 한개인 경우 사용합니다. 독립변수는 연속형, 범주형 둘 다 가능하고 종속변수는 범주형이어야 합니다. 

 

1. 데이터 살펴보기

로지스틱 회귀분석에 사용할 데이터는 boot 패키지의 nodal 데이터입니다. 아래와 같이 불러옵니다. 

 

library(boot)

dt=nodal

 

> head(dt)
  m r aged stage grade xray acid
1 1 1    0     1     1    1    1
2 1 1    0     1     1    1    1
3 1 1    0     1     1    1    1
4 1 1    0     1     1    1    1
5 1 1    0     1     1    1    1
6 1 0    0     1     1    1    1

 

변수 설명은 아래와 같습니다. 

 

r : 전립선암 양성 여부

aged : 연령 (60 이하는 0, 초과는 1)

stage : 질병단계 (1이 더 심각)

grade :종양의 진행 정도 (1이 더 심각)

xray : x선 결과 (1이 더 심각)

acid : 혈청의 인산염값

 

 

2. 로지스틱 회귀분석

로지스틱 회귀분석에는 glm 함수가 사용됩니다. 반드시 family 를 binomial 로 설정해주어야 합니다. 

 

res=glm(r~aged+stage+grade+xray+acid,data=dt,family='binomial')
summary(res)

 

> summary(res)

Call:
glm(formula = r ~ aged + stage + grade + xray + acid, family = "binomial", 
    data = dt)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3317  -0.6653  -0.2999   0.6386   2.1502  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)  -3.0794     0.9868  -3.121   0.0018 **
aged         -0.2917     0.7540  -0.387   0.6988   
stage         1.3729     0.7838   1.752   0.0799 . 
grade         0.8720     0.8156   1.069   0.2850   
xray          1.8008     0.8104   2.222   0.0263 * 
acid          1.6839     0.7915   2.128   0.0334 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 70.252  on 52  degrees of freedom
Residual deviance: 47.611  on 47  degrees of freedom
AIC: 59.611

Number of Fisher Scoring iterations: 5

 

Coefficients 부분에 있는 t검정은 각 변수의 계수가 0인지 아닌지를 판별합니다. p값이 0.05보다 크다는 것은 계수가 0이라는 것이고 해당 변수는 제외하고 로지스틱회귀분석을 다시 해줍니다. age와 grade를 제거합니다. stage 는 일단 한번 더 넣어줍니다. 

 

res=glm(r~stage+xray+acid,data=dt,family='binomial')
summary(res)

 

> summary(res)

Call:
glm(formula = r ~ stage + xray + acid, family = "binomial", data = dt)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1231  -0.6620  -0.3039   0.4710   2.4892  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -3.0518     0.8420  -3.624  0.00029 ***
stage         1.6453     0.7297   2.255  0.02414 *  
xray          1.9116     0.7771   2.460  0.01390 *  
acid          1.6378     0.7539   2.172  0.02983 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 70.252  on 52  degrees of freedom
Residual deviance: 49.180  on 49  degrees of freedom
AIC: 57.18

Number of Fisher Scoring iterations: 5

 

모델은 수식으로 표현하면 아래와 같습니다. 

 

$f(X)=\frac{1}{1+e^{-\left ( -3.05+1.65stage+1.91xray+1.63acid \right )}}$

반응형

댓글