R에서 glm과 함께 예측 함수를 사용하는 방법(예제 포함)


R의 glm() 함수는 일반화 선형 모델을 피팅하는 데 사용될 수 있습니다. 이 기능은 로지스틱 회귀 모델 , 포아송 회귀 모델 및 기타 복잡한 모델을 피팅하는 데 특히 유용합니다.

모델을 피팅한 후에는 예측() 함수를 사용하여 새 관측값의 응답 값을 예측할 수 있습니다.

이 함수는 다음 구문을 사용합니다.

예측(객체, newdata, 유형 = “응답”)

금:

  • object: glm() 함수를 사용한 모델 조정의 이름
  • newdata: 예측할 새 데이터 프레임의 이름
  • 유형: 수행할 예측 유형입니다.

다음 예에서는 R에서 일반화된 선형 모델을 피팅하는 방법과 모델을 사용하여 이전에 본 적이 없는 새로운 관찰의 응답 값을 예측하는 방법을 보여줍니다.

예: R에서 glm과 함께 예측 함수 사용

이 예에서는 mtcars 라는 내장 R 데이터 세트를 사용합니다.

 #view first six rows of mtcars data frame
head(mtcars)

                   mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1

우리는 변수 disphp를 사용하여 응답 변수 am (자동차의 변속기 유형: 0 = 자동, 1 = 수동)을 예측하는 다음 로지스틱 회귀 모델을 적합하게 할 것입니다.

 #fit logistic regression model
model <- glm(am ~ disp + hp, data=mtcars, family=binomial)

#view model summary
summary(model)

Call:
glm(formula = am ~ disp + hp, family = binomial, data = mtcars)

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-1.9665 -0.3090 -0.0017 0.3934 1.3682  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 1.40342 1.36757 1.026 0.3048  
available -0.09518 0.04800 -1.983 0.0474 *
hp 0.12170 0.06777 1.796 0.0725 .
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43,230 on 31 degrees of freedom
Residual deviance: 16,713 on 29 degrees of freedom
AIC: 22,713

Number of Fisher Scoring iterations: 8

그런 다음 이 모델을 사용하여 다음 코드를 사용하여 새 자동차에 자동 변속기(am=0) 또는 수동 변속기(am=1)가 있을 확률을 예측할 수 있습니다.

 #define new observation
newdata = data. frame (disp=200, hp=100)

#use model to predict value of am
predict(model, newdata, type=" response ")

         1 
0.00422564

모델은 새 자동차가 수동변속기일 확률(am=1)이 0.004 라고 예측합니다. 이는 이번 신차에 자동변속기가 탑재될 가능성이 매우 높다는 뜻이다.

여러 개의 새 자동차가 포함된 데이터베이스가 있는 경우 한 번에 여러 예측을 할 수도 있습니다.

예를 들어, 다음 코드는 적합 모델을 사용하여 세 대의 새 자동차에 대한 수동 변속기 확률을 예측하는 방법을 보여줍니다.

 #define new data frame of three cars
newdata = data. frame (disp=c(200, 180, 160),
                     hp=c(100, 90, 108))

#view data frame
newdata

  hp disp
1,200 100
2 180 90
3,160,108

#use model to predict value of am for all three cars
predict(model, newdata, type=" response ")

          1 2 3 
0.004225640 0.008361069 0.335916069 

결과를 해석하는 방법은 다음과 같습니다.

  • 자동차 1이 수동변속기일 확률은 0.004 이다.
  • 자동차 2가 수동변속기일 확률은 0.008 이다.
  • 자동차 3이 수동변속기일 확률은 0.336 이다.

코멘트

새 데이터 프레임의 열 이름은 모델을 생성하는 데 사용된 데이터 프레임의 열 이름과 정확히 일치해야 합니다.

이전 예에서 모델을 생성하는 데 사용한 데이터 프레임에는 예측 변수에 대한 다음 열 이름이 포함되어 있습니다.

  • 표시하다
  • HP

따라서 newdata 라는 새 데이터 프레임을 생성할 때 열 이름도 지정했습니다.

  • 표시하다
  • HP

열 이름이 일치하지 않으면 다음 오류 메시지가 표시됩니다.

평가 오류(predvars, data, env)

예측() 함수를 사용할 때 이 점을 명심하십시오.

추가 리소스

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

R에서 단순 선형 회귀를 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 다항식 회귀를 수행하는 방법
R에서 예측 구간을 만드는 방법

의견을 추가하다

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