티스토리 뷰

반응형

[통계 이야기/PROCESS] - 매개효과 분석(Mediation) 이론

[통계 이야기/PROCESS] - PROCESS 간접효과 분석(매개 변수 1~10개)

[통계 이야기/PROCESS] - PROCESS 간접효과 분석 (syntax 기초)

[통계 이야기/PROCESS] - PROCESS 간접효과 분석 (syntax 심화) ◁ 현재 포스팅

 

전 포스팅에서는 PROCESS syntax를 이용해서 간접효과를 분석해봤는데, 다소 기본적인 syntax만을 사용했어요.

이번에는 기초에서 좀 더 나아가 조금 어려울 수 있는 방법들을 살펴볼게요. 좀 헷갈릴 수 있지만 오직 syntax로만 가능한 방법이예요. 특정한 상황에 아주 요긴하게 쓰일 수 도 있어요!

먼저 기본이

process y= /x= /m= /model=

이거였죠? 여기서 통제 변수를 넣기 위해서는

/cov=

이 명령어가 들어가요. 이렇게 하면 통제 변수가 모든 경로에 들어가게 돼요. 하지만 어떤 때는 특정한 경로에만 통제 변수를 넣고 싶을 수도 있어요. X -> M -> Y 여기서 X -> M에서만 어떤 변수를 통제하고 싶을 수 있잖아요. 어떻게 하면 될까요?

covmy=

라는 명령어를 사용할 수 있어요.

covmy=1이라고 할 경우에는 X -> M 경로에만 통제 변수가 들어가고,

covmy=2라고 할 경우에는 종속 변수가 들어가 있는 모델, 즉 X->M 경로를 제외한 경로들에 통제 변수가 들어가요.

먼저 covmy 명령어 없이,

1) process x=NV/m=CP/y=Int/cov=IL/model=4

covmy 추가해서

2) process x=NV/m=CP/y=Int/cov=IL/covmy=1/model=4

3) process x=NV/m=CP/y=Int/cov=IL/covmy=2/model=4

이들의 결과들을 볼게요.

1) covmy 없는 경우process x=NV/m=CP/y=Int/cov=IL/model=4

통제 변수인 IL이 여기저기 다 들어가있죠?

 

2) covmy=1, process x=NV/m=CP/y=Int/cov=IL/covmy=1/model=4

covmy=1을 넣어줬더니 종속 변수가 매개변수인 모델에서만 통제 변수가 들어갔어요. 

즉, X -> M 이 경로에만 IL이 들어가있어요.

 

3) covmy=2, process x=NV/m=CP/y=Int/cov=IL/covmy=2/model=4

이번에는 종속 변수를 포함한 모델에만 통제 변수가 들어가있죠? 이렇게 좀 더 세부적으로 통제할 수 있어요.

더 나가볼까요?

/cmatrix=

이번에는 cmatrix라는 명령어를 써볼거예요.

예를 들어, 3개의 다른 통제 변수가 있어요. 통제변수1은 X->M 여기에 넣고 싶은데, 통제변수2는 넣기 싫어요. 통제변수3은 모든 경로에 넣고 싶어요. 이런 여러가지 경우의 수가 있잖아요? 이런 경우에는 cmatrix를 이용할 수 있어요.

  통제변수1(cov1) 통제변수2(cov2) 통제변수3(cov3)
매개변수가 종속변수인 모델 (X->M) 1 0 1
종속변수를 포함한 모델
(X->M을 제외한 경로들)
0 1 1

1의 의미는 해당 통제변수를 모델에 넣겠다, 0은 넣지 않겠다의 의미예요.

이를 cmatrix 명령어에 넣으면

/cmatrix=1,0,1,0,1,1

위 가로줄부터(X->M) 좌에서 우로(1,0,1), 그리고 아래 가로줄 좌에서 우로(0,1,1) 차례로 콤마를 넣어 나열하시면 돼요.

 

그럼 만약 모든 통제 변수들을 X->M 경로에서만 보고 싶으면 어떻게 하면 돼죠?

  통제변수1(cov1) 통제변수2(cov2) 통제변수3(cov3)
매개변수가 종속변수인 모델 (X->M) 1 1 1
종속변수를 포함한 모델
(X->M을 제외한 경로들)
0 0 0

이렇게 하면 돼요. 전체 syntax를 써보면,

process x=NV/m=CP/y=Int/cov=cov1 cov2 cov3/cmatrix=1,1,1,0,0,0/model=4

아주 어렵지는 않죠? 처음 이해할때만 좀 까다롭고, 이해하고 나면 별거 없어요.

 

cmatrix in parallel mediation model

이번에는 parallel mediation 모델을 생각해봐요.

이 모델을 위한 기본 syntax는

process x=X/m=M1 M2/y=Y/model=4

여기서 아래의 cmatrix를 적용해볼까요?

  통제변수1(cov1) 통제변수2(cov2) 통제변수3(cov3)
매개변수1이 종속변수인 모델 (X->M1, 즉 a1) 1 0 1
매개변수2가 종속변수인 모델 (X->M2, 즉 a2) 0 1 1
종속변수를 포함한 모델
(위의 두 경로를 제외한 모든 경로, 즉 b1, b2, c')
1 1 0
/cmatrix=1,0,1,0,1,1,1,1,0

이러면 경로 a1에는 cov1과 cov3이 통제되고,

경로 a2에는 cov2와 cov3이 통제되고,

경로 b1, b2, 그리고 X->Y에는 cov1과 cov2가 통제되겠네요.

잘 보이시나요? 추가 설명이 필요하시면 댓 남겨주세요!

 

간접효과간 비교

X->M1->Y 이 간접효과와

X->M2->Y 이 간접효과를 비교해보고 싶진 않나요?

그런 경우에는 contrast라는 명령어를 사용해요.

/contrast=1 (2를 넣으면 부호 상관 없이 절대값을 줘요)
process x=NV/m=IL TL/y=Int/contrast=1/model=4

이 결과값을 볼게요.

이렇게 IL 을 매개로 하는 간접효과, TL을 매개로 하는 간접효과, 그리고 그 둘 간의 차이를 계산해줘요.

이 둘의 차이가 0을 포함하니 95%CI에서 두 경로간에 차이가 없다고 볼 수 있겠죠?

 

그렇다면 만약 더 복잡하게 경로간의 차이를 보고 싶다면요? 이건 PROCESS에서도 경로 계수를 저장한 후 수식을 만들어서 계산을 해줘야 해서 그냥 이해하고 계산기 두드리는게 나아요.

여기서 X->M4->Y가 나머지 간접 경로를 합친 것과 비교를 하고 싶다면

process x=X/m=M1 M2 M3 M4/y=Y/model=4를 돌리고, 나온 값을 이용해서 (a1b1+a2b2+a3b3)-(a4b4)

그리고 CI 들도 이렇게 계산해주면 돼요.

매개 원리만 알면 쉬워요.

/mcx

이 외에도 독립변수가 categorical 이면서 그룹이 3~9개인 경우, mcx라는 명령어를 써서 자동으로 코딩을 바꿔서 분석해줄 수 있어요.

mcx=1 은 dummy coding

mcx=2 는 sequential coding

mcx=3 은 orthogonal coding

mcx=4 는 effect coding

이 코딩에 대한건 설명이 길어지니 생략하도록 할게요. 나중에 다뤄볼 수 있음 좋겠네요. 만약 이 코딩 방법이 익숙하신 분들은 기존에 가장 낮은 수로 기록된 그룹이 reference 그룹이 된다는 점 기억해주시고요.

그리고 혹시 매개 분석의 타당성에 대해 생각 해보신 적 있나요?

X->M->Y 를 분석하는데, X만을 실험적으로 통제하는 경우 즉, X를 manipulate 하는 경우에는 M 과 Y의 방향성은 어떻게 되는 걸까요? 정말 M->Y 일까요? Y->M은 아닐까요?

그래서 일례로, X->M, X->Y를 먼저 실험하고, M->Y를 다른 실험에서 확인하는 경우도 종종 있어요.

한 실험에서 X->M->Y를 보는게 아니라 매개 모델을 나눠서 실험하는거죠.

무작정 매개분석을 돌릴게 아니라 Y가 M에 영향을 주지는 않을까? 도 생각해 볼 문제예요. 

심화 과정이라 좀 더 주절거려봤어요. 이해 안되는 부분은 댓글 언제든 환영이예요.

열논문 하세요!

 

 

도움이 됐다면 커피 한 잔 사주시면 감사하겠습니다^^

 

EPIK is 어려운 지식을 가능한 한 쉽게 공유하는 곳이예요 :)

Hey 👋 I just created a page here. You can now buy me a coffee!

www.buymeacoffee.com

 

반응형
댓글