R의 lm() 함수에서 잔차를 추출하는 방법


다음 구문을 사용하여 R의 lm() 함수에서 잔차를 추출할 수 있습니다.

 fit$residuals

이 예에서는 lm() 함수를 사용하여 선형 회귀 모델을 피팅하고 결과 이름을 fit 으로 지정했다고 가정합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

관련 항목: R의 lm() 함수에서 R-제곱을 추출하는 방법

예: R의 lm()에서 잔차를 추출하는 방법

10명의 농구 선수가 플레이한 시간, 총 파울, 총 득점에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

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

포인트 = β 0 + β 1 (분) + β 2 (파울)

이 회귀 모델에 맞게 lm() 함수를 사용할 수 있습니다.

 #fit multiple linear regression model
fit <- lm(points ~ minutes + fouls, data=df)

그런 다음 fit$residuals를 입력하여 모델에서 잔차를 추출할 수 있습니다.

 #extract residuals from model
fit$residuals

         1 2 3 4 5 6 7 
 2.0888729 -0.7982137 0.6371041 -3.5240982 1.9789676 -1.7920822 1.9306786 
         8 9 10 
-1.7048752 0.5692404 0.6144057

데이터베이스에는 총 10개의 관측값이 있으므로 각 관측값에 하나씩 10개의 잔차가 있습니다.

예를 들어:

  • 첫 번째 관측치의 잔차는 2,089 입니다.
  • 두 번째 관측치의 잔차는 -0.798 입니다.
  • 세 번째 관측치의 잔차는 0.637 입니다.

등등.

그런 다음 원하는 경우 적합치에 대한 잔차 플롯을 만들 수 있습니다.

 #store residuals in variable
res <- fit$residuals

#produce residual vs. fitted plot
plot(fitted(fit), res)

#add a horizontal line at 0 
abline(0,0)

x축은 적합치를 표시하고 y축은 잔차를 표시합니다.

이상적으로는 등분산성 가정이 충족되도록 잔차가 명확한 패턴 없이 0 주위에 무작위로 분산되어야 합니다.

위의 잔차 플롯에서 잔차가 명확한 패턴 없이 0 주위에 무작위로 흩어져 있는 것처럼 보이는 것을 볼 수 있습니다. 이는 등분산성 가정이 충족될 가능성이 있음을 의미합니다.

추가 리소스

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

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

의견을 추가하다

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