working_helen

[R로 하는 통계분석] GAM(Generalized Additive Models) 본문

교내 수업/R 통계분석

[R로 하는 통계분석] GAM(Generalized Additive Models)

HaeWon_Seo 2024. 11. 29. 15:07

 

1. GAM (Generalized Additive Models)

2. GAM R 코드로 구현하기

 


1. GAM (Generalized Additive Models)

" 각 feature에 대한 비선형 함수를 선형결합 "
= 각각의 설명변수 xj에 대해선 비선형 함수 fj(xij)를 적합  + fj(xij)들을 선형결합

 

- 각 fj는 glm, spline, identity 등 단일변수로 y를 예측하는 어떠한 모델이든 사용 가능 

- linear additivity 유지함으로써 fj를 단순히 선형결합하여 최종 모델 적합 

 

GAM regression 모델링 예시 

  • `year` : natural spline, 자유도 4
  • `age` : natural spline, 자유도 5 
  • `education` : step function

출처 : An Introduction to Statistical Learning, 2013, 284-285p

 

 

 

- logistic regression GAM

  : prediction term을 linear Xβ 대신 GAM 모델 이용 

 

GAM classification 모델링 예시 

  • `year` : linear function 
  • `age` : smoothing spline, 자유도 5 
  • `education` : step function

출처 : An Introduction to Statistical Learning, 2013, 286-287p

 

 

 

 

 

2. GAM R 코드로 구현하기

"ISLR2" 패키지 Wage 데이터셋 사용

 

 

다양한 fucntion을 사용해 GAM 모델 fitting 

  • `gam` : year에는 natural splines + age에는 smooth splines + education는 step function 
  • `gam1` : year, age에는 smooth splines + education는 step function
  • `gam2` : age에는 smooth splines + education는 step function 
  • `gam3` : year에는 linear function + age에는 smooth splines + education는 step function 

 

모델 해석

  • Parametric Effects :
    매개변수의 수가 고정된 모델의 효과에 대한 유의성 검정 
    natural spline은 매개변수 개수가 고정되어 있으므로 Parametric Effects로 검정 
  • Nonparametric Effects : 
    매개변수 수가 고정되어 있지 않고 학습 과정에서 결정되는 모델의 효과에 대한 유의성 검정 
    smooth spline은 regularization term lambda에 의해 최적화되기 때문에 Nonparametric Effects로 검정 

 

 

(1) `gam` fitting & 모델 해석

- `ns(feature, df)` : natural spline / `s(feature, df)` : smooth spline

 

- Anova for Parametric Effects : 

  `year` natural spline에서 유의미, `education` step function에서 유의미 
  `age`는 선형 관계에서 유의미 

- Anova for Nonparametric Effects :
 `age`는 smooth spline에서도 유의미 

 

 

- 각 설명변수 function별 fitting 결과 시각화 

 

 

 

(2) `gam1` fitting & 모델 해석

- Anova for Parametric Effects :
 `education` step function에서 유의미, `year`와 `age`는 선형관계에서 유의미

- Anova for Nonparametric Effects :

  `year`는 비선형 관계에서 유의미하지 않음, `age`는 선형과 비선형 모두 유의미 

 

 

- 각 설명변수 function별 fitting 결과 시각화 

 

 

 

(2) `gam2`, `gam3` fitting & function 종류에 따른 모델 성능 비교 

 

- `gam2` : `year`를 아예 설명변수로 사용하지 않은 모델 

- `gam3` : `year`에 linear function를 사용한 경우 `gam2`에 비해 유의미하게 더 좋은 모델
- `gam1` : `year`에 smooth spline를 사용한 경우 `gam2`에 비해 좋지 않음 

 

 

 

 

 

 

 

 

Reference

https://direction-f.tistory.com/97

본 포스팅은 James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning with Applications in R. Springer. 책을 참고하여 작성했습니다.