R에서 다중 공선성을 테스트하는 방법


회귀 분석에서 다중 공선성은 두 개 이상의 예측 변수가 서로 높은 상관 관계를 갖고 있어 회귀 모델에서 고유하거나 독립적인 정보를 제공하지 않는 경우에 발생합니다.

예측 변수 간의 상관 정도가 충분히 높으면 회귀 모델을 피팅하고 해석할 때 문제가 발생할 수 있습니다.

회귀 모델에서 다중 공선성을 탐지하는 가장 간단한 방법은 분산 팽창 인자(흔히 VIF 라고 약칭함)라고 알려진 측정항목을 계산하는 것입니다.

VIF는 모델의 예측 변수 간 상관 관계의 강도를 측정합니다. 1과 양의 무한대 사이의 값을 사용합니다.

우리는 VIF 값을 해석하기 위해 다음과 같은 경험 법칙을 사용합니다.

  • VIF = 1: 주어진 예측 변수와 모델의 다른 예측 변수 간에 상관 관계가 없습니다.
  • 1과 5 사이의 VIF: 주어진 예측 변수와 모델의 다른 예측 변수 사이에 중간 정도의 상관 관계가 있습니다.
  • VIF > 5 : 주어진 예측 변수와 모델의 다른 예측 변수 간에 강한 상관 관계가 있습니다.

다음 예에서는 모델의 각 예측 변수에 대한 VIF 값을 계산하여 R의 회귀 모델에서 다중 공선성을 탐지하는 방법을 보여줍니다.

예: R의 다중 공선성 테스트

다양한 농구 선수에 대한 정보가 포함된 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

점수를 응답 변수로 사용하고 포인트 , 어시스트리바운드를 예측 변수로 사용하여 다중 선형 회귀 모델을 적합화한다고 가정합니다.

모델의 각 예측 변수에 대한 VIF를 계산하려면 car 패키지의 vive() 함수를 사용할 수 있습니다.

 library (car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
lively(model)

  points assists rebounds 
1.763977 1.959104 1.175030 

각 예측 변수에 대한 VIF 값을 볼 수 있습니다.

  • 포인트: 1.76
  • 어시스트: 1.96
  • 리바운드: 1.18

모형 내 예측변수의 각 VIF 값은 1에 가까우므로 모형에서는 다중공선성이 문제가 되지 않습니다.

참고 : 모형에서 다중 공선성이 문제로 판명되는 경우 대부분의 경우 가장 빠른 해결 방법은 상관 관계가 높은 변수를 하나 이상 제거하는 것입니다.

제거하는 변수는 어쨌든 중복되고 모델에 고유하거나 독립적인 정보를 거의 추가하지 않기 때문에 이는 종종 허용되는 솔루션입니다.

추가 리소스

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

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

의견을 추가하다

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