01 | 로지스틱 회귀 모델
로지스틱 회귀 모델Logistic Regression은 데이터 X의 분류가 Y일 확률을 p, N일 확률을 1-p라 할 때 다음과 같은 선형 모델을 가정한다.
log(p / (1-p)) = β0 + β1X (식 10-1)
이 식에 대한 가장 단순한 설명은 다음과 같다.[1]
β0 + β1X는 (-∞, ∞) 값을 가질 수 있다. 그러나 우리가 예측하고자 하는 p는 분류가 Y일 확률이므로 (0, 1) 값을 가진다. 따라서 이 둘을 맞춰줄 필요가 있다. 이를 위한 첫 번째 단계는 p를 예측하는 것이 아니라 비(오즈odds)를 예측하도록 하는 것이다.
p / (1-p) = β0 + β1X
이 식에서 좌변의 값은 (0, ∞) 값만 가질 수 있다. 반면 우변은 (-∞, ∞)를 가진다. 좌변이 (-∞, ∞) 값을 갖게 하기 위해 log 함수를 취한다. 그 결과 얻어진 log(p / (1-p))를 로짓 함수logit function라고 하고, 이를 이용한 결과는 식 9-1이 된다. 선형 모델에 대한 본격적인 설명은 참고자료 [2]를 보기 바란다.
로지스틱 회귀 모델은 glm( )함수를 사용해 수행한다.
glm : 일반화 선형 모델을 생성한다. |
glm( formula, # 모델 포뮬러 data, # 포뮬러를 적용할 데이터 family, # 오차 분포와 링크(link) 함수. 로지스틱 회귀 모델의 경우 "binomial"을 지정한다. ) 반환 값은 일반화 선형 모델인 glm 객체다. |
predict.glm : 일반화 선형 모델을 사용한 예측을 수행한다. |
predict.glm( object, # glm 객체 newdata, # 예측을 수행할 대상 데이터 # 예측 결과의 유형을 지정한다. 기본값은 "link"다. # - link: 선형 독립 변수들의 연산 결과의 크기로 값을 반환한다. 이 값은 로지스틱 회귀 모델의 # 경우 로그 오즈 log(p / (1-p))다. # - response: 반응 변수(response variable)의 크기로 값을 반환하며 로지스틱 회귀 모델의 경우 # p가 이에 해당한다. # - terms: 행렬에 모델 포뮬러의 각 변수에 대한 적합된 값을 선형 예측 변수의 크기로 반환한다. type=c("link", "response", "terms") ) 반환 값은 모델을 사용한 예측 결과다. |