Generalize Linear Model – GLM

GLM(Generalized Linear Model)

설명변수가 여러개의 범주형변수 혹은 연속형 변수로 되어 있을 때 카이테스트 등의 검정 을 할 수 없다. 이러한 이유로 일반적인 모형- GLM 으로 만들어서 추정 및 검정을 해야한다.

GLM 구성요소

구성요소는 3가지로 random component, systematic component, link function의 구성요소로 되어 있다.

random component 는 반응변수 Y를 식별하는 것으로 Y에 대한 확률 분포를 선택한다. systematic component 는 X 설명변수의 선형결합을 나타낸다. Link function는 반응 변수 Y 에 대한 적절한 변환을 한다. Y는 정규분포, 이항분포, 푸아송 분포 등을 가정할 수 있고, 이의 대한 분포에 따라 적절한 연결함수를 취한다.

링크함수 종류 ( GLM link functoin)

반응 변수 Y가 정규분포를 따르면 항등함수를 사용하면 되고, Ordinary Regression 이라 한다.

반응변수 Y가 푸아송 분포를 따르면 $0 \le \mu \le \infty$ 이러한 조건이 되어 log함수를 link function으로 사용하여 $-\infty \le \mu \le \infty$ 가 되고 Poisson Regression 이 된다.

반응 변수 Y가 이항분포일 때 $0 \le \mu \le 1$ 으로 logit함수를 link function 으로 사용하여 $-\infty \le \mu \le \infty$ 로 만들어 주고 이러한 함수를 Logit Regression 이라고 한다.

링크 함수의 조건

링크 함수의 조건으로는 monoton 해야하고 differentiable 해야 한다.  변한을 하더라도 함수가 증가하다 감소 하거나, 감소하거나 증가하는 형태이면 안된다. $\mu$ 가 증가하는데 $\log(\mu)$ 도 항상 증가해야 한다. 증가하다가 감소하거나 감소하다가 증가하는 형태면 안된다. differentiable 형태로 항상 미분가능해야 한다. MLE 로 추정을 하는데 미분가능해야 추정이 가능해 진다.

1. Binary Data 인 경우 GLM

반응변수가 Binary Data인 경우는 “병이 있다 없다”,  “대출을 해준다 못해준다”,  “카드를 발급해준다 못해준다” 등 형태의 데이터 이다.

Binary Data 의 확률은 $P(Y=1) = \pi, P(Y=0) = (1-\pi)$ 로 Bernoulli($\pi$), B($\pi$) 로 정의 할 수 있다

기댓값 $E(Y) = \pi,   (E(Y) = \sum y \cdot P(Y=y)=0 \times (1-\pi) + 1 \times \pi = \pi)$

분산 $Var (Y) = \pi(1-\pi)$ 으로 정리할 수 있다.

링크함수

Binary data의 링크 함수는 Linear probability model, Logistic regression model, Probit regression model 같은 3가지의 링크함수를 사용할 수 있다.

Linear probability model 은 $pi(x) = \beta_{0} + \beta_{1}x$ 로 나타낼 수 있다.

Logisitc regress model은 $log(\dfrac{\pi(x)}{1-\pi(x)}) = \beta_{0} + \beta_{1}$ or $\pi(x) = \dfrac{exp(\beta_{0} + \beta_{1}x)}{1 + exp(\beta_{0} + \beta_{1}x)}$ 로 나타내고,

Probit regression model 은 $\phi^{-1}(\pi(x)) = \beta_{0} + \beta_{1}x$ 로 나타낼 수 있다.

<예시 – 코골이가 심장병에 관련이 있는가?>

반응변수 Y는 심장병에 관련이 있다. 없다.라는 범주형 변수이다. 이러한 데이터를 Linear, Logit, Probit 으로 Link function을 사용할 수 있다. 3가지 Link function을 가지고 모델링을 하게 되면 각 설명 변수에 대한 추정값이 위와 같이 나오게 된다.

결과는 위와 같은 결과로 나오게 되었고, 코골이가 심하면 심장병에 영향을 줄 수 있다라는 결과를 도출할 수 있다.

2. Count Data 인 경우 GLM

Count Data는 “지난 1년간 교통사고로 사망한 인구의 숫자” 의 형태의 데이터 이다. 이때 반응변수 Y의 분포는 Poisson 분포를 따른다.

Poisson의 기댓값 과 분산은 $E(Y) = \mu, Var(Y) = \mu$ 와 같다.

링크함수

Link function $g(\mu) = log(\mu)$으로 Poisson regression model 을 사용한다.

$\mu(x) = exp(\beta_{0} + \beta_{1}x)$ 이다.

(예시 – 참암게의 부수체에 관한 연구)

반응변수 Y는 sa(부수체)로  0,1,2,3,4 로 count data 이다. Link function을 이용해여 모델링을 할 수 있고 log, identity 의 Link function을 사용할 수 있다. 설명변수 width에 따른 반응변수 sa의 모델에 대한 두 link function 결과는 아래와 같다.

즉 width가 증가하면 부수체도 증가하는것을 볼수 있다

(identity 함수일 때 생각을 해보면 만약 width의 크기가 작아지면 결과는 음수 값이 나올 수 있다.)

Overdispersion problem

Count Data의 예로 푸아송분포는 평균이랑 분산이랑 같다. 하지만 설명변수들은 다양한 값이 분포가 되어 분산이 평균보다 큰 현상이 나타나는 분제가 발생한다. 이러한 현상을 Overdispersion Problem 이라 한다.

width에 따른 부수체의 갯수를 보면

width를 범의로 정의 하였고, 23.25 보다 작은 갯수는 14이고 해당 sa 갯수도 14개 이다 평균은 1.0 이지만 분산은 평균보다 큰 2.77로 나온다.

$Var(Y) = \mu + D\mu^{2}, D=k^{-1}$

$\mu$ 를 추정했고 D를 추정했는데 D가 0으로 간다면 Var(Y)도 $\mu$ 의 근접으로 가고 Overdispersion problem 이 없다.

카운트 일때 Overdispersion problem이 없으면 푸아송 분포를  가정하여 사용하고, Overdispersion problem이 있으면 NB (Nagative Bernoulli)를 사용 하면 된다.

Y의 카운트 비교만 했을 때 생기는 문제점

예를 들어 서울에서 살인자의 숫자, 지방에서 살인자의 숫쟈. 만약 두 숫자가 같다고 해서 비교가 불가능하다. 이러한 이유로 전체 숫자를 비율로 나눠줘야 한다.

$sample \ rate = \dfrac{Y}{t} (t= index, Y=response \ count)$

$E(Y) = \mu$ 일때 $E(Y^\prime) = E(\dfrac{Y}{t}) = \dfrac{\mu}{t}$

$log(\mu) = \beta_{0} + \beta_{1}x + log(t) = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2}$ 가 되고,  $x_{2}$ = log(t), $b_{2}$ = 1 가 된다.

즉 $x_{2}$의 변수가 추가된 poisson regression 이 되고, log(t)를 offset variable 이라고 한다.

3. GLM 함수의 Inference(추정)

표본을 이용하여 모집단을 추정 한다.

모델을 설정을 하고 해당 모델에 대한 likelihood를 구한다.

MLE로 $\beta_{0},\beta_{1},…..,\beta_{p}$를 추정하고, Newton-Raphson, Fisher scoring 알고리즘을 사용한다.

LSE

$s = \sum_{i=1}^{n}(Y_{i} – (\beta_{0} + \beta_{1}x_{i} + … + \beta_{p}x_{p}))^{2}$ 의 값을 최소화 하는 $\beta_{0} …\beta_{p}$ 를 추정한다.

$\dfrac{\partial s}{\partial \beta} = 0$ 을 놓고 추정을 했다

$(X^\prime X)\hat{\beta} = X^\prime Y$

$\hat{\beta} = (X^\prime X)^{-1}X^\prime Y$

MLE

$f(y) = \dfrac{1}{\sigma\sqrt{2\pi}}e^{\dfrac{-(y – \mu)^{2}}{2\sigma^{2}}}$ 의 정규분포 확률 밀도 함수가 있을때 $\mu$와 $\sigma$ 을 알고 있을 때 y 값을 추정하였다. 이와 반대로 y값을 알고 있고 $\mu$와 $\sigma$의 likelihood 함수의 값을 최대화 하는 것이다.

Y 의 값이 정규분포일때는 LSE, MLE로 추정을 할 수 있지만, Y가 다양한 분포일 때는 MLE로 추정할 수 있다.

$L\prime = \dfrac{\partial L}{\partial \beta} = 0$ 미분을 해서 0을 찾는다. 초기값을 주고 경사 하강법을 이용하여 $\beta$ 값을 찾는다.

 

4. Inference(검정)

추정을 하고난 후 추정한 값이 맞는지 검정을 한다.

$g(E(y)) = \beta_{0} + \beta_{1}x$ 일 때 $H_{0} : \beta_{1} = 0 \ H_{a} : \beta_{1} \ne 0$

Wald TEST

$Z = \dfrac{\hat{\beta_{1}}}{SE(\hat{\beta_{1}})} \ ~  \ N(0,1) \ or\  Z^{2}\  ~ \ \chi^{2}_{1}$

LR TEST

$-2log(\dfrac{l_{0}}{l_{1}}) = -2(L_{0} – L_{1}) ~ \chi^{2}_{1}$

 

5. GLM 모델비교(Deviance)

$g(E(Y)) = \beta_{0} + \beta_{1}x_{1} + … + \beta_{p}x_{p}$ 일 때 $\beta_{0} + \beta_{1} + … + \beta_{p}$ 값이나 혹인 $\beta$의 일부분만 비교를 한다.

예를들어

$ g(E(Y)) = \beta_{0} + \beta_{1}x_{1} + … + \beta_{p}x_{p}$ – 모델 1

$ g(E(Y)) = \beta_{0} + \beta_{1}x_{1}$ – 모델 2

$ g(E(Y)) = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2}$ – 모댈 3

$ g(E(Y)) = \beta_{0} + \beta_{2}x_{2} + \beta_{5}x_{5}$ – 모댈 4

위 4개 모델 중에 어느 모델이 가장 적합한 모델인지 비교를 하고 싶다.

귀무가설 $H_{0} : M_{0} \ H_{1} : M_{1}$

$LR stat = -2log(\dfrac{l_{0}}{l_{1}}) = -2(L_{o} – L_{1}) = {-2(L_{0}-L_{s})} – {-2(L_{1}-L_{s})} = Deviance_{0} – Deviance_{1}$

LR stat 값이 크면 귀무가설 기각 보다 복잡한 모델$M_{1}$을 사용하고  LR stat 값이 작으면 단순한 모델$M_{0}$ 을 채택하면 된다.

즉 LR stat 값이 크면 P-value 가 작아지고 $M_{0}$ 이 $M_{1}$보다 안좋은 모델이다.

6. 잔차 분석

모델이 잘 적합이 되었는지 확인이 필요하다.

Pearson residual : $e_{i} =  \dfrac{y_{i} – \hat{\mu}_{i}}{\sqrt{Var(y_{i}}} \ ~ \ N(0, \sigma^{2})$

Standardozed residual : $r_{i} = \dfrac{y_{i} – \hat{\mu}_{i}}{\sqrt{\hat{Var}(y_{i})(1-\hat{h}_{i})}}$

$|r_{i}| > 2 \ or \ 3$ 이면 모델이 적합하지 않다고 판단이 된다.

 

참암게의 부수체에 관한 연구 – R

설명변수 X(color, spine, width, weight) 가 반응변수(Y) 에 영향을 주는지 확인이 필요하다.

반응변수는 부수체의 개수(sat) 이고, 설명변수 색깔(color), 등뼈의 상태(spine), 등딱지 너비(width), 무게(weight) 이다.

Crabs = read.table("crabdata.txt", header = FALSE) #Or, importing the data from the local folder

colnames(Crabs) = c("color","spine","width","sat","weight","y")
head(Crabs)

fit = glm(sat~width, family = poisson(link = "log"), data = Crabs) #Poisson regression
summary(fit)

------------------------------------------------------------------------------------------------
Call:
glm(formula = sat ~ width, family = poisson(link = "log"), data = Crabs)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.8526  -1.9884  -0.4933   1.0970   4.9221  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.30476    0.54224  -6.095  1.1e-09 ***
width        0.16405    0.01997   8.216  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 632.79  on 172  degrees of freedom
Residual deviance: 567.88  on 171  degrees of freedom
AIC: 927.18

Number of Fisher Scoring iterations: 6

$log\hat{\mu} = \hat{\beta_{0}} + \hat{\beta_{1}}x_{1} = -3.305 + 0.164$x  이고 $\beta_{1}$ 은 양의 값으로 x값이 커지면 증가한다.

TEST

$Z = \dfrac{\hat{\beta_{1}}}{SE(\hat{\beta_{1}})} = \dfrac{0.16405}{0.01997} = 8.21$

로  $H_{0}$ 기각한다.

즉 $\beta_{1}$ = 0.164로 작은 값이지만 영향을 준다.

Diviance을 이용한 모델 비교

$Diviance_{0} = 567.9$

$Diviance_{1} = 632.8$

자유도가 1인 $X^{2}$ 분포 이므로

632.8 – 567.9 = 64.9 로 $\alpha$ < 0.0001 보다 작아 $H_{0}$ 을 기각한다. 즉 $\beta_{1} \neq 0$ 이다

답글 남기기