27.통계데이터분석 - 회귀분석 - 매개효과분석.Rmd
0.02MB
27.통계데이터분석---회귀분석---매개효과분석.html
1.92MB
27.통계데이터분석 - 회귀분석 - 매개효과분석
2022-09-16
https://www.youtube.com/watch?v=2PamBrMhJ1Y&list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&index=28
- 목표: 회귀분석을 이용한 매개효과분석 수행
1. 매개효과분석(mediation effect analysis) 개요
- 매개효과/ 매개변수 정의
- 매개효과: 변수 X,M,Y가 있다면 1st변수 X가 2nd변수 M에 영향을 미치고 이어 2nd변수 M이 다시 3rd변수 Y에 영향을 미치는 연쇄적 영향관계를 검정함
- 매개변수: 이 때 독립변수 X와 종속변수 Y사이에서 일련의 영향관계가 어떠한 과정을 거쳐 발생하는지 설명하는 변수 M을 매개변수라고 함
- 매개변수는 두 변수 간 영향 관계가 발생하는 이유를 설명함. 즉, 독립변수 X와 종속변수 Y간 관계에 내재된 간접적인 영향관계 프로세스를 설명함
- 이런 의미에서 매개효과는 간접효과라고도 불림
- 예를 들어서 소득이 높은 사람은 기대수명이 높음. 그러나 이러한 영향관계는 보다 나은 의료 환경의 혜택을 매개로 더 잘 설명될 수 있음
- 매개효과분석과 매개효과모델
- 독립변수 X가 종속변수 Y에 미치는 영향이 제3의 변수 M을 통해 작동하는지 검정함
- 제3의 변수 M이 X와 Y간의 매개변수로서의 역할을 하는지 검정
- 매개변수는 독립변수와 종속변수 간 영향 관계에 작동 메커니즘을 설명함
- 매개효과분석을 위한 모델을 위와 같이 그림으로 표현을 해 볼 수 있음
- 총효과모델:
- 매개변수 없이 독립변수와 종속변수만으로 구성된 모델임
- 이때 회귀계수c는 종속변수 Y에 대한 독립변수 X의 총효과를 나타냄
- 매개효과모델
- 매개효과모델: 총효과모델에 제3의 변수 M이 추가된 모델임
- 직접효과: 회귀계수c’은 제3의 변수 M을 통제한 상태에서 Y에 대한 X의 직접효과를 나타냄
- 통제: ’제3의 변수 M을 통제’했다는 얘기는 X와 Y간의 관계를 설명하는 회귀모델에 M을 추가로 투입한다는 뜻임
- 그러면 M이 Y에 미치는 영향을 통제한 상태에서 X와 Y간의 영향관계 파악가능
- 간접효과: 회귀계수 a와 b의 곱인 ab는 Y에 대한 X의 간접효과를 나타냄
- 매개효과분석: 이러한 간접효과가 존재하는지 검정
- 총효과계산: 총효과는 ‘직접효과+간접효과’, 즉, c=c’+ab로 산출할 수 있음
- 매개효과모델(매개변수M 포함)에서 Y에 대한 X의 직접효과(c’)가 총효과모델(매개변수M 포함 x)에서의 총효과(c)보다 작으면 매개효과 존재한다고 함
- If c’ < c, then 매개효과가 존재 (부분매개)
- 매개효과모델에서 Y에 대한 X의 직접효과(c’)가 0이면 완전매개라고 함
- If c’ = 0, then 완전매개
2. 매개효과분석 절차
- 매개효과분석은 일반적으로 바론 & 케니가 제시한 절차에 따라 수행함
- 매개효과분석 절차
- 바론 & 케니의 매개효과분석은 간접효과에 대한 통계적 검정결과를 제시하지 않기 때문에 매개효과 존재 여부 확인 후 소벨 검정이나 부트스트랩핑으로 간접효과에 대한 통계적 유의성 검정을 수행해야 함
- 절차1: 바론 & 케니의 매개효과분석을 통한 매개효과 존재 여부 확인
- 절차2: (매개효과 존재 시) 소벨검정/부트스트랩핑으로 간접효과 유의성
- 바론 & 케니의 매개효과분석 절차
- 단계별로 세 번의 회귀 분석을 수행
- 1단계: 회귀모델 \(Y=b_0+cX\) 생성
- 독립변수 X의 회귀변수 c가 통계적으로 유의한지 검정하며, 유의해야 다음 단계로 진행
- 바론 & 케니가제시한 방법은 독립변수 X와 종속변수 Y 간 유의한 관계가 없으면 매개할 것도 없기 때문에 다음 단계로의 진행은 의미가 없음
- 이는 논쟁의 여지가 있고 실제 많은 경우 X와 Y 사이 유의적 영향관계가 없어도 매개변수 존재검정을 위한 다음 단계 진행이 가능하다고 알려짐
- 2단계: 회귀모델 \(M=b_0+aX\) 생성
- 독립변수 X의 회귀계수 a가 통계적으로 유의한 지 검정하며, 유의해야 다음 단계로 진행
- X와 M간 어떠한 유의적 관계도 없으면 M은 매개변수가 아닌 Y에 대한 제 3의 독립변수 일 뿐이기 때문임
- X가 M에 영향을 미칠 때만 M의 매개효과는 의미가 있음
- 3단계: 회귀모델 \(Y=b_0+c'X+bM\) 생성
- 즉 X를 통제한 후, 매개변수 M과 종속변수 Y간의 관계를 검정함
- 회귀모델로 본다면, 종속변수 Y에 2개의 독립변수가 있는 것처럼 보임
- 매개효과가 존재하려면
- 매개변수 M의 회귀계수 b가 통계적으로 유의해야 함
- 반면, 종속변수 Y에 대한 독립변수 X의 영향 c’은 사라지거나 적어도 약화돼야 함
- 종속변수 Y에 대한 독립변수 X의 영향(c’)이
- 종전 c에 비해 없어지면, (더는 통계적으로 유의하지 않으면) 매개변수 “M은 X와 Y사이를 완전매개한다”라 하고,
- 종전 c에 비해 작아지면, “부분매개한다”라고 함
3. 매개효과분석 예
- 자동차의 배기량과 연비 간의 영향관계에 대한 매개효과분석
- 배기량이 커지면 연비는 감소하는데 배기량이 연비감소의 진짜 이유 아닐 수 있음
- 배기량이 커지면 그에 따라 자동차 무게가 증가하고 증가된 무게는 연비를 저하시킬 수 있다는 새로운 가설을 검정하고자 함
- 배기량 증가 -> 무게 증가를 가져오고,
- 무게 증가 -> 연비감소를 가져오는
- 일련의 영향관계를 분석하고자 함
- 여기서 자동차 무게는 배기량-연비 간 영향관계를 설명하는 매개변수 역할을 수행
- 이러한 매개효과 모델은 바론 & 케니 매개효과분석 절차에 따라 검정해 볼 수 있음
- 1단계: 종속변수(연비:mpg)와 독립변수(배기량:disp)의 관계분석
- 배기량이 연비에 유의한 영향을 미치게 되면 2단계로 진행함
- 2단계: 매개변수(무게:wt)와 독립변수(배기량:disp) 간 영향 관계 검정
- 배기량이 무게에 유의한 영향을 미쳐야만 3단계로 진행함
- 3단계
- 종속변수와 독립변수 및 매개변수 간 관계를 설명해 주는 회귀모델을 구축 ->
- 매개변수와 종속변수의 관계가 유의한지 평가 ->
- 유의한 영향관계를 가지면 배기량과 연비 간의 회귀계수 평가
- 배기량과 연비 간 회귀계수가 매개변수인 무게가 포함되지 않은 상태에서의 회귀계수보다 작아지면 “매개효과가 존재한다” 라고 결론 내림
- 즉, If c’ < c, then 매개효과가 존재 (If c’ = 0, then 완전매개)
- 1단계: 종속변수(연비:mpg)와 독립변수(배기량:disp)의 관계분석
4. 매개효과 분석 수행: 바론 & 케니 매개효과분석
- mtcars데이터셋 사용해 매개효과 모델 분석
- mtcars데이터셋은 32개 자동차 모델별 자동차에 관한 정보가 11개의 변수에 저장돼 있음
- 바론 & 케니 매개효과분석 절차에 따라, 1단계로 독립변수와 종속변수 간 관계분석
model.total <- lm(mpg ~ disp, data=mtcars)
summary(model.total)
##
## Call:
## lm(formula = mpg ~ disp, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.8922 -2.2022 -0.9631 1.6272 7.2305
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.599855 1.229720 24.070 < 2e-16 ***
## disp -0.041215 0.004712 -8.747 9.38e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.251 on 30 degrees of freedom
## Multiple R-squared: 0.7183, Adjusted R-squared: 0.709
## F-statistic: 76.51 on 1 and 30 DF, p-value: 9.38e-10
- 결과해석
- 독립변수의 유의확률이 유의수준 0.05에 비해 매우 작음
- 1단계 분석결과에 따르면, 유의수준 0.05에서 배기량은 연비에 유의한 영향을 미침
- 배기량이 연비에 미치는 총효과는 독립변수의 회귀계수인 -0.04임
- 독립변수와 종속변수 간 총효과가 유의함을 확인했기 때문에 2단계로 진행 가능
- 2단계: 독립변수와 매개변수 간 관계를 검정함
model.M <- lm(wt ~ disp, data=mtcars)# 매개변수 wt,독립변수 disp
summary(model.M)
##
## Call:
## lm(formula = wt ~ disp, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.89044 -0.29775 -0.00684 0.33428 0.66525
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.5998146 0.1729964 9.248 2.74e-10 ***
## disp 0.0070103 0.0006629 10.576 1.22e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4574 on 30 degrees of freedom
## Multiple R-squared: 0.7885, Adjusted R-squared: 0.7815
## F-statistic: 111.8 on 1 and 30 DF, p-value: 1.222e-11
- 결과해석
- 독립변수는 통계적으로 유의함
- 유의수준 0.05에서 배기량은 무게와 유의한 영향관계를 가짐
- 독립변수와 매개변수 간 관계의 유의성 조건을 충족했기에 3단계로 이동가능
- 3단계: 독립변수를 통제한 상태에서 매개변수와 종속변수 간 영향관계를 검정함
model.Y <- lm(mpg ~ disp + wt, data=mtcars) # 종속변수 mpg, 독립변수 disp, 매개변수 wt
summary(model.Y)
##
## Call:
## lm(formula = mpg ~ disp + wt, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.4087 -2.3243 -0.7683 1.7721 6.3484
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 34.96055 2.16454 16.151 4.91e-16 ***
## disp -0.01773 0.00919 -1.929 0.06362 .
## wt -3.35082 1.16413 -2.878 0.00743 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.917 on 29 degrees of freedom
## Multiple R-squared: 0.7809, Adjusted R-squared: 0.7658
## F-statistic: 51.69 on 2 and 29 DF, p-value: 2.744e-10
- 결과해석
- 매개변수 무게는 유의확률 0.007로 유의수준 0.05에서 통계적으로 유의함
- 독립변수 배기량은 유의확률 0.06로 유의수준 0.05에서 통계적으로 유의하지 않음
- 따라서 이 매개효과 모델에서 “배기량과 연비 간 직접효과는 모집단에서 존재하지 않는다”고 볼 수 있음
- 그런데 1단계 모델에서 배기량과 연비 간 관계는 통계적으로 유의하므로, “배기량과 연비 간 총효과가 존재”하는 반면, 3단계 모델에서 매개변수 무게의 투입으로”배기량과 연비 간 직접효과가 사라짐”
- 즉, 통계적으로 유의하지 않아, c’< c 도 성립하지 않고 c’ = 0이 됨
- 따라서 “무게는 배기량과 연비 간 관계를 완전매개한다”고 볼 수 있음
- 배기량과 연비 간의 간접효과 계산
- 간접효과는 ’독립변수와 매개변수 간의 회귀계수’와 ’매개변수와 종속변수 간의 회귀계수’의 곱으로 산출
- 독립변수와 매개변수 간의 회귀계수는 2단계 모델에서 확인됨
- 종속변수로 무게, 독립변수로 배기량을 사용한 회귀계수는 0.007임
- 매개변수와 종속변수 간의 회귀계수는 3단계 모델에서 확인됨
- 매개변수 무게와 종속변수 연비 간 회귀계수는 -3.351임
- 배기량과 연비 간의 간접효과는 이 두 회귀계수의 곱인 -0.0235임
0.007*(-3.351)
## [1] -0.023457
5. 간접효과의 통계적 유의성 검정
- 하지만 이러한 바론 & 케니에 의한 방법은 매개변수에 의한 간접효과의 통계적 유의성을 검정해주진 않음
- 총효과 모델에서 배기량과 연비 간 유의한 영향관계가 있었음에도 불구하고 매개효과 모델에서 배기량과 연비 간 직접효과가 사라지는 이러한 영향관계의 변화가 통계적으로 유의한 지는 알 수 없음
- 이러한 통계적 유의성 검정을 위해 전통적으로 소벨 검정/부트스트래핑 방법을 이용함
5-1. 소벨(Sobel) 검정 설명
- 소벨 검정을 위해
- “독립변수와 매개변수 간의 회귀계수 및 표준오차”와
- “매개변수와 종속변수 간의 회귀계수 및 표준오차”가 필요함
- 간접효과 유의성 검정을 위한 검정 통계량 계산식
\[Z=\frac{a×b} {\sqrt{a^2×SE^2_b+b^2×SE^2_a}}\]
- 계산된 값을 Z값으로 간주해 표준정규분포 상에서 유의성을 검정함
- 따라서 “이 값이 절대값으로 1.96보다 크면는 간접효과는 통계적으로 유의하다”라고 판단
- 소벨검정 수행절차
- 소벨 검정은 매개변수 M이 존재할 때, 독립변수 X가 종속변수 Y에 미치는 영향이 통계적으로 유의하게 감소하는지 검정함
- multilevel 패키지 sobel()를 이용
5-2. sobel(), pnorm() or mediation.test() - 간접효과 유의성 검정을 위한 z값, 간접효과에 대한 p값 계산
- sobel() 인수설명
- pred: 독립변수 지정(disp)
- med: 매개변수 지정(wt)
- out: 종속변수 지정(mpg)
library(multilevel)
model.sob <- sobel(pred=mtcars$disp, med=mtcars$wt, out=mtcars$mpg)
model.sob
## $`Mod1: Y~X`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.59985476 1.229719515 24.070411 3.576586e-21
## pred -0.04121512 0.004711833 -8.747152 9.380327e-10
##
## $`Mod2: Y~X+M`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 34.96055404 2.164539504 16.151497 4.910746e-16
## pred -0.01772474 0.009190429 -1.928609 6.361981e-02
## med -3.35082533 1.164128079 -2.878399 7.430725e-03
##
## $`Mod3: M~X`
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.599814597 0.1729964404 9.247673 2.737804e-10
## pred 0.007010325 0.0006628588 10.575896 1.222320e-11
##
## $Indirect.Effect
## [1] -0.02349038
##
## $SE
## [1] 0.008457775
##
## $z.value
## [1] -2.777371
##
## $N
## [1] 32
- 결과해석
- 바론 & 케니의 매개효과분석에서 생성했던 3개 희귀모델을 차례로 생성하고 검정함
- 이어서 간접효과에 대한 추정치($Indirect.Effect), 표준오차($SE), Z값($z.value) 산출
- Z값으로 간접효과에 대한 p값을 계산할 수 있음
- 이 Z값에 대응되는 확률을 표준정규분포 상에서 계산함
- Z값이 - 이므로 Z값 이하 값 발생확률 계산 시, 표준정규분포 왼쪽꼬리 부분면적이 계산됨
- 여기서는 오른쪽 꼬리부분 면적도 필요하기 때문에
- 이 Z값을 절대값으로 환산해 한쪽 부분 꼬리부분면적을 구한 후
- 2배를 곱해서 왼쪽과 오른쪽 꼬리부분 확률의 합을 계산함
- 표준정규분포에서 확률계산을 위해 pnorm() 이용
- 오른쪽 꼬리부분 면적 계산을 위해 lower.tail=FALSE 지정
- 왼쪽 꼬리부분 면적의 합까지 산출하기 위해 곱하기 2를 해 유의확률 계산
pnorm(abs(model.sob$z.value), lower.tail=FALSE)
## [1] 0.002740032
pnorm(abs(model.sob$z.value), lower.tail=FALSE) * 2
## [1] 0.005480063
- 결과해석
- 유의확률 0.005로 유의수준 0.05에서 유의하기 때문에 “매개효과가 존재한다” 할 수 있음
- bda패키지 mediation.test()를 이용해도 간접효과에 대한 p값을 계산할 수 있음
- mediation.test() 인수설명
- mv: 매개변수 지정
- iv: 독립변수 지정
- dv: 종속변수 지정
- mediation.test() 인수설명
library(bda)
mediation.test(mv=mtcars$wt, iv=mtcars$disp, dv=mtcars$mpg)
## Sobel Aroian Goodman
## z.value -2.777370744 -2.76588301 -2.789002812
## p.value 0.005480063 0.00567689 0.005287061
- 결과해석
- Z값은 유의수준 0.05에서 통계적으로 유의하게 때문에
- 배기량과 연비가 간 관계는, 무게에 의해 유의하게 매개된다는 간접효과를 확인할 수 있음
5-3. mediate() - 간접효과 추정 및 간접효과에 대한 p값 계산
- 소벨 검정의 단점
- 소벨 검정이 전통적으로 널리 사용되어 은 매개효과 검정방법이긴 하지만
- 제약1: 간접효과가 정규분포를 따라야 한다는 가정을 충족해야 하고
- 제약2: 표본크기가 상대적으로 커야 한다는 제약이 있음
- 따라서 최근에는 정규성 과정으로부터 자유롭지 못하거나 상대적으로 표본 크기가 작을 경우에 사용할 수 있는 부트스트래핑 방법을 선호하는 경향이 있음
- 부트스트래핑 방법의 장점
- 다수의 무작위 표본을 생성해 간접효과를 추정하고
- 이렇게 생성한 간접효과의 경험적 분포를 토대로 간접효과의 통계적 유의성을 검정
- 따라서 특정 확률분포에 의존하지 않기 때문에 비교적 자유롭게 활용할 수 있음
- mediation패키지 mediate()로 부트스트래핑 방법에 의한 매개효과 분석 수행
- mediate()는 2개의 회귀모델, 매개변수 모델과 종속변수 모델이 필요함
- 매개변수 모델: 매개변수를 종속변수로 하는 모델(model.M)
- 종속변수 모델: 종속변수를 종속변수, 독립·매개변수를 독립변수로 하는 모델(model.Y)
- 이 두 모델을 생성후 mediate() 인수로 제공하고, 동일결과를 제현하기 위해 seed번호지정
- mediate()는 2개의 회귀모델, 매개변수 모델과 종속변수 모델이 필요함
library(mediation)
model.M <- lm(wt ~ disp, data=mtcars) # 매개변수 wt,독립변수 disp
model.Y <- lm(mpg ~ disp+wt, data=mtcars) # 종속변수 mpg,독립·매개변수 disp·wt
set.seed(123)
- mediate()의 인수설명
- model.m: 매개변수 모델을 지정
- model.y: 종속변수 모델을 지정
- treat: 독립변수 지정
- mediator: 매개변수 지정
- 부트스트래핑를 위해서는 boot·sims 인수를 아래와 같이 지정해야 함
- boot: TRUE를 지정하고
- sims: 추출할 표본의 개수 지정. 기본 값은 1000개이고 여기서는 500을 지정
model.mediation <- mediate(model.m = model.M,
model.y = model.Y,
treat = "disp",
mediator = "wt",
boot = TRUE, sims = 500)
summary(model.mediation)
##
## Causal Mediation Analysis
##
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME -0.0235 -0.0389 -0.01 0.004 **
## ADE -0.0177 -0.0342 0.00 0.024 *
## Total Effect -0.0412 -0.0509 -0.03 <2e-16 ***
## Prop. Mediated 0.5699 0.2182 0.95 0.004 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 32
##
##
## Simulations: 500
- 결과해석
- 위 식을 실행하면 500개의 무작위 표본을 추출해 경험적 분포를 토대로 간접효과의 통계적 유의성을 검정해줌
- Total Effect: 이 행은 총효과를 나타냄. 즉, 바론 & 케니 1단계 회귀모델에서 독립변수가 종속변수에 미치는 영향을 나타냄
- ADE(Average Direct Effect): 직접효과를 의미함. 바론 & 케니 3단계 회귀모델에서 종속변수에 대한 독립변수의 영향을 나타냄
- ACME(Average Cousal Mediation Effect): 간접효과, 즉, 매개효과로 (총효과-직접효과) 로 계산될 수 있음
- 매개효과 분석의 목표는 간접효과를 추정하고 이에 대한 통계적 유의성을 검정하는 것임
- ACME(간접효과)의 p-value는 0.004로 유의수준 0.05에 비해 작아 “매개효과는 존재한다”고 볼 수 있음
- 총효과와 직접효과의 회귀계수 값을 비교하면
- 총효과에 비해 직접효과가 절대값으로 더 크기가 작아짐
- 따라서 “무게는 배기량과 자동차 연비 간의 관계를 부분매개한다”고 볼 수가 있음
- 근데 유의수준을 0.05가 아닌 0.01로 낮추면
- 배기량과 연비 간 총효과 Total Effect는 통계적으로 유의한 반면
- 매개변수 모델에서 직접효과인 ADE는 더 이상 통계적으로 유의하지 않음
- 따라서 유의수준 0.01에서 본다면 “자동차 무게는 배기량과 연비 간 관계를 완전매개한다”고 볼 수 있음
- 위 식을 실행하면 500개의 무작위 표본을 추출해 경험적 분포를 토대로 간접효과의 통계적 유의성을 검정해줌
- 총효과·직접효과·간접효과의 추정치와 95% 신뢰구간을 그래프로 표현할 수 있음
- plot() 인수 설명
- 1st: mediate()에서 생성된 모델 객체
- cex: 점의 크기 지정
- col: 색상 지정
- lwd: 선의 굵기 지정
- main: 그래프의 제목 지정
plot(model.mediation, cex=1.2, col="royalblue", lwd=2,
main="Mediation Effect Analysis")
- 도표해석
- 가운데 있는 파란색점은 각각 간접효과·직접효과·총효과의 추정치를 나타냄
- 그리고 점 왼쪽과 오른쪽으로 뻗어나간 선은 95% 신뢰구간을 의미함