더북(TheBook)

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( )함수를 사용해 수행한다.

표 10-1 로지스틱 회귀 모델

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")
)

반환 값은 모델을 사용한 예측 결과다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.