조정된 R²가 알려준 진짜 설명력 이야기
연재 1. 직장생활은 오래되었지만 데이터사이언티스로서는 주니어야
오늘은 그 과정을 정리해보고자 한다.
회귀 모델 평가 시 가장 먼저 보는 지표가 R²다.
하지만 R²는 변수를 많이 넣으면 무조건 올라가서,
불필요한 변수를 넣어도 좋은 성능처럼 보이는 착시가 생긴다.
조정된 R²는 이런 착시를 보정한다.
모델이 진짜 설명력이 좋아졌는지, 변수 추가가 의미 있는지 판단해주는 지표다.
처음엔 변수 수가 많아지면 왜 패널티가 붙는지 이해하기 어려웠다.
“변수가 많으면 자유도가 줄고, 오차 평균이 커진다”는 말이 뭔지 몰랐다.
수식을 차근차근 살펴보면서,
조정된 R² 공식이 MSE(평균 오차 제곱합)를 기준으로 오차를 평가한다는 걸 알게 됐다.
자유도가 줄어들면,
모델이 너무 변수를 넣어 과적합 되는 걸 막는 역할을 하는 것이다.
세 가지 모델을 만들어 실험했다.
X1, X2: y와 관련 있는 변수
X3: 의미 없는 변수 (노이즈)
모델0 (X1만 사용)
자유도: 98
SSE (오차 제곱합): 541.1794
MSE (평균 오차 제곱합): 5.5222
조정된 R²: 낮음
모델1 (X1, X2 사용)
자유도: 97
SSE: 85.4454
MSE: 0.8809
조정된 R²: 확실히 증가
모델2 (X1, X2, X3 사용)
자유도: 96
SSE: 84.0385
MSE: 0.8754
조정된 R²: 거의 변화 없음
X2를 추가했을 때 MSE가 크게 줄어들면서 조정된 R²도 확 올라갔다.
X3를 추가했을 때는 MSE가 거의 변하지 않고 조정된 R²도 변화가 없었다.
R²만 보면 X3를 넣어서도 값이 조금 올랐지만, 조정된 R²가 그걸 걸러준 것이다.
시험을 준비하면서 수식을 직접 보고, 실습하면서 이해가 크게 깊어졌다.
앞으로는 보고서나 발표 때도 조정된 R²를 꼭 함께 설명해야겠다는 생각이 들었다.
데이터 사이언티스트로 성장하는 과정에서 이런 ‘이해의 순간’들이 중요하다는 걸 다시 한 번 느꼈다.
이 글은 OpenAI ChatGPT의 도움을 받아 공부 내용을 정리하고,
실험 코드 작성과 해석에 참고했습니다.
같이 공부하는 분들께 조금이나마 도움이 되길 바랍니다.