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

매개효과 분석 - Mediation

by boogler 2022. 6. 24.
반응형

매개효과 분석 - Mediation

 

Reponse variable(=Y)와 인과관계가 있는 predictor(=X)가 있을때, X가 어떤 중재변수에 의해 일부 또는 전체적인 영향을 받을때 그때 그 중재 변수를 매개변수(Mediator=M)라고 합니다. 즉, M mediate the effect of X on Y 로 표현할 수 있습니다. 이런 매개효과분석에는 여러가지 방법이 있지만 제일 고전적인 방법인 Baron & Kenny 방법과 SAS의 Proc causalmed 를 예제를 통해 알아 보겠습니다. 

 

매개효과분석은 사회과학 분야(심리학 등)에서 많이 사용되는데 요즘은 의학 논문에서도 가끔 활용되고 있는듯 합니다.

 

아래 예제는 SAS support 를 참고해서 정리한것입니다. 자세한 설명은 SAS support를 참고해주세요.

 

http://support.sas.com/kb/59/081.html


Baron & Kenny 의 매개효과 분석 이해하기

 

Reponse variable(=Y), predictor(=X), mediator(=M) 으로 가정하고 M변수가 mediator가 될수 있는지 알아보겠습니다.

부분/전체 매개효과

< Baron & Kenny 의 매개효과 검정 단계 >

바론&케니의 매개효과 검정단계

Step 1,2,3 을 만족할때, M 변수가 mediation 효과가 있다고 할 수 있습니다.

- 만약 d ≒ 0 ( d가 0에 가깝게 아주 작을때) 이면, Full mediation 한다고 할 수 있습니다.
- 만약 d < c 이면 partial mediation (부분매개)한다고 할 수 있습니다.

- Total effect = d + (a * b)
- Direct effect = d
- Indirect effect = a * b 

*
Total effect = Direct effect + Indirect effect
*
중요한 것은 indirect effect 이며 이 부분이 mediated 된 효과를 의미합니다.
매개효과분석에서 X 는 M 에 시간적으로 우선하는 경우입니다. (temporal precedence)

 

공복혈당(FPG)이  ldl 콜레스테롤변수(ldl)를 매개하여 간기능수치(SGOT)를 높이는지 테스트 해보겠습니다.

 

X=ldl, M=FPG, Y=Log_SGOT 입니다. Baron & Kenny의 3 step을 그대로 따라 해보겠습니다.

ods output 부분은 이후 sobel test에 이용될 예정입니다.

 

< SAS Code >

 

data test_data;
set test_data;
X=ldl;
M=FPG;
Y=log_SGOT;
keep X M Y;
run;

*1) M -> X model;
proc reg data=test_data;
model M = X;
ods output parameterestimates=compa(keep=variable estimate stderr where=(variable="X"));
run;
*2) Y -> X model;
proc reg data=test_data;
model Y = X;
ods output parameterestimates=compc(keep=variable estimate where=(variable="X"));
run;
*3) Y -> X M model;
proc reg data=test_data;
model Y  = X M;
ods output parameterestimates=compbcp(keep=variable estimate stderr where=(variable in ("X","m")));
run;

 

< SAS Output >

 

- Step 1에서 a=0.09214, Step 2의 c=0.00031472, Step 3의 d=0.00024441, b=0.00076310 입니다.

- Step 2,3 을 보면 d<c 으로 mediator FPG에 의해 X가 Y에 미치는 영향력이 작아졌음을 알수 있습니다.

- Step 1,3 은 조건을 만족하나, Step 2는 유의성이 없어 조건을 만족하지 않습니다.

   ( 그럼에도 불구하고, 소벨테스트를 통해 a*b (indirect effect) 가 유의하게 되어, Step 2의 c가 유의하지 않아도  mediation 효과가 있는 경우가 있습니다.) 

 

소벨테스트 (Sobel Test)

위의 SAS 코드 실행을 통해 compa, compbcp 테이블에 a, d, b estimate 값과 standard error 값을 저장했습니다. 이를 이용해서 Sobel Test를 해보겠습니다.

 

- Sobel 테스트는 간접효과인 a*b가 유의하게 a*b ≠ 0 가 아닌지 테스트합니다.

 

< SAS Code >

 

data sobel; 
        merge compa(drop=variable rename=(estimate=a stderr=sa))
              compbcp(where=(variable="FPG") rename=(estimate=b stderr=sb));
        sobel=a*b/sqrt(a**2*sb**2 + b**2*sa**2);
        p=2*(1-probnorm(sobel));
run;


proc print data=sobel label noobs;
var sobel p;
format p pvalue6.;
label sobel="Sobel Test" p="Pr>|Z|";
run;

 

소벨테스트 결과

위 결과 p-vaue=0.01 로 유의하여 FPG는 유의한 매개변수라고 할 수있습니다.

 

* 아래 사이트 방문하여 소벨테스트 결과를 볼수 있습니다.

 

http://quantpsy.org/sobel/sobel.htm

 

Proc causalmed 이용하기

 

동일하게 indirect effect p-valur=0.01로 M변수의 매개효과가 유의합니다.

 

< SAS Code >

 

proc standard data=test_data out=std_test_data m=0 s=1; 
var Y X M;
run;
proc causalmed data=std_test_data;
   model  Y = X M;
   mediator M  = X;
run;

causalmed output

 

댓글