본문 바로가기
🧠 공부/통계학

(2)로지스틱 회귀분석(Logistic regression)이 가지고 있는 이야기: MLE(Maximum Likelihood Estimation)& GLM & 손실함수

by 소리331 2024. 4. 13.
반응형

이번 글에서는...

  • 로지스틱 모형에서 회귀계수를 구하는 방법
  • GLM과 링크함수
  • 최대우도법 
  • 로지스틱 회귀모형의 손실함수

왜 최대우도추정법(MLE)로 회귀 계수를 구하는 걸까?

선형 회귀분석은 최소제곱법을 통해 해를 추정해 내지만, 로지스틱은 최대우도법을 통해 회귀 계수를 구한다. 어차피 해가 무한대인 식을 시그모이드 함수에 넣어 0~1 범위로 값을 변환하는데 왜 선형 회귀분석과 다르게 MLE(Maximum Likelihood Estimation, 최대 우도추정)을 사용해서 추정하는걸까?

앞선 글에서 로지스틱 회귀분석의 Y 값은 1에 해당할 확률을 의미한다고 적었는데, 이는 응답이 1인 로그 오즈비의 추정치를 말한다이렇게 한번 보면 어떨까?

  • 일반 선형 회귀방정식: 결과값(y)을 관찰함
  • 로지스틱 회귀모형: 결과값(확률 p)를 관찰하여 이를 바탕으로 1 에 포함하는지 여부를 판단함.

그러니까 값과의 오차가 최소화되는 것이 중요한 일반 선형 회귀 방정식과 달리, 로지스틱 회귀모형의 방정식은 결과 값이 1에 포함한다면 이에 대한 확률을 최대한 높게 추정하는 것이 중요한 것이다라고 표현해보면 어떨까? 이렇게 표현한다면 MLE를 사용하는 이유가 이해가 된다.   

GLM이 뭔지 간단히 알아보고 MLE와 이를 통한 회귀계수 유도를 통해 가보자! 

GLM (Generalized Linear Model) 이란?

로지스틱 회귀분석은 일반화선형모형의 일종이다. 일반화 선형모형이 뭘까? GLM은 전통적인 선형회귀모형을 확장한 모형이다. 구성 요소는 아래와 같다.

  • 확률분포(Probability Distribution) 예를 들어 이항분포, 포아송분포, 정규분포 등
  • 선형예측자(Linear Predictor) 설명변수들의 선형결합 구성. (β0 + β1X1 + β2X2 + ...)
  • 링크함수(Link Function) 선형예측자와 종속변수의 기대값을 연결하는 함수
      • g(E(Y)) = β0 + β1X1 + ... + βkXk와 같은 형태이다. 로지스틱에서 회귀분석에서는 로짓 함수가 되는 것이다
    지난번 글에서 나왔던 이미지!

GLM은 종속변수는 지수분포를 따른다는 가정이 있다! 

최대우도법(Maximum Likelihood Estimation)

처음 통계를 접할 때 확률(Probability)과 우도(Likelihood, 가능도)의 개념이 엄청 헷갈렸었는데, 여기서는 간단히 우도는 " 모수의 값이 특정 값일 가능성을 나타내는 함수" 정도로 기억해보자! 이 말을 최대우도법이라는 용어에 대입해서 해석해보면 아래와 같다 

  • 우도 = " 모수의 값이 특정 값일 가능성을 나타내는 함수"
    • 다른 말로 "데이터가 해당 분포에서 나왔을 가능성" 으로도 해석할 수 있다.  ( 문장을 그냥 역으로 바꿔본 것!)
  • 최대우도법 = "모수 값이 특정값일 확률을 최대화 하는 방법"

이렇게 표현해볼 수 있다, 이제 더욱더 왜 최대우도법을 쓰는지가 이해된다! 

이제 최대우도법을 이용해 로지스틱 회귀계수를 추정하는 과정을 적어보려고 한다. 요약하면 로지스틱 회귀분석에서 최대우도법을 통한 회귀계수 추정은 우도함수를 로그우도함수로 변환하고, 이 로그우도함수를 최대화하는 해를 수치적으로 찾는 반복 과정을 거친다!

이 함수는 가능도 함수이다! 특정 데이터 x가 어떤 분포에서 나왔는지 추정하기 위한 과정으로, 서로 다른 여러개의 확률 분포에서 p(x)값을 구하여 곱한 것이다. 때문에 독립사건을 가정하며, 곱하는 것이다. 특정 데이터 x가 여러 확률 분포에서 나왔을 수 있기 때문에 가능도를 결합확률 밀도로 구하며, 독립을 가정하는 것이다! 

P(x_k) 값은 0과 1 사이의 값이다. 이를 여러번 곱하게 되면 0에 엄청엄청 가까워질 것이다! 때문에 편리한 계산을 위해 보통은 자연로그를 이용하여 log-likelihood function을 구한다. 함수의 최댓값, 최소값을 찾을 때는 미분을 취하면 된다. 우리는 가능도가 최대가 되는 모수 세타를 찾을 것이기 때문에, 세타를 기준으로 미분을 취해준다. 

최대 가능도를 구하기 위해 가능도 함수를 파라미터 세타 기준으로 편미분함 .

 

손실함수  Loss function

이 식을 보면 y=1, p=1일 때 손실함수값은 0, (1-p) 가 0에 가까워지면 -∞이 된다. 틀릴 수록 에러 값을 크게 잡는 것이다. 우리는 손실함수가 최대가 되도록 해야한다. 분류 함수로 y는 0 또는 1의 값만 가지므로, 이는 아래와 같이 정리할 수 있다. 

로지스틱 회귀분석의 손실함수, latex 그릴때 실수로 괄호 빼먹어서 한참 돌아왔다 ㅠ 어쩐지 이상한 부호가 튀어나왔더라...

이 손실함수를 최소화 시키는 파라미터 세타를 구해야하므로, 최대가능도 함수에 이 손실함수를 대입하면 된다! 

 

분량 조절 실패로 python 실습은 다음글에서!

 

 

(1)로지스틱 회귀분석(Logistic regression)이 가지고 있는 이야기: Binary classification, 오즈비와 로짓변

(참고: 나 문과임) (이번글의 키워드: 오즈비, 확률, 일반회귀방정식!) 로지스틱 회귀분석이 풀고자 하는 문제 : 결과값 P를 통한 이진분류 Binary Classification 로지스틱 회귀식의 결과값은 확률 P이

great-woman-hoseung.tistory.com

 

 

(3)로지스틱 회귀분석(Logistic regression): 파이썬 실습(Python)

우리가 사용할 데이터 - kaggle 에 있는 Home Credit 2024 competition의 데이터를 사용한다. 데이터 호출까지 코드 스니펫은 해당 링크를 참고했습니다! 접기를 확대해주세요! 더보기 import polars as pl import

great-woman-hoseung.tistory.com

 

반응형

댓글