범주형 변수의 수준(level) 간에 종속변수의 평균에 차이가 존재하는가 를 분석한다 (ANOVA)?
여기에 종속변수에 영향을 미칠 것으로 판단되는 연속형 변수, 범주형 변수(공변량: covariate)의 효과를 동시에 고려하여 분석한다.
정리하면, 각 변수 안에서 공변량을 독립변수로 하는 회귀분석을 시행하고, 이것으로부터 얻어진 변수 간 회귀식을 분산분석한다.
공분산분석의 목적
공변량을 통제하여 독립변수의 순수한 영향을 검정하기 위함이다.
ANOVA에 통제할 수 없는 연속형 변수를 통제하여 오차를 줄이고 검정력을 높인다.
공분산분석 (출처: https://bioinformaticsandme.tistory.com/198); 주요 독립 변수를 중점으로 두고, 나머지 독립 변수를 공변량으로 분석할 수 있다.
공분산분석의 가정
정상출생아와 조산 출생아의 뇌 발달 차이를 검정하고자 할 때,
가설: 두 그룹간 백질 성숙도의 차이가 있을 것이다.
여기에, 우리는 백질의 분획이방성(fractional anisotropy; FA)에 순수하게 조산 출생의 여부가 미치는 영향을 보고 싶다. 그렇지만, 종속변수인 FA에 신생아의 재태 기간(Gestational age; GA) 혹은 MRI를 찍은 주수(Age at MRI; 신생아 뇌 발달은 급격하게 이루어 지기 때문에 MRI를 찍은 주수가 백질 발달에 영향을 충분히 미칠 수 있다)에 따라 FA가 영향을 받을 수 있다. 그렇기 때문에 우리는 GA와 Age at MRI를 종속변수 FA에 영향을 미칠 것으로 판단하여 covariate로 지정할 수 있다.
우리는 성별과 Age at MRI가 두 그룹의 FA에 동일하게 영향을 미치는가에 대하여 질문할 수 있다.
여기서 공분산 분석을 위한 두가지 가설을 제시할 수 있다.
가설 1: 종속변수에 미치는 공변량의 효과가 모두 동일해야 한다.
가설 2: 공변량의 효과는 0이 아니어야 한다.
공변량이 2개인 경우에 3개의 독립 변수가 있고, 종속변수를 y, 공변량을 x라고 했을 때 데이터 형태를 아래와 같이 표현할 수 있다.
조산 출생이 백질 FA에 미치는 영향에 GA와 Age at MRI가 미치는 효과가 모두 같아야 한다.
가설 2: $\beta$의 효과는 0이 아니다.
이럴 경우는 ANOVA를 시행하면 된다.
One-way ANCOVA
일원공분산분석은 공변량이 하나일 경우 시행한다.
<예제 1> 발달중인 신생아 20명에 대해 조산 출생과 정상 출생의 영향을 비교하고자 신생아 20명을 조산출생과 정상출생으로 나누어(2 그룹) 백질 성숙도 지표인 FA$(y)$를 측정하였다. 추가로 GA$(x)$가 FA$(y)$ 값에 영향을 미칠 것이라고 생각하여 GA$(x)$ 값도 함께 측정하였다. 여기서 조산출생과 정상출생의 차이가 있는지 검정하라.
발달 중인 신생아 20명에 대한 조산군과 정상군(preterm, fullterm), GA$(x)$, FA$(y)$에 대한 데이터는 아래와 같다.
FA, fractional anisotropy; GA, gestational age; PMA, age at MRI; group1, preterm infants; group2, full-term infants.
공분산 분석을 진행하기에 앞서 HH, Car, lsmeans를 설치하자.
먼저, 각 군에서 공변량 효과가 동일하다는 공분산 분석의 첫 번째 가정을 검정해 보자.
먼저 options 함수로 그룹의 계수의 합이 0이 되도록 지정해 보자.
options(contrasts=c("contr.sum","contr.poly"))
(해당 R 코드를 사용하는 이유에 대해서는 차후 설명하겠습니다.)
각 군에서 공변량 효과가 동일한지를 확인하기 위해서는 그룹과 GA간의 상호작용 효과(Interaction effect)를 확인해야 한다.
상호작용이 존재한다면, 그룹간의 회귀계수가 동일하지 않다라고 해석할 수 있고, 공분산분석이 바람직 하지 않음을 시사한다.
model1 <- lm(`fa-value`~group*GA, data=FA)
Anova(model1, type="III")
Result
-------------------------------------------
Anova Table (Type III tests)
Response: fa-value
Sum Sq Df F value Pr(>F)
(Intercept) 0.000416 1 0.1965 0.6635
group 0.003045 1 1.4370 0.2481
GA 0.003980 1 1.8782 0.1895
group:GA 0.003952 1 1.8650 0.1909
Residuals 0.033904 16
-------------------------------------------
group:GA를 보면 상호작용에 대한 p값이 0.1909으로 유의수준 5%에서 유의하지 않음을 알 수 있다.
그룹과 GA 사이의 Interaction effect가 없음으로 공분산분석을 위한 첫 번째 가정을 충족한다.
ANCOVA의 경우는 Anova(model1, type="III")을 사용하여 분석하게 되는데, 여기서 제 1종 제곱합(Type I SS)과 제 3종 제곱합(Type III SS)에 대해서 훑고 넘어가보자.
다중공선성은 통계에서 상당히 중요한 개념이다. 특히 회귀분석과 관련하여 다중공선성이 존재할 때 데이터 분석 결과에 부정적인 영향을 끼치며, 나아가 결정 트리와 같은 인공지능을 적용한 분석에서도 영향을 끼친다.
두산백과에서 인용하자면, 다중공선성은 "회귀 분석에서 사용된 모형의 일부 예측 변수 (독립 변수)가 다른 예측 변수와 상관 정도가 높아, 데이터 분식 시 부정적인 영향을 미치는 현상을 말한다."
수리적 의미로는 어떤 독립 변수가 다른 독립 변수들과 완벽한 선형 독립 (linearly independent)가 아닌 경우를 말한다. 쉽게 말하면, n개의 dimension에서 임의의 u vector와 v vector에 대해서 이들의 일차 결합 (linear combination)이 0을 만족하는 상수 Cn이 모두 0이면 벡터 u와 v는 선형 독립이라고 할 수 있다.
선형 독립의 조건
다시 돌아와서 다중공선성은 (n+1)개의 수치형 변수를 가진다.
x1, x2, x3, ... , xn의 n개의 독립변수와 Y라는 1개의 종속 변수로 구성될 수 있다고 가정하자.
다중공선성이 존재한다고 해석하면, "n개의 입력 변수들 사이에 상관관계가 존재하는 상태" 라고 기술할 수 있다.
Feature selection의 한가지 방법인 PCA(principle component analysis)를 보면, 독립변수끼리 다중공선성의 문제가 있는데 이 변수들을 n차원에 산포시키면 온전한 선형독립을 이루지 못함을 알 수 있다. 그렇기 때문에 다중공선성의 문제가 있는 독립변수들을 선형결합하여 주성분(component)으로 차원축소해준다. 그렇게 되면 변수의 특성을 살리면서 독립변수의 개수를 줄여 과적합의 위험을 줄일 수 있다. 이렇듯, 다중공선성은 독립변수들의 관계를 이해하고 어떠한 처리를 진행할지에 대한 하나의 정보이다.
이쯤 되면 pearson's correlation과 multicollinearity의 차이가 무엇인지 궁금해진다. 두 개의 차이를 아래와 같이 구분할 수 있다.
상관성
Pearson Correlation 등
다중공선성
VIF (분산팽창계수 or 분산팽창인수) Tolerance (공차한계), CN (상태지수) 등
예시를 들어보자, 우리는 신생아의 출생시 체중 (birth weight)과 출생시 머리 둘레 (head circumference)가 신생아의 뇌 발달에 미치는 영향을 설명하고자 한다. 여기서 우리는 하나의 목적이 생긴다.
신생아의 체중과 머리 둘레가 각각이 종속 변수를 정확하게 설명해주었으면 한다.
만약에 체중이 적은 아동일수록 머리 둘레가 작아 다중공선성이 생긴다면 독립변수들 각각의 설명력이 약해진다.
standard error가 증가하게 된다.
추정치의 분산이 증가하여 회귀계수의 신뢰도가 감소한다.
그렇다면 standard error는 왜 증가하는 것일까? Y = 3(X1) + 2(X2) 의 모형식이 얼마나 유의한 식인지 확인해 보자.
귀무 가설 = 회귀 계수는 0이다.
귀무 가설을 검증하기 위해서는 검정 통계량 (t-statistics) = 추정된 회귀 계수 - 0 / 계수의 표준 오차로 확인할 수 있다.
검정 통계량의 절대값이 증가하면 0.05 < p-value 가 나온다. 반대로 표준 오차가 커지면 검정 통계량의 절대값이 작아진다.
R을 사용하다 보면 VIF, Tolerance, CN을 주로 사용하는데, VIF는 이 중에서도 가장 일반적으로 사용된다.
$VIF=\frac{1}{(1-R^{2})}$
코드로는 car::vif(lm_object)를 진행한다.
해석
결과 값을 직접 가져오지는 않겠지만, 일반적으로 VIF가 10 이상이면 다중공선성이 있다고 판단한다. 10 이상의 결과가 나오면 변수 선택법 (variable selection)을 통해 임상적인 의미가 더 중요하거나, 종속변수와의 관련성이 더 높은 변수를 선택하거나 두 변수의 결합변수를 만들어 사용할 수 있다.