안녕하세요. Growth Scientist입니다.
오늘은 지난번 변수변환까지 완료된 모델에 대한 독립성 검정을 할거예요.
정확히 오차항의 독립성에 대해서 검정할 건데,
회귀분석의 이론을 잠깐 살펴보면, 회귀계수β를 추정할 때,
ε는 설명할 수 없는 부분이자 알지못하는 부분이기 때문에,
일반적으로 ε(오차항)은 독립적이고 정규분포를 띈다고 가정해요.
반대로 가정이 깨지면, 회귀모델이 의미가 없어지는 것이죠.
오차항이 독립이다라는 말은 무엇일까요?
Y = β0 + β1X1 +β2X2 + ε
ε 라는 회귀식이 있다고합시다.주어진 데이터(X,Y)로 Y에 대한 회귀추정식을 만들건데,설명변수(X)는 변하지 않는 상수로 취급이되고, 반응변수(Y)는 예측값으로 확률변수로 취급돼요.
질문 상수(X)로 설명되는 변수가 어떻게 가변적인 확률변수(Y)가 되나요?
그 이유는 ε 때문이에요. 주어진 X로 설명하지 못하는 모든 부분이 ε((오차))이기 때문이죠.
때문에 ε 역시 Y와 같이 확률변수이고 회귀모델의 성립요건으로 독립성과 정규성 등을 충족시켜야 하죠.
감이 오신다면, 오늘 주제의 첫번째인 다중공선성부터 시작하죠!
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 #성별
[ 다중공선성 ]
다중공선성은 이름의 뜻에서도 알 수 있듯이, 설명변수들 사이에서 공통된 선형성을 나타내는 성질이에요.
만약, A 회사의 임직원들의 연봉을 예측할 때 사용되는 설명변수를 근속년수와 나이로 설정한다면 어떻게 될까요?
근속년수와 나이의 상관관계를 생각해보면 굉장히 높을 것이라고 예상할 수 있죠. 근속년수가 높은 사람들은 연봉이 높을 것이고, 높은 사람들 중 대부분은 나이가 많을 것이기 때문이죠.하나의 반응변수를 설명하는데에 있어서, 두 설명변수가 높은 상관관계를 보이면, 다중공선성이 높다고 말합니다.다중공선성이 높은 설명변수들은 자기상관성을 가진다고 말하기도 해요.
다중공선성의 척도로는 VIF(Variance Inflation Factor)를 사용하는데 분산 팽창 인자라고 불러요.
식은 굉장이 간단한데,
여기서 ri는 i번째의 변수를 제외한 설명력(R^2)값이에요.
식을 해석해보면, ri가 증가할 수록 VIF는 커지고
i번째 변수가 없어도 충분히 Y를 설명할 수 있다고 해석할 수 있어요.
근속년수와 나이 중 한 변수가 빠져도 연봉을 설명할 수 있는 것처럼요.
보통 VIF > 5라면 해당 변수에 대한 다중공선성을 의심할 수 있고,
VIF >10 이라면 제거할 근거가 충분하다고 판단한답니다.
그렇다면 R에서 VIF를 구해볼까요?
기본 문법 : vif(model)
제가 구성한 첫번째 회귀모델의 다중공선성입니다.
모든 설명변수가 1에 근접하고있죠,
이럴경우 설명변수들 간의 다중공선성이 의심되지 않는다고 합니다.
만약 5를 넘어가면 해당 변수의 데이터를 살펴보거나 변수들의 조합을 바꿔볼 수 있습니다.
10을 넘어가면 해당 변수를 삭제합니다. 다른 설명변수와 선형성을 띄어 독립성을 해치기 때문입니다.
[ 더빈왓슨 검정 ]
Durbin- Watson 검정은 오차항의 독립성 여부를 검정할 수 있는 방법이에요.
ε1 ~ ε2, ε2 ~ ε3 ... 1씩 차이나는 오차항의 상관계수를 계속 비교하며 오차항의 독립성을 검정해요.
공식은 다음과 같아요
E(ε) = 0이라는 성질을 이용해 위의 식을 뽑을 수 있는데요.
분모는 오차항의 분산이고 분자는 인접한 오차항의 공분산이에요.
즉, t번째 분산과 인접한 오차항의 공분산의 비율이죠.
D는 다음과 같은 성질을 가지고 있어요.0 ≤ D ≤ 2이면 오차항은 음의 자기상관, 2 ≤ D ≤ 4이면 양의 자기상관,D~=2이면 오차항의 독립 만족
검정은 H0 : 오차항의 자기상관성이 없다(독립이다) / H1 : 오차항의 자기상관성이 있다로 진행돼요.
그럼 이제, R 프로그램에선 어떻게 테스트하는지 보여드릴게요.
library(lmtest)
※ 패키지가 없으신 분들은 install.packages(lmtest)를 해주세요
dwtest(model)
제가 선택했던 model1의 테스트 결과, DW는 1.81로 나왔고,
p-value는 0에 매우 가깝게 나왔어요. 이럴 경우 각 표본 사이에서
오차항은 자기상관성을 띄고있다고 해석할 수 있겠네요.
다시 말해서 각 레코드 별로 오차항의 패턴이 보인다는 것이에요.
사실 더빈왓슨 검정은 이번에 사용된 설문조사 데이터보다
일정 기간동안 관찰된 시계열 자료에 더 적합하게 쓰이는 통계기법이에요.
이러한 결과는 아마 개별적인 관측값들에서 비슷한 관측치들이 많이 나온 것으로 보이네요.
만약 표본의 수집과정이 독립적으로 이루어졌다면, 각 오차항의 상관관계는 크게 고려하지 않아도 될 듯합니다.
[ 요약 ]
오늘은 다중공선성과 더빈 왓슨 검정에 대해서 알아보았는데요.
다중공선성은 설명변수들 간의 선형성을 검정해주는 통계량이며
더빈왓슨 검정은 오차항들 간의 선형성을 검정해주는 통계량이에요.
두 검정법의 차이는 설명변수를 종단적으로 진단하는 것과 오차항(관측치)를 횡단적으로 진단하는 것이에요.
이 외에도 많은 독립성 검정 통계량들이 있는데,
여러가지를 써보면서 나의 연구에 필요한 근거들을 보충하시면 좋을 것 같아요.
다음 시간에는 표준화 회귀계수에 대해서 알아볼게요!
그럼 BYE~
'Data Analysis > [Project] Regression With R' 카테고리의 다른 글
[R 프로그래밍 회귀분석] 모형 학습과 테스트 (0) | 2022.07.08 |
---|---|
[R 프로그래밍 회귀분석] 표준화 회귀계수 (0) | 2022.07.07 |
[R 프로그래밍 회귀분석] BOXCOX 변수변환 (0) | 2022.07.02 |
[R 프로그래밍 회귀분석] 잔차도 분석 (0) | 2022.07.01 |
[R 프로그래밍 회귀분석] 부분 F 검정과 ANOVA를 통한 모델 비교 (0) | 2022.06.29 |