R에서 범주형 변수를 사용하여 선형 회귀를 수행하는 방법


선형 회귀는 하나 이상의 예측 변수와 반응 변수 간의 관계를 수량화하는 데 사용할 수 있는 방법입니다.

종종 하나 이상의 범주형 변수를 예측 변수로 사용하여 회귀 모델을 적합시키고 싶을 수도 있습니다.

이 튜토리얼에서는 R에서 범주형 변수를 사용하여 선형 회귀를 수행하는 방법에 대한 단계별 예를 제공합니다.

예: R의 범주형 변수를 사용한 선형 회귀

12명의 서로 다른 농구 선수에 대한 세 가지 변수에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.

  • 득점한 점수
  • 연습하는데 보낸 시간
  • 사용된 훈련 프로그램
 #create data frame
df <- data. frame (points=c(7, 7, 9, 10, 13, 14, 12, 10, 16, 19, 22, 18),
                 hours=c(1, 2, 2, 3, 2, 6, 4, 3, 4, 5, 8, 6),
                 program=c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3))

#view data frame
df

   points hours program
1 7 1 1
2 7 2 1
3 9 2 1
4 10 3 1
5 13 2 2
6 14 6 2
7 12 4 2
8 10 3 2
9 16 4 3
10 19 5 3
11 22 8 3
12 18 6 3

다음과 같은 선형 회귀 모델을 적합화한다고 가정합니다.

포인트 = β 0 + β 1 시간 + β 2 프로그램

이 예에서 시간은 연속형 변수이지만 프로그램은 프로그램 1, 프로그램 2 또는 프로그램 3의 세 가지 가능한 범주를 취할 수 있는 범주형 변수 입니다.

이 회귀 모델을 적합시키고 “프로그램” 변수가 범주형 변수임을 R에 알리려면 as.factor()를 사용하여 이를 요인으로 변환한 다음 모델을 적합해야 합니다.

 #convert 'program' to factor
df$program <- as. factor (df$program)

#fit linear regression model
fit <- lm(points ~ hours + program, data = df)

#view model summary
summary(fit)

Call:
lm(formula = points ~ hours + program, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-1.5192 -1.0064 -0.3590 0.8269 2.4551 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 6.3013 0.9462 6.660 0.000159 ***
hours 0.9744 0.3176 3.068 0.015401 *  
program2 2.2949 1.1369 2.019 0.078234 .  
program3 6.8462 1.5499 4.417 0.002235 ** 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.403 on 8 degrees of freedom
Multiple R-squared: 0.9392, Adjusted R-squared: 0.9164 
F-statistic: 41.21 on 3 and 8 DF, p-value: 3.276e-05

Estimate 열의 값을 사용하여 적합 회귀 모델을 작성할 수 있습니다.

포인트 = 6.3013 + 0.9744(시간) + 2.2949(프로그램 2) + 6.8462(프로그램 3)

결과의 계수 값을 해석하는 방법은 다음과 같습니다.

  • 시간 : 프로그램이 일정하게 유지된다는 가정 하에 연습 시간이 추가될 때마다 점수가 평균 0.9744 씩 증가합니다.
    • p-값은 0.015로, 이는 연습에 소비한 시간이 α = 0.05 수준에서 점수를 획득하는 데 통계적으로 유의미한 예측 변수임을 나타냅니다.
  • 일정2 : 시간이 일정하다고 가정할 때 일정 2를 사용한 플레이어는 일정 1을 사용한 플레이어보다 평균 2.2949 점 더 많은 점수를 얻었습니다.
    • p-값은 0.078로, 레벨 α = 0.05에서 프로그램 2를 사용한 플레이어와 프로그램 1을 사용한 플레이어가 얻은 점수에 통계적으로 유의미한 차이가 없음을 나타냅니다.
  • 일정3 : 시간이 일정하다고 가정할 때 일정 3을 사용한 플레이어는 일정 1을 사용한 플레이어보다 평균 2.2949 점 더 많은 점수를 얻었습니다.
    • p-값은 0.002로, 일정 3을 사용한 선수와 일정 1을 사용한 선수가 득점한 점수에 α=0.05 수준에서 통계적으로 유의미한 차이가 있음을 나타냅니다.

적합 회귀 모델을 사용하면 선수가 사용한 총 훈련 시간과 사용한 프로그램을 기반으로 선수가 득점한 점수를 예측할 수 있습니다.

예를 들어, 다음 코드를 사용하여 5시간 동안 훈련하고 훈련 일정 3을 사용한 선수가 득점한 점수를 예측할 수 있습니다.

 #define new player
new <- data. frame (hours=c(5), program=as. factor (c(3)))

#use the fitted model to predict the points for the new player
predict(fit, newdata=new)

       1 
18.01923 

모델은 이 새로운 플레이어가 18.01923 점을 획득할 것으로 예측합니다.

새로운 플레이어의 값을 적합한 회귀 방정식에 삽입하여 이것이 올바른지 확인할 수 있습니다.

  • 포인트 = 6.3013 + 0.9744(시간) + 2.2949(프로그램 2) + 6.8462(프로그램 3)
  • 포인트 = 6.3013 + 0.9744(5) + 2.2949(0) + 6.8462(1)
  • 포인트 = 18,019

이는 R의 예측() 함수를 사용하여 계산한 값과 일치합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 단순 선형 회귀를 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 잔차 플롯을 만드는 방법

의견을 추가하다

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