해당 글은 아래 링크를 토대로 작성했습니다.
https://theeffectbook.net/ch-StatisticalAdjustment.html?panelset5=python-code6&panelset6=python-code7&panelset7=python-code8&panelset8=python-code9#additional-regression-concerns
Penalized Regression
- Regression에서 변수가 너무 많은 경우, variable selection을 하기 위한 방법
- 변수가 너무 많으면 collinearity가 생길 수 있고, 모델의 해석도 어렵고 과적합의 위험도 있으므로, 변수를 제거하는 과정이 필요함
Regression | Penalized Regression |
|
|
잔차 제곱합을 최소로 만드는 coefficient를 찾아야 함 | 잔차 제곱합을 작게 만들면서 + β coefficients를 작게 만들어야 함 |
- λ: penalty parameter
- λ가 작은 경우: 잔차를 최소화 하는 것이 beta를 작게 만드는 것보다 중요한 경우
- λ가 큰 경우: beta를 작게 만드는 것이 잔차를 최소화 하는 것보다 중요한 경우
Penalty Function의 종류
: Penalized Regression에서 F()의 종류
(1) L1-norm (Lasso Regression)
- Σ|β|으로, coefficient의 absolute의 합
- "least absolute shrinkage and selection operator"으로, coefficient를 축소하면서 + 많은 coefficient를 0으로 만들어 주는 효과가 있음
- 변수를 선택 (selection operator)하는 역할을 하므로, Regression에서 covariate가 너무 많은 경우 Lasso Regression으로 coefficient를 축소 + covariate selection을 할 수 있음
(2) L2-norm (Ridge Regression)
- Σβ^2으로, coefficient의 squared sum
- variable selection의 역할은 없고, 축소된 coefficient를 제공함
Lasso Regression 사용시 유의사항
(1) Lasso Regression을 하면 backdoor을 닫기 위해 꼭 필요한 변수를 삭제할 수도 있음
-> 특정 공변량을 삭제하지 않도록 설정하거나, 해당 변수가 누락된 최종 Lasso 모델에 변수를 추가해야 함
(2) Lasso Regression은 coefficient를 정확하게 추정해주진 못함
- 원래 Lasso Regression은 machine learning 관점에서 최적의 out-of-sample prediction를 하기 위해 사용하는 방법임.
- 하지만, 우리는 causal inference 관점에서 최적의 estimator를 찾기 위해 Lasso Regression을 사용하는 경우로, 계수가 축소된 경우, coefficient 추정은 덜 정확할 수 있음
-> Lasso는 variable selection에만 사용하고, 선택된 변수들로 따로 일반 OLS를 해서 최적의 estimator를 찾을 수 있음
Lasso Regression을 수행하는 방법
(1) Standardization
- penalty term Σ|β|은 coefficient의 크기만을 고려함
- scale이 작은 변수 -> coefficient의 값이 커짐 -> penalty가 커짐 -> Lasso에 의해 변수가 삭제되거나 축소될 가능성이 높음
-> 모든 변수가 동일한 척도에 있도록 standardization을 수행 후 lasso regression을 해야 함
(2) 적절한 polynomial terms과 interaction terms를 포함하여 Lasso를 수행하라
- 최대한 많은 항들을 변수에 포함하려고 할 수는 있는데, 말이 안되는 polynomial terms (e.g. 4차 이상)나 interaction terms (e.g. 누가 봐도 상관이 없는 변수들)를 굳이 끼워넣지 않아도 된다. 애초에 말이 되는 변수들로만 모델을 구성하자.
(3) λ 값 선택할 때 cross validation을 이용할 수 있음
- λ를 hyperparameter로서 선택해야 하는데, k-fold cross validation을 통해 선택할 수 있음
- train set을 k-fold (아래 그림에서는 10-fold)으로 split 한 뒤, k-1개의 fold에서 특정 λ값을 설정한 뒤 학습, 나머지 하나의 fold에서 prediction score (holdout score)를 계산함 -> k개의 λ값의 성능을 비교할 수 있음 -> cross validation으로 최적의 λ를 찾을 수 있음
'계량경제학 > 인과추론의 데이터과학' 카테고리의 다른 글
Randomized Controlled Trials (RCT, ABTest) (0) | 2023.11.09 |
---|---|
Causal Inference의 개요 (0) | 2023.11.09 |
인과추론을 위한 회귀분석 - Measurement Error (1) | 2022.10.03 |
인과추론을 위한 회귀분석 - Collinearity (1) | 2022.10.03 |
인과추론을 위한 회귀분석 - Sample Weights (0) | 2022.10.03 |