범주형 독립변수
독립변수가 범주형인 경우
- 범주형 변수는 기울기를 곱할 수 없음
- 연속 변수로 변환하여 모형에 투입
- 여러 가지 방법이 있으나 가장 많이 사용하는 것은 더미 코딩(dummy coding)
Jamovi
,R
,Python
은 자동으로 더미 코딩
더미 코딩 dummy coding
- 범주형 변수에 범주가
k
개 있을 경우k-1
개의 더미 변수를 대신 투입 - 범주 중에 하나를 기준
reference
로 지정- 기본적으로 ABC 순으로 먼저 나오는 것이 기준(변경할 수도 있음)
- 기준를 제외한 범주들은 범주별로 더미 변수를 하나씩 가짐
- 더미변수는 해당 범주일 경우에만 고려
- 더미변수의 기울기는 기준과의 차이를 의미
범주가 2개인 경우
ols('price ~ model', df).fit().summary()
model | model[T.K3] |
---|---|
Avante | 0 |
K3 | 1 |
- ABC 순으로 Avante가 기준 → K3의 더미 변수 추가(0 = No, 1 = Yes)
- Avante 예상 가격: 833 + 0 × 80만원
- K3 예상가격: 833 + 1 × 80 = 913만원
더미 변수의 이름
- 더미 변수 이름:
변수[T.범주]
unique
함수를 사용하면 변수에서 범주의 목록을 확인 할 수 있음df.model.unique()
범주가 3개일 경우
dep = pd.read_excel('depression.xlsx')
ols('y ~ TRT', dep).fit().summary()
TRT | TRT[T.B] | TRT[T.C] |
---|---|---|
A | 0 | 0 |
B | 1 | 0 |
C | 0 | 1 |
- ABC 순으로 A가 기준 → B와 C의 더미 변수 추가(0 = No, 1 = Yes)
- A(기준)의 치료효과: 62.3333
- B의 치료효과: 62.3333 – 10.4167 = 51.9166
- C의 치료효과: 62.3333 – 11.0833 = 51.2500
Python에서 기준 범주 바꾸기
- 변수 model의 기준 범주를 K3로 지정하기
m = ols('price ~ C(model, Treatment("K3"))', df).fit()
m.summary() - 범주가 2개일 때는 무엇을 기준 범주로 해도 똑같음
- Avante가 80만원 싸다 ⇔ K3가 80만원 비싸다
- 범주가 3개 이상일 때는 기준 범주에 따라 결과가 달라짐
- 분석 전에 기준 범주를 정하고 분석