Hyeyeon blog

R로 다중공선성 구하기 (+ Error in vif.default(model): there are aliased coefficients in the model ) 본문

개발/etc

R로 다중공선성 구하기 (+ Error in vif.default(model): there are aliased coefficients in the model )

Hyeyeon.P 2023. 5. 27. 03:40
반응형

 

1. 다중공선성 이란 

회귀분석에서 발생하는 문제로, 독립변수들 간의 상관관계가 있는 경우에 발생합니다.

다중공선성은 과적합 문제가 발생하여 모델의 예측 성능을 해치고 회귀분석의 해석을 어렵게하기 때문에

회귀분석 전에 반드시 확인하여 없애주어야 합니다. 

2. VIF(Variance Inflation Factor)

VIF는 다중공선성을 측정하는 지표입니다. 

일반적으로 VIF가 1보다 작거나 가까울 경우, 다중공선성은 거의 없다고 판단합니다.

VIF가 1 이상일 경우, 다중공선성이 존재할 가능성이 있다고 보며

VIF가 5 이상일 경우엔 독립변수들 간의 높은 상관관계를 가진다고 판단하여 독립변수를 제거하는 등의 방법을 통해 다중공선성을 해결합니다. 

3. 다중공선성 구하기

(1) VIF를 구하기위해 car library 설치합니다. 

install.packages("car")

(2) 전체 코드 

lm()으로 회귀모형을 생성한 후 car::vif()에 입력하여 VIF를 계산합니다.

library(car)

df <- read.csv("/content/data.csv", fileEncoding ='euc-kr')

# 필요한 독립변수 선택
X <- df[, c("변수1", "변수2", "변수3")]
y <- df$종속변수명

# 회귀 모형 적합
model <- lm(y ~ ., data = X)

# 회귀 모형을 이용한 vif 계산
vif_result <- car::vif(model)

4. 오류 : there are aliased coefficients in the model

다중공선성이 발생하는 독립변수를 삭제하면 해결됩니다.

Error in vif.default(model): there are aliased coefficients in the model

 

728x90
Comments