가변수 회귀분석(Dummy Variable Regression)은 범주형 변수를 회귀 분석에 포함하기 위해 가변수를 사용하는 기법입니다. 이 방법은 범주형 데이터를 수치형 데이터로 변환하여 회귀 모델에 포함할 수 있게 합니다.
\(\)가변수(Dummy Variable)란?
가변수는 범주형 변수를 0과 1로 변환한 이진 변수입니다. 예를 들어, 성별 변수를 ‘남성’과 ‘여성’으로 구분할 때, ‘남성’은 1, ‘여성’은 0으로 코딩할 수 있습니다.
가변수 생성 방법
가변수를 생성하는 방법은 다음과 같습니다:
- 범주형 변수의 각 범주에 대해 새로운 변수를 생성합니다.
- 각 범주는 해당 범주에 속하면 1, 그렇지 않으면 0으로 코딩됩니다.
- \( k \)개의 범주를 가진 변수의 경우, \( k-1 \)개의 가변수를 생성하여 사용합니다. 이는 다중공선성 문제를 피하기 위해서입니다.
예시: 가변수 회귀분석
가변수를 사용하여 회귀분석을 수행하는 예시를 들어보겠습니다.
데이터셋
다음은 샘플 데이터셋입니다:
학생 | 시험 점수 | 성별 |
---|---|---|
1 | 85 | 남성 |
2 | 90 | 여성 |
3 | 78 | 여성 |
4 | 92 | 남성 |
5 | 88 | 여성 |
여기서 ‘성별’ 변수를 가변수로 변환하여 회귀분석에 포함하겠습니다.
가변수 생성
성별 변수를 가변수로 변환합니다:
학생 | 시험 점수 | 남성 | 여성 |
---|---|---|---|
1 | 85 | 1 | 0 |
2 | 90 | 0 | 1 |
3 | 78 | 0 | 1 |
4 | 92 | 1 | 0 |
5 | 88 | 0 | 1 |
이제 여성 변수를 제외하고 남성 변수만 포함합니다(기준 범주로 설정):
학생 | 시험 점수 | 남성 |
---|---|---|
1 | 85 | 1 |
2 | 90 | 0 |
3 | 78 | 0 |
4 | 92 | 1 |
5 | 88 | 0 |
회귀분석 수행
이제 회귀분석 모델을 만들 수 있습니다:
\[ \text{시험 점수} = \beta_0 + \beta_1 \times \text{남성} + \epsilon \]
여기서:
- \(\beta_0\): 여성의 평균 시험 점수
- \(\beta_1\): 남성의 평균 시험 점수와 여성의 평균 시험 점수의 차이
파이썬 코드 예제
다음은 파이썬을 사용한 가변수 회귀분석의 예제입니다:
import pandas as pd
import statsmodels.api as sm
# 데이터 생성
data = {
'학생': [1, 2, 3, 4, 5],
'시험 점수': [85, 90, 78, 92, 88],
'성별': ['남성', '여성', '여성', '남성', '여성']
}
df = pd.DataFrame(data)
# 가변수 생성
df = pd.get_dummies(df, columns=['성별'], drop_first=True)
# 독립 변수와 종속 변수 설정
X = df[['성별_남성']]
y = df['시험 점수']
# 상수항 추가
X = sm.add_constant(X)
# 회귀모델 적합
model = sm.OLS(y, X).fit()
# 결과 출력
print(model.summary())
이 예제는 범주형 변수(성별)를 가변수로 변환하고, 이를 사용하여 회귀 모델을 구축하는 과정을 보여줍니다. 회귀 모델의 결과는 성별이 시험 점수에 미치는 영향을 평가하는 데 사용할 수 있습니다.
예제 2

위 그림은 가변수 회귀분석 결과를 시각화한 것입니다.
- 데이터 포인트: 남성(빨간색)과 여성(파란색)의 시험 점수를 표시합니다.
- 회귀선: 검은 점선은 남성 여부에 따라 예측된 시험 점수를 나타냅니다. 남성(1)일 때와 여성(0)일 때의 차이를 보여줍니다.
회귀분석 결과에서 상수항\((\beta_0)\)는 여성의 평균 시험 점수를 나타내며, 남성 변수의 계수\((\beta_1)\)는 남성의 평균 시험 점수와 여성의 평균 시험 점수의 차이를 나타냅니다. 이 경우, 남성의 시험 점수는 여성보다 평균적으로 약간 더 높은 것으로 나타났습니다.