더미코딩 :: 통계 - mindscale
Skip to content

더미코딩

범주형 변수는 기울기를 곱할 수 없습니다. 그래서 회귀분석에서 범주형 변수를 독립변수로 투입할 때는 연속 변수로 변환하여 모형에 투입하게 됩니다. 이렇게 변환하는 방법에는 여러 가지가 있으나, 가장 많이 사용하는 것은 더미 코딩(dummy coding)이라는 방법입니다.

범주형 변수에 범주가 k개 있을 경우 k-1개의 더미 변수를 대신 투입합니다. 이때 범주 중에 하나를 기준(reference)으로 지정합니다. 기본적으로 ABC 순으로 먼저 나오는 것이 기준입니다(변경할 수도 있음). 기준를 제외한 범주들은 범주별로 더미 변수를 하나씩 가집니다.

범주가 2개인 경우

중고차 데이터에서 model 변수에는 AvanteK3 두 가지 범주가 있습니다. ABC 순으로 Avante가 먼저이므로 이를 기준 범주로 지정하고, 나머지 K3에 해당하는 더미변수 model[T.K3]를 모형에 투입합니다. 이때 더미변수는 다음과 같이 변환됩니다.

model model[T.K3]
Avante 0
K3 1

간단히 생각하면 0 = No, 1 = Yes로 이해하면 됩니다.

m = ols('price ~ model', df).fit()
m.summary()
m = lm(price ~ model, df)
summary(m)

회귀분석을 실시하면 절편은 833, 기울기는 80이 됩니다. Avante의 경우 가격 예측치는 $833 + 80 \times 0 = 833$만원이 됩니다. 그리고 K3의 경우에는 $833 + 80 \times 1 = 913$만원이 됩니다. 따라서 절편 833만원은 기준 범주인 Avante의 가격 예측치가 되고, 기울기 80만원은 K3의 예측치와 기준인 Avante의 예측치의 차이가 됩니다.

Question

범주형 변수 pet을 회귀분석에 투입하려고 합니다. pet에는 dogcat, 두 종류의 범주가 있습니다. 이때 더미코딩을 한다면 기준범주는 무엇이 됩니까?

  • dog
  • cat
  • 알 수 없음

위의 경우 회귀분석에 실제 투입되는 더미 변수는 모두 몇 개입니까?

  • 0개
  • 1개
  • 2개
  • 3개

위의 경우 회귀분석에서 다른 독립변수가 없을 때 절편(intercept)은 무엇을 의미합니까?

  • dog의 예측값
  • cat의 예측값
  • dog의 예측값과 cat의 예측값의 차이

위의 경우 회귀분석에서 다른 독립변수가 없을 때 더미변수의 기울기는 무엇을 의미합니까?

  • dog의 예측값
  • cat의 예측값
  • dog의 예측값과 cat의 예측값의 차이

Question

안전도 데이터를 다운받아 risk를 종속변수로, fuel를 독립변수로 회귀분석을 해보세요.

(01) fuel의 범주는 모두 몇 개입니까?

(02) fuel의 더미변수는 모두 몇 개입니까?

(03) 기준이 되는 범주는 무엇입니까?

(04) diesel은 gasolin에 비해 모집단에서 위험도가 어떻습니까? (유의수준 5%)

  • gas가 diesel보다 낮다
  • gas가 diesel보다 높다
  • gas와 diesel의 위험도는 같다z
  • 결론 내릴 수 없다

범주가 3개 이상인 경우

TRT 변수에는 A, B, C 세 가지 범주가 있습니다. ABC 순으로 A가 제일 먼저이므로 기준 범주로 설정합니다. 그리고 BC에 해당하는 더미변수 TRT[T.B]TRT[T.C]를 추가합니다.

TRT TRT[T.B] TRT[T.C]
A 0 0
B 1 0
C 0 1

A의 경우 BC도 아니므로 더미변수 TRT[T.B]TRT[T.C]는 모두 0이 됩니다. B의 경우에는 TRT[T.B]가 1이 되고, C의 경우에는 TRT[T.C]가 1이 됩니다.

따라서 절편은 A의 예측치, TRT[T.B]의 기울기는 BA의 차이, TRT[T.C]의 기울기는 CA의 차이가 됩니다.

dp = pd.read_excel('depression.xlsx')
m = ols('y ~ TRT', dp).fit()
m.summary()
dp = readxl.read_excel('depression.xlsx')
m = lm(y ~ TRT, dp)
summary(m)

Question

범주형 변수 lunch를 회귀분석에 투입하려고 합니다. lunch에는 ricebread, noodle 세 종류의 범주가 있습니다. 이때 더미코딩을 한다면 기준범주는 무엇이 됩니까?

  • rice
  • bread
  • noodle
  • 알 수 없음

위의 경우 회귀분석에 실제 투입되는 더미 변수는 모두 몇 개입니까?

  • 0개
  • 1개
  • 2개
  • 3개

위의 경우 회귀분석에서 다른 독립변수가 없을 때 절편(intercept)은 무엇을 의미합니까?

  • rice의 예측값
  • bread의 예측값
  • noodle의 예측값

위의 경우 회귀분석에서 다른 독립변수가 없을 때 rice에 해당하는 더미변수의 기울기는 무엇을 의미합니까?

  • rice의 예측값
  • 기준범주와 rice의 예측값 차이

Question

안전도 데이터를 다운받아 risk를 종속변수로, wheels를 독립변수로 회귀분석을 해보세요.

(01) wheels의 범주는 모두 몇 개입니까?

(02) wheels의 더미변수는 모두 몇 개입니까?

(03) 기준이 되는 범주는 무엇입니까?

(04) fwd은 4wd에 비해 모집단에서 위험도가 어떻습니까? (유의수준 5%)

  • fwd가 낮다
  • fwd가 높다
  • 결론을 유보한다
  • 알 수 없다

(05) rwd은 4wd에 비해 모집단에서 위험도가 어떻습니까? (유의수준 5%)

  • rwd가 낮다
  • rwd가 높다
  • 결론을 유보한다
  • 알 수 없다

(05) fwd은 rwd에 비해 모집단에서 위험도가 어떻습니까? (유의수준 5%)

  • fwd가 낮다
  • fwd가 높다
  • 결론을 유보한다
  • 알 수 없다

Question

냥이, 멍뭉, 토깽 3개의 범주를 가지는 반려동물 변수로 귀여움 종속변수를 예측하는 회귀분석을 하였다고 할 때 설명으로 잘못된 것은?

  • 독립변수에 반려동물을 대신해서 더미변수 "반려동물[T.멍뭉]"과 "반려동물[T.토깽]"이 추가될 것이다.
  • 반려동물[T.멍뭉]은 반려동물이 멍뭉일 때 1이고, 이외에는 0일 것이다
  • 반려동물[T.멍뭉]은 멍뭉의 귀여움을 나타낼 것이다
  • 이 회귀분석의 절편은 냥이의 귀여움을 나타낼 것이다

회귀분석과 분산분석