본문 바로가기
의학통계/통계분석

공분산분석 - ANCOVA (Analysis of Covariance)

by boogler 2022. 6. 23.
반응형

공분산분석 - ANCOVA (Analysis of Covariance)

 

공분산분석, ANCOVA (Analysis of Covariance)는 다중회귀모형(Multiple Regression)의 일종으로 볼 수 있습니다. Reponse variable Y는 연속형이고, X는 그룹을 나타내는 범주형변수로 다른 covariate 를 통제하여 그룹간 차이를 볼 수 있는 통계적 방법입니다. 즉, ANOVA의 확장된 형태로 보시면 되며, 앞서 언급했듯이 다중회귀모형을 통해서도 분석할 수 있으나 ANCOVA는 더 편리한 기능을 제공해서 실제 분석에 가장 많이 사용되는 통계적 방법입니다.


ANCOVA는 Multiple Regression 과 ANOVA를 결합한 형태로 ANOVA의 Assumption과 동일합니다. 제일 중요한것은 그룹간 regression line(slope)이 평행해야 하고, 만약 plot 을 그렸을때 겹치게 나오면 교호작용(interaction)이 있는 것이 의심되므로 꼭 interaction term (Group*X) 을 넣어 확인하셔야 합니다.

 

EX. 수축기혈압 3개 그룹(low/mild/high)간에 HDL-c 의 차이가 유의하게 있는지 테스트해 보겠습니다.

 

< SAS Code >

 

수축기혈압 그룹(sbp_group) 과 Y(HDL) 을 다중회귀모형과 공분산분석을 통해 비교해 보겠습니다.

/* Multiple Regression */
proc glm data=test.test_data;
class sex sbp_group;
model hdl= age sex sbp_group/solution;
run;

/* ANCOVA */
proc glm data=test.test_data;
class sex sbp_group;
model hdl= age sex sbp_group;
lsmeans sbp_group/cl pdiff stderr adjust=SCHEFFE;
run;

 

< SAS Output >

 

각각, Multiple Regression 과 ANCOVA의 결과입니다. 수축기혈압그룹에 따른 HDL의 차이를 보는 p-value=0.2178로 동일한 것을 알 수있습니다. 즉, 성별(sex), 나이(age)를 통제한 후, 수축기 혈압그룹에 따른 HDL의 차이는 유의하지 않다고 말할 수 있습니다.

ANCOVA 예제 Output

이제 ANCOVA 가 보여주는 다른 Output 도 함께 살펴 보겠습니다. (①~④)

 

1) 에서는 제일 관심사인 그룹간 adjusted means값과 standard error 값을 보여줍니다.

2) 는 각 그룹간 pairwise p-value 를 보여줍니다. ( adjust=SCHEFFE 문에 의해 나오는 output입니다.)

3) 그룹간 adjusted means 값과 95% CI 을 보여줍니다.

4) 그룹간 차이와 차이에 대한 95% CI 을 보여줍니다.

 

* lsmeans 구문에서 adjust 에는 BON, DUNNETT, SCHEFFE, SIDAK, Tukey 등을 사용하여 Post-hoc 분석을 수행할 수 있습니다. 

* Tukey 는 흔히 balanced data 즉, 동일한 n수의 그룹에 적합하다고 알려져 있지만, SAS에서는 만약 unbalanced 하면 Tukey-Kramer 로 분석하기 때문에 그냥 사용해도 됩니다.

 

 EX. 수축기혈압 3개 그룹(low/mild/high)간에 HDL-c 의 차이에 linear trend test를 해보겠습니다.

 

< SAS Code >

proc glm data=test.test_data;
class sex sbp_group;
model hdl= age sex sbp_group;
lsmeans sbp_group/cl pdiff stderr adjust=tukey;
contrast 'linear' sbp_group -1 0 1;
ods output lsmeans= a1 ModelANOVA=m1 contrasts=c1;
run;

< SAS Output >

 

Contrast 결과

p-value=0.3397 로 수축기혈압 3그룹의 HDL-c의 변화에 linear trend는 유의하게 존재하지 않습니다.

 

* Contrast 구문으로 ANCOVA에서 trend test 를 할 수 있습니다.

Contrast에 쓰는 Coefficient

 

댓글