Mediation analysis는 통계적 방법 중 하나로, 독립변수와 종속변수 사이의 관계를 매개변수(또는 중재변수)를 통해 어떻게 설명할 수 있는지 탐구한다. 이 분석을 통해, 독립변수가 종속변수에 미치는 직접적인 영향 뿐 아니라 매개변수를 통한 간접적인 영향도 평가할 수 있다.
구체적인 상황을 예로 들어 코드와 함께 살펴보도록 하겠다. 예를 들어, 독립변수는 Exercise이고 종속변수는 Energy Level이며 매개변수는 Sleep Quality인 상황이다. 다시 말해 운동 시간이 일일 에너지 수준에 미치는 영향이 있을 것이고, 그 사이에서 운동 시간이 수면의 질을 매개로 하여 일일 에너지 수준에 미치는 영향을 알아보고자 하는 것이다. 분석은 mediation R 패키지를 활용하여 수행하며, 분석 결과로 ACME(Average Causal Mediation Effects)와 ADE(Average Direct Effects)를 확인할 수 있다.
library(mediation)
# 매개변수 모델과 결과 모델 지정
med_model <- lm(SleepQuality ~ Exercise, data = data)
out_model <- lm(EnergyLevel ~ Exercise + SleepQuality, data = data)
# 매개 분석 수행
med_out <- mediate(med_model, out_model, treat = "Exercise", mediator = "SleepQuality",
robustSE = TRUE, sims = 500)
# 결과 확인
summary(med_out)
Python으로 분석하는 방법도 간단히 살펴보도록 하겠다.
import pandas as pd
import numpy as np
import statsmodels.api as sm
from statsmodels.formula.api import ols
# 경로 1 분석: 운동 시간이 수면의 질에 미치는 영향
model_a = ols('SleepQuality ~ Exercise', data=df).fit()
# 경로 2 분석: 수면의 질이 일일 에너지 수준에 미치는 영향 (운동 시간을 조절한 후)
model_b = ols('EnergyLevel ~ SleepQuality + Exercise', data=df).fit()
# 분석 결과 확인
a_summary = model_a.summary()
b_summary = model_b.summary()
a_summary, b_summary
이렇게 했을 때 a_summary와 b_summary에서 분석의 결과로서 각각 운동 시간이 수면의 질에 미치는 영향과, 수면의 질이 운동 시간을 고려한 후에 일일 에너지 수준에 미치는 영향과 운동 시간이 일일 에너지 수준에 미치는 영향을 확인할 수 있다. 이 때 운동 시간이 수면의 질을 매개로 하여 일일 에너지 수준에 미치는 간접 효과는 경로 1에서 운동 시간이 수면의 질에 미치는 영향과 경로 2에서 수면의 질이 일일 에너지 수준에 미치는 영향을 곱하여 확인할 수 있다. 이 경우에 간접 효과의 통계적 유의성은 직접적으로 검증할 수 없지만, 부트스트랩이나 다른 통계 방법론을 활용하여 이를 검증할 수도 있다.
방광암이란? (0) | 2024.04.10 |
---|---|
흉터란? (0) | 2024.03.30 |
ADHD란? (0) | 2024.03.30 |
다제내성 결핵이란? (0) | 2024.03.30 |
보건학과 건강 과학 그리고 역학 (0) | 2024.02.25 |