프로그래밍

[R] R을 이용한 로지스틱회귀분석

RainIron 2021. 5. 24. 01:51
반응형

1. 로지스틱 회귀분석의 개념

1) 로지스틱 회귀분석

- 정의: 분석하고자 하는 대상들이 두 집단 혹은 그 이상의 집단으로 나누어진 경우, 개별 관측치들이 어느 집단으로 분류될 수 있는가를 판단하는 분석 방법

분석방법 종속변수(y) 독립변수(x)
회귀분석 연속형 자료 범주형 자료
연속형 자료
로지스틱 회귀분석 범주형 자료
* 범주형(질적) 자료(이산형 변수): 명목, 서열 척도
* 연속형 자료(양적 변수): 등간, 비율 척도

 

- 로지스틱 회귀분석은 종속변수에 범주형 데이터가 사용됨 -> 일종의 분류 기법으로 볼 수 있음(분석 결과, 데이터가 특정 분류로 나뉘기 때문)

 

2) 종류(종속변수의 범주에 따른 구분)

분석방법 종속변수의 개수
이항형 로지스틱 회귀 2개 성공, 실패
다항형 로지스틱 회귀 3개 이상 맑음, 흐림, 비

 

  * 이항형 로지스틱 회귀분석: 2개의 종속변수 카테고리는 0과 1로 표현됨

  예: 정치에 대한 관심도가 선거 참여에 미치는 영향에 대한 분석

       # 정치에 대한 관심도(독립변수): 연속형

       # 선거 참여(종속변수): 범주형(1: 참여, 0: 불참)

 

3) 로지스틱 회귀 모형: 독립변수가 [-∞, ∞]의 어느 숫자이든 상관 없이, 종속변수 또는 결과 값이 항상 범위 [0, 1] 사이에 있도록 하는 모형 => 오즈비를 로짓 변환함으로써 얻어 짐

 

계산식: g(x) = e^x / (1 + e^x)

  * 오즈(Odds): 오즈가 클수록 데이터가 해당 집단에 속할 확률이 높음(p/(1-p))

    (p: 데이터 각각이 어떤 집단에 속할 확률, 1-p: 해당 집단에 속하지 않을 확률)

  * 로짓 변환: 오즈에 log를 취하는 것(입력값(독립변수)의 범위가 [-∞, ∞] 때, 출력값(종속변수)의 범위를 [0, 1]로 변환시켜 줌

 

4) 우도비 검정

- 정의: 최대 우도법을 사용한 검정 방법

         회귀분석의 최소제곱법과 같이 회귀계수의 유의성(=모형의 적합도)을 검정하는데 사용되는 방법

         두 개의 회귀 모형의 비를 계산해서, 두 모형의 우도가 유의한 차이를 보이는지 비교하는 검정 방법

회귀식 추정 방법
선형 회귀분석 최소제곱법
로지스틱 회귀분석 최대우도법

- 확률: 모수로부터 특정 사건이 발생한 정도

- 우도: 현상에 대해 추출될 가능성이 가장 높은 모수

- 최대우도법: 우도가 가장 높은(주어진 독립변수들로부터 종속변수를 가장 잘 예측하는) 회귀식을 추정하는 방법

 

2. 로지스틱 회귀분석의 예시와 활용

1) 로지스틱 회귀분석 4단계

  - 가설 설정

  - 변수 범주화: 0과 1로 이진값 주기

  - 모형 적합도 확인: x^2 우도비 검정

  - 로지스틱 가설검정: 승산비(Odds), 유의확률

 

2) 로지스틱 회귀분석의 사용

- 로지스틱 회귀분석은 독립변수와 이진값(0, 1) 형태의 종속변수로 구성됨

- 목적: 독립변수와 종속변수의 관계를 찾음으로써, 새로운 독립변수의 집합이 주어졌을 때, 종속변수의 값을 예측할 수 있음

- 어떤 설명변수가 연구 결과에 영향을 미치는지 파악

- 특정 설명 변수값을 가진 경우, 연구 결과가 나타나게 될 확률 계산

- 독립변수들을 성격에 따라 특정 집단들로 분류

- 로지스틱 회귀 계수를 이용한 특정 설명(독립)변수의 승률비(odds) 계산

  선형회귀분석 로지스틱 회귀분석
목적 연속형 결과 변수값 예측 비연속형 결과범주 예측
추정 최소제곱법 최대 우도법
계수 유의성 검증 z 또는 t 검증 x^2 검증
변수 추가 기준과 검증 R^2 변화량, F 검증 -2Ln 변화량 검증
모형 설명 비율 검증 F 검증 x^2 검증

 

3) 사례

- 운전면허필기 공부시간, 도로주행 시간, 도로주행 비용(독립변수)운전면허시험 합격 여부(종속변수)에 영향을 미치는가?

- 유권자의 연령, 성별, 거주지역, 학력(독립변수)투표 여부(종속변수)에 영향을 미치는가?

- 흡연 유무, 주량, 키, 비만 정도(독립변수)가 특정한 폐암 발병 여부(종속변수)에 영향을 미치는가?

 

- 모형적합도 검정

  ... 자유도 유의확률 Exp(B)
x ... n-1 종속변수에 유의한 영향을 미치는지 - 계수 로지스틱 회귀계수 B를 지수로 변환시킨 값
- 1 증가할 수록, 종속변수 확률이 Exp(B) 만큼 증가

 

3. R을 이용한 로지스틱 회귀분석

1) 데이터 입력(0=반응 없음, 1=반응 있음)

# 데이터를 입력
dose <- c(1, 1, 2, 2, 3, 3)
response <- c(0, 1, 0, 1, 0, 1)
count <- c(7, 3, 5, 5, 2, 8)
toxic <- data.frame(dose, response, count)
toxic

2) 'glm' 함수를 이용하여 회귀분석을 실시

* glm(종속변수~독립변수, weights, family, data)

- weights: 가중치

- family: 일반화 선형 모형에서 종속 변수가 어떤 분포를 따르고 있는지. 로지스틱 회귀분석에서 종속변수는 이항 변수이기 때문에, binomial 사용

# 'glm' 함수를 이용하여 회귀분석 실시
out = glm(response~dose, weights=count, family = binomial, data = toxic)
summary(out)

dose는 0.05하에서 유의하다.

-> dose의 로지스틱 회귀계수 = 1.10, Exp(B) = exp(1.1) = 3.01

-> dose가 1 증가하면 반응성은 3.01배 증가

-> 유의확률: 0.03이므로 반응에 대해 유의성이 있다.

 

3) 모형에 대한 그래프를 그려, 시각적으로 분포 확인

* plot(종속변수~독립변수, data, type, main(title)): 그래프를 제외한 틀 제작

* curve(data): 그래프 출력

# 모형에 대한 그래프를 그려, 시각적으로 분포를 확인해 봄
plot(response~dose, data=toxic, type='n', main = 'Predicted Probability of Response')

curve(predict(out, data.frame(dose=x), type='resp'), add = TRUE)

 

반응형

'프로그래밍' 카테고리의 다른 글

[R] R을 이용한 군집분석  (0) 2021.05.29
[R] R을 이용한 예측분석  (0) 2021.05.29
[R] R을 이용한 주성분분석  (0) 2021.05.23
[R] R을 이용한 분산분석  (0) 2021.05.23
[R] R을 이용한 회귀분석  (0) 2021.05.17