Skip to main content

범주형 독립변수

독립변수가 범주형인 경우

  • 범주형 변수는 기울기를 곱할 수 없음
  • 연속 변수로 변환하여 모형에 투입
  • 여러 가지 방법이 있으나 가장 많이 사용하는 것은 더미 코딩(dummy coding)
  • Jamovi, R, Python은 자동으로 더미 코딩

더미 코딩 dummy coding

  • 범주형 변수에 범주가 k개 있을 경우 k-1개의 더미 변수를 대신 투입
  • 범주 중에 하나를 기준 reference로 지정
    • 기본적으로 ABC 순으로 먼저 나오는 것이 기준(변경할 수도 있음)
  • 기준를 제외한 범주들은 범주별로 더미 변수를 하나씩 가짐
    • 더미변수는 해당 범주일 경우에만 고려
    • 더미변수의 기울기는 기준과의 차이를 의미

범주가 2개인 경우

ols('price ~ model', df).fit().summary()
modelmodel[T.K3]
Avante0
K31
  • 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()
TRTTRT[T.B]TRT[T.C]
A00
B10
C01
  • 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개 이상일 때는 기준 범주에 따라 결과가 달라짐
    • 분석 전에 기준 범주를 정하고 분석

퀴즈