계층적 회귀분석(Hierarchical Regression Analysis)은 여러 단계에 걸쳐 독립 변수를 추가하면서 각 단계마다 모형의 적합도를 평가하는 회귀 분석 기법입니다. 이를 통해 각 독립 변수가 종속 변수에 미치는 영향을 단계별로 평가할 수 있습니다. 계층적 회귀분석은 주로 변수 간의 관계를 이해하고, 각 변수의 추가적인 설명력을 확인하는 데 사용됩니다.
주요 단계
1. 기본 모형 설정:
- 첫 번째 단계에서는 기초 변수를 포함한 기본 모형을 설정합니다. 예를 들어, 통제 변수를 먼저 포함합니다.
2. 새로운 변수 추가:
- 다음 단계에서는 새로운 독립 변수를 추가하여 모형을 확장합니다. 이를 통해 새로운 변수가 종속 변수에 미치는 추가적인 설명력을 평가할 수 있습니다.
3. 모형 비교:
- 각 단계마다 결정 계수(R²)와 같은 적합도 지표를 비교하여 새로운 변수의 추가가 모형의 설명력을 얼마나 향상시키는지 평가합니다.
- F-검정이나 변화된 R²의 유의성 검정을 통해 각 단계의 모형이 이전 모형에 비해 유의하게 나은지 확인할 수 있습니다.
예시
- 1단계: 인구 통계학적 변수(나이, 성별 등)를 포함한 기본 모형
- 2단계: 여기에 사회경제적 변수(소득, 교육 수준 등)를 추가
- 3단계: 추가로 심리적 변수(스트레스 수준, 삶의 만족도 등)를 포함
분석 절차
- 데이터 준비:
- 분석에 사용할 데이터를 정리하고, 결측값을 처리합니다.
- 모형 구축:
- 기본 모형을 설정하고, 점차적으로 독립 변수를 추가하는 방식으로 계층적 모형을 구축합니다.
- 회귀분석 수행:
- 각 단계마다 회귀분석을 수행하고, 적합도 지표를 기록합니다.
- 결과 해석:
- 각 단계별로 R², 변화된 R², F-검정 결과 등을 비교하여 변수의 추가적인 설명력을 평가합니다.
코드 예제 (Python – Statsmodels 활용)
아래는 Python을 사용하여 계층적 회귀분석을 수행하는 예제 코드입니다.
import pandas as pd
import statsmodels.api as sm
# 예시 데이터 생성
data = {
'age': [23, 45, 31, 35, 46],
'gender': [1, 0, 0, 1, 0],
'income': [50000, 60000, 55000, 65000, 70000],
'education': [12, 16, 14, 18, 20],
'stress_level': [5, 6, 4, 7, 8],
'life_satisfaction': [7, 8, 6, 9, 7]
}
df = pd.DataFrame(data)
# 1단계: 인구 통계학적 변수 포함
X1 = df[['age', 'gender']]
X1 = sm.add_constant(X1)
model1 = sm.OLS(df['life_satisfaction'], X1).fit()
print(model1.summary())
# 2단계: 사회경제적 변수 추가
X2 = df[['age', 'gender', 'income', 'education']]
X2 = sm.add_constant(X2)
model2 = sm.OLS(df['life_satisfaction'], X2).fit()
print(model2.summary())
# 3단계: 심리적 변수 추가
X3 = df[['age', 'gender', 'income', 'education', 'stress_level']]
X3 = sm.add_constant(X3)
model3 = sm.OLS(df['life_satisfaction'], X3).fit()
print(model3.summary())
위의 코드를 실행하면 각 단계별 회귀분석 결과가 출력됩니다. 이를 통해 각 단계에서 추가된 변수들이 종속 변수에 미치는 영향을 확인하고, 모형의 설명력이 어떻게 변화하는지 평가할 수 있습니다.