working_helen

[R로 하는 통계분석] Linear Regression / GLM 본문

교내 수업/R 통계분석

[R로 하는 통계분석] Linear Regression / GLM

HaeWon_Seo 2024. 11. 3. 22:50

1. Generalized Linear Model

(1) Logistic Regression

(2) Poisson Regression

(3) Negative Binomial Regression

(4) Zero-inflated Poisson Regression 

 

2. R 코드로 구현하기 

 


1. Generalized Linear Model (GLM)

Linear regression model은 선형성, 정규성, 등분산성, 독립성을 가정

  • 반응변수 Y가 정규분포를 따른다
  • 설명변수 X와 Y가 선형 관계에 있다

출처 : A Water Level Forecast of Pattani River in the Southern of Thailand by Deep Learning - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Linear-regression-equation_fig1_373123252 [accessed 2 Nov 2024]

 

 

 

GLM

= Linear regression model의 일반화
= link function을 사용함으로써 더 다양한 종류의 분포를 따르는 Y를 X들 간 선형결합으로 표현할 수 있는 모델 

  • Y가 정규분포를 포함하는 지수족(exponential family) 분포를 따른다
  • 설명변수 X와 E(Y)의 함수 선형 관계에 있다

  • β = (β0, β1​, β2 … βp)'​ : parameters, p개의 파라미터, px1
  • X = (x1, x2 ... xn)' : 설명변수 행렬, p차원 데이터 n개, nxp
  • Xβ : linear predictor 
  • g : link function

 

 link function : E(Y)를 설명변수들의 선형결합으로 표현할 수 있도록 변환하는 역할

주어진 데이터의 분포를 바탕으로, Y가 지수족 내 어떤 확률분포를 따를지 가정하고, 각 확률분포에 적합한 link fuction을 사용해 regression을 수행

Y의 분포 regression 종류 link function 
N(μ, sigma) Linear Regression E(Y) = μ
f(μ) = μ 
identity function
Bern(Θ) Logistic Regression E(Y) = P(Y=1) = Θ
f(Θ) = logit(Θ) = log(Θ/(1- Θ)) = Xβ
logit function
Poisson(Λ) Poisson Regression E(Y) = Λ
f(Λ) = log(Λ) = Xβ
log function
Negative Binomial(r, p) Negative Binomial Regression E(Y) = rp/(1-p) = Λ
f(Λ) = log(Λ) = 
log function
Bern(Θ)
+ Poisson(Λ)
Zero-inflated Possion Regression logit function + log function

 

 

 

 

 

(1) Logistic Regression

Y ~ Bern(Θ)
link function = logit function

- E(Y) = P(Y=1) = Θ
  f(Θ) = logit(Θ) = log(Θ/(1- Θ)) = 

- β = logt(평균)의 변화량 = log(오즈비)의 변화량

- βj > 0 : xj가 증가하면 log(오즈비)가 증가한다 = 오즈비가 증가한다 = P(Y=1)이 증가한다 = Y와 xj는 양의 관계에 있다.

 

 

 

 

(2) Poisson Regression

Y ~ Poisson(Λ),  E(Y) = Λ
link function = log function

- E(Y) = Λ
  f(Λ) = log(Λ) = 

- β = log(Y 평균)의 변화량

- βj > 0 : xj가 증가하면 log(평균)이 증가한다 = 평균이 증가한다 = Y와 xj는 양의 관계에 있다.

 

 

 

 

(3) Negative Binomial Regression

Y ~ NB(r, p),  rp/(1-p) = Λ
link function = log function

- E(Y) = rp/(1-p) = Λ
  f(Λ) = log(Λ) = 

- β = log(Y 평균)의 변화량

- βj > 0 : xj가 증가하면 log(평균)이 증가한다 = 평균이 증가한다 = Y와 xj는 양의 관계에 있다.

 

 

✏️  Poisson Regression과 Negative Binomial Regression의 차이점

- Poisson 분포에서는 1개의 파라미터 Λ만 사용 → E(Y) = Λ이고 Var(Y) = Λ임을 가정

- 하지만 실제 데이터에서는 평균에 비해 분산이 큰 경우가 많고, 이때 Poisson 분포를 가정하게 되면 데이터의 분산을 과소평가하게 되는 문제가 발생 = overdispersion 문제 

- 이와 달리 NB 분포는 2개의 파라미터를 사용함으로써 평균과 분산을 다른 값으로 둘 수 있기 때문에 동일한 link function을 사용하지만 데이터의 분산이 평균에 따라 증가할 수 있도록 모델링할 수 있음

 Poisson 분포의 overdispersion 문제가 의심되는 경우 NB 분포를 사용하여 해소할 수 있다! 

 

 

 

 

(4) Zero-inflated Poisson Regression 

Y ~ Bern (Θ) + Y ~ Poisson(Λ)
link function =  logit function + log function

 

- Y의 분포가 0을 제외한 구간에서는 Poisson 분포를 따르지만, 0에 해당하는 빈도 수가 지나치게 많은 경우에 사용

- 추가적인 확률변수 z : z=1인 데이터에선 모두 Y=0

- z Θ의 확률로 0가 되는 경우, 모든 Y값이 0이 되고

  z가 1-Θ의 확률로 1이 되는 경우, Y값은 Poisson 분포를 따른다고 가정

 

- P(z=1) = Θ

  f(Θ) = logit(Θ) = log(Θ/(1- Θ)) = Xr

- rj > 0 : xj가 증가하면 P(z=1)이 증가한다 = 0에서 Y의 빈도가 증가한다

 

- E(Y) = Λ when z≠1

  f(Λ) = log(Λ

βj > 0 : xj가 증가하면 Y 평균이 증가한다 = Y와 xj는 양의 관계에 있다.

 

 

 

 

2. R 코드로 구현하기

simple linear regression

 

simple linear regression with interaction term

 

 

multiple linear regression

 

polynomial regression

 

 

 

 

logistic regression

 

 

poisson regression

 

 

NB regression

 

 

zero-inflated poisson regression

 

 

 

 

 

 

 

 

Reference

https://kjhov195.github.io/2019-10-30-generalized_linear_model/
https://be-favorite.tistory.com/52
https://zephyrus1111.tistory.com/26