R에서 강력한 회귀를 수행하는 방법(단계별)


강력한 회귀는 작업 중인 데이터 세트에 이상치나 영향력 있는 관측치가 있을 때 일반 최소 제곱 회귀의 대안으로 사용할 수 있는 방법입니다.

R에서 강력한 회귀를 수행하려면 다음 구문을 사용하는 MASS 패키지의 rlm() 함수를 사용할 수 있습니다.

다음 단계별 예는 주어진 데이터 세트에 대해 R에서 강력한 회귀를 수행하는 방법을 보여줍니다.

1단계: 데이터 생성

먼저 작업할 가짜 데이터세트를 만들어 보겠습니다.

 #create data
df <- data. frame (x1=c(1, 3, 3, 4, 4, 6, 6, 8, 9, 3,
                      11, 16, 16, 18, 19, 20, 23, 23, 24, 25),
                 x2=c(7, 7, 4, 29, 13, 34, 17, 19, 20, 12,
                      25, 26, 26, 26, 27, 29, 30, 31, 31, 32),
                  y=c(17, 170, 19, 194, 24, 2, 25, 29, 30, 32,
                      44, 60, 61, 63, 63, 64, 61, 67, 59, 70))

#view first six rows of data
head(df)

  x1 x2 y
1 1 7 17
2 3 7 170
3 3 4 19
4 4 29 194
5 4 13 24
6 6 34 2

2단계: 일반 최소제곱 회귀 수행

다음으로, 일반 최소 제곱 회귀 모델을 피팅하고 표준화된 잔차 의 플롯을 만들어 보겠습니다.

실제로는 절댓값이 3보다 큰 표준화 잔차를 이상값으로 간주하는 경우가 많습니다.

 #fit ordinary least squares regression model
ols <- lm(y~x1+x2, data=df)

#create plot of y-values vs. standardized residuals
plot(df$y, rstandard(ols), ylab=' Standardized Residuals ', xlab=' y ') 
abline(h= 0 ) 

그래프에서 약 3의 표준화된 잔차를 갖는 두 개의 관측치가 있음을 알 수 있습니다.

이는 데이터 세트에 두 가지 잠재적 이상값이 있음을 의미하므로 대신 강력한 회귀 분석을 통해 이점을 얻을 수 있습니다.

3단계: 강력한 회귀 수행

다음으로 rlm() 함수를 사용하여 강력한 회귀 모델을 맞춰보겠습니다.

 library (MASS)

#fit robust regression model
robust <- rlm(y~x1+x2, data=df)

이 강력한 회귀 모델이 OLS 모델과 비교하여 데이터에 더 잘 맞는지 여부를 확인하기 위해 각 모델의 잔차 표준 오차를 계산할 수 있습니다.

잔차 표준 오차(RSE)는 회귀 모델에서 잔차의 표준 편차를 측정하는 방법입니다. CSR 값이 낮을수록 모델이 데이터에 더 잘 적합할 수 있습니다.

다음 코드는 각 모델의 RSE를 계산하는 방법을 보여줍니다.

 #find residual standard error of ols model
summary(ols)$sigma

[1] 49.41848

#find residual standard error of ols model
summary(robust)$sigma

[1] 9.369349

로버스트 회귀 모델의 RSE가 일반 최소 제곱 회귀 모델의 RSE보다 훨씬 낮다는 것을 알 수 있습니다. 이는 로버스트 회귀 모델이 데이터에 더 잘 맞는다는 것을 의미합니다.

추가 리소스

R에서 단순 선형 회귀를 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 다항식 회귀를 수행하는 방법

의견을 추가하다

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