안녕하세요. Growth Scientist입니다.
Summary 함수를 알아봤던 저번 시간에 이어서
회귀분석에서 필수적인 ANOVA 함수를 알아볼 거예요.
ANOVA는 Analysis of Variance로 각 변수들의 분산분석을 해주는 방법론이에요.예를들어 서울, 대전, 춘천, 부산의 부동산 가격의 분산에 대하여 분석하여 각 집단별 차이를 보기위한 방법처럼, 여러 집단의 평균차이를 검증할 수 있게 해준답니다.
회귀분석에서의 ANOVA는 조금 다른 개념으로 접근하셔야 해요.그럼 이해하기 쉽게 이론부터 시작해볼까요?
DATA : 국민건강영양조사(2019) - hn_dat
Y <- hn_dat$HE_BMI #BMI
X1 <- hn_dat$age #연령
X2 <- hn_dat$BO1;#주관적 체형인식
X3 <- hn_dat$ainc #소득
X4 <- hn_dat$BP1 #스트레스 인지율
X5 <- hn_dat$LQ_8HT #행복감
X6 <- hn_dat$educ #학력
X7 <- hn_dat$LQ_3HT #우울감
X8 <- hn_dat$BO2_1 #체중 조절 여부
X9 <- hn_dat$HE_insulin #인슐린 수치
X10 <- hn_dat$sex;X10 #성별
[ ANOVA 이론 ]
회귀분석은 주어진 데이터를 이용하여 예측력이 높은 모델을 만드는 일이에요. 즉, 만들어진 모델이 새로운 데이터의 Y값을 잘 예측해야 하죠.하지만 100% 정확한 Y값을 예측할 수 없어 오차가 발생하는데요. 그 오차를 최대한 줄이려는 노력이 좋은 회귀모델은 만드는 노력과 같아요.
이제 그림으로 설명을 한 번 드릴게요.
짜잔~ 제가 만든 그림이에용.
SST는 총 오차(Y-mean(Y))의 합의 제곱이에요. 실제 자료값와 총 평균의 차이 변동을 말하죠.
SSE는 자료값과 회귀 추정값의 차이(Y-Y_hat)의 제곱합이에요. 회귀식이 설명하지 못한 부분이죠.
SSE가 0이라면 회귀 그래프가 저 검은색 자료값을 지나겠죠??
SSR은 회귀 추정값과 Y들의 평균 차이(Y_hat-mean(Y))의 제곱합이에요. 회귀식이 설명해주는 부분을 말하죠.
이 부분이 올라가면 올라갈 수록 설명할 수 있는 부분이 많아지니 더 좋은 회귀식이 되겠죠?
이 부분을 설명한 이유는 ANOVA 분석에 사용되기 때문인데요.
ANOVA 테이블은 이렇게 생겼답니다.
위에서 SST , SSE, SSR을 구했죠? 이를 자유도로 나누면 제곱합의 평균이돼요.
그렇게 MSR과 MSE를 구하여 F 값을 구할 수 있는데, 회귀식의 오차에서 회귀식이 차지하는 비율이 나오죠?
MSR이 커지면 자연스럽게 F값이 커지게 되어 커진 p-value로 귀무가설을 기각할 수 있게돼죠.
무엇을 기각하는지 궁금하다구요? ANOVA에서 설정하는 가설은 다음과 같습니다.
H0 : 다중회귀식의 모든 기울기는 0 일것이다. β = 0
H1 : 다중회귀식의 모든 기울기는 0이 아닐 것이다. β != 0
만약 귀무가설을 기각하게 된다면 하나의 기울기는 회귀식에서 유의미성을 가진다는 의미겠죠?
[ ANOVA 해석 ]
ANOVA 테이블은 R 프로그램에서 이렇게 나오는데요.
MODEL1을 그대로 넣으면 각 변수들의 SSR과 Residuals (SSE) 가 나오게돼요.
해석은 설명변수 개별적으로 F 검정을 해준다고 보시면 됩니다!
예를들어, X1의 MSR(mean square)와 MSE를 나눈 값이 F-value에 나타납니다.
즉 개별적으로 해당 변수들을 검정해주는 것이죠.
쭉 내려와보면 X4와 X8의 p-value가 유의하지 않게 나오죠?
이 변수들은 해당 모델에서 유의미한 기울기를 가지지 않는다고 판단할 수 있습니다.
만약 변수들의 조합을 다르게 해본다면 또 달라질 수도 있겠지만요!
여러 다른 분석들이 앞으로 많이 나오겠지만,
가장 기본이 되는 분석들을 소개해드렸어요.
다음 포스팅에는 부분 F 검정과 ANOVA를 활용한 모델 비교를 소개해드릴게요!
그럼 BYE~
'Data Analysis > [Project] Regression With R' 카테고리의 다른 글
[R 프로그래밍 회귀분석] 잔차도 분석 (0) | 2022.07.01 |
---|---|
[R 프로그래밍 회귀분석] 부분 F 검정과 ANOVA를 통한 모델 비교 (0) | 2022.06.29 |
[R 프로그래밍 회귀분석] Summary 분석 해석 (0) | 2022.06.26 |
[R 프로그래밍 회귀분석] 변수선택 - 동시/단계별 변수입력 (0) | 2022.06.25 |
[R 프로그래밍 회귀분석] 탐색적데이터 분석(EDA) - 2 상관관계 분석 (0) | 2022.06.22 |