R에서 더미 변수를 만드는 방법(단계별)


더미 변수는 범주형 변수를 0 또는 1의 두 값 중 하나를 취하는 숫자 변수로 나타낼 수 있도록 회귀 분석에서 생성하는 변수 유형입니다.

예를 들어, 다음과 같은 데이터 세트가 있고 나이결혼 상태를 사용하여 소득을 예측한다고 가정해 보겠습니다.

회귀 모델에서 결혼 상태를 예측 변수로 사용하려면 이를 더미 변수로 변환해야 합니다.

이는 현재 세 가지 다른 값(“미혼”, “기혼” 또는 “이혼”)을 취할 수 있는 범주형 변수이므로 k -1 = 3-1 = 2개의 더미 변수를 만들어야 합니다.

이 더미 변수를 생성하려면 가장 자주 나타나는 “Single”을 기본 값으로 남겨 둘 수 있습니다. 따라서 결혼 상태를 더미 변수로 변환하는 방법은 다음과 같습니다.

이 튜토리얼에서는 R에서 이 정확한 데이터 세트에 대한 더미 변수를 생성한 다음 이러한 더미 변수를 예측 변수로 사용하여 회귀 분석을 수행하는 방법에 대한 단계별 예를 제공합니다.

1단계: 데이터 생성

먼저 R에서 데이터 세트를 생성해 보겠습니다.

 #create data frame
df <- data. frame (income=c(45000, 48000, 54000, 57000, 65000, 69000,
                          78000, 83000, 98000, 104000, 107000),
                 age=c(23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53),
                 status=c('Single', 'Single', 'Single', 'Single',
                          'Married', 'Single', 'Married', 'Divorced',
                          'Divorced', 'Married', 'Married'))

#view data frame
df

   income age status
1 45000 23 Single
2 48000 25 Single
3 54000 24 Single
4 57000 29 Single
5 65000 38 Married
6 69000 36 Single
7 78000 40 Married
8 83000 59 Divorced
9 98000 56 Divorced
10 104000 64 Married
11 107000 53 Married

2단계: 더미 변수 생성

다음으로, R의 ifelse() 함수를 사용하여 더미 변수를 정의한 다음 회귀 모델을 구축하는 데 사용할 최종 데이터 프레임을 정의할 수 있습니다.

 #create dummy variables
married <- ifelse (df$status == ' Married ', 1, 0)
divorced <- ifelse (df$status == ' Divorced ', 1, 0)

#create data frame to use for regression
df_reg <- data. frame (income = df$income,
                     age = df$age,
                     married = married,
                     divorced = divorced)

#view data frame
df_reg

   income age married divorced
1 45000 23 0 0
2 48000 25 0 0
3 54000 24 0 0
4 57000 29 0 0
5 65000 38 1 0
6 69000 36 0 0
7 78000 40 1 0
8 83000 59 0 1
9 98000 56 0 1
10 104000 64 1 0
11 107000 53 1 0

3단계: 선형 회귀 수행

마지막으로 lm() 함수를 사용하여 다중 선형 회귀 모델을 맞출 수 있습니다.

 #create regression model
model <- lm (income ~ age + married + divorced, data=df_reg)

#view regression model output
summary(model)

Call:
lm(formula = income ~ age + married + divorced, data = df_reg)

Residuals:
    Min 1Q Median 3Q Max 
-9707.5 -5033.8 45.3 3390.4 12245.4 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 14276.1 10411.5 1.371 0.21266   
age 1471.7 354.4 4.152 0.00428 **
married 2479.7 9431.3 0.263 0.80018   
divorced -8397.4 12771.4 -0.658 0.53187   
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8391 on 7 degrees of freedom
Multiple R-squared: 0.9008, Adjusted R-squared: 0.8584 
F-statistic: 21.2 on 3 and 7 DF, p-value: 0.0006865

적합 회귀선은 다음과 같습니다.

소득 = 14,276.1 + 1,471.7*(나이) + 2,479.7*(기혼) – 8,397.4*(이혼)

이 방정식을 사용하여 개인의 연령과 결혼 상태를 기준으로 개인의 추정 소득을 찾을 수 있습니다. 예를 들어, 35세이고 결혼한 사람의 추정 소득은 $68,264 입니다.

소득 = 14,276.2 + 1,471.7*(35) + 2,479.7*(1) – 8,397.4*(0) = $68,264

표의 회귀 계수를 해석하는 방법은 다음과 같습니다.

  • 절편: 절편은 0세 한 사람의 평균 소득을 나타냅니다. 분명히 0년을 가질 수 없으므로 이 특정 회귀 모델에서 절편 자체를 해석하는 것은 의미가 없습니다.
  • 연령: 매년 연령이 증가하면 소득이 평균 $1,471.70 증가합니다. p-값(0.004)이 0.05보다 작으므로 연령은 통계적으로 유의미한 소득 예측 변수입니다.
  • 기혼: 기혼자는 독신자보다 평균 $2,479.70 더 많은 소득을 얻습니다. p-값(0.800)이 0.05 이상이므로 이 차이는 통계적으로 유의하지 않습니다.
  • 이혼한 사람: 이혼한 사람은 독신자보다 평균 $8,397.40 더 적은 소득을 얻습니다. p-값(0.532)이 0.05 이상이므로 이 차이는 통계적으로 유의하지 않습니다.

두 더미 변수 모두 통계적으로 유의하지 않았기 때문에 소득에 예측 가치를 추가하는 것으로 보이지 않으므로 모델에서 예측 변수인 결혼 상태를 제거할 수 있었습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다