R에서 수정하는 방법: 모델에 별칭 계수가 있습니다.


R에서 발생할 수 있는 오류는 다음과 같습니다.

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

이 오류는 일반적으로 회귀 모형에 다중 공선성이 존재할 때 발생합니다. 즉, 모델에 있는 두 개 이상의 예측 변수가 높은(또는 완벽하게) 상관 관계가 있습니다.

이런 일이 발생하면 변수가 다른 변수의 “별칭”이라고 말하며 이는 회귀 모델을 피팅할 때 문제를 일으킵니다.

다음 예에서는 실제로 이 오류를 수정하는 방법을 보여줍니다.

오류를 재현하는 방법

R에 다음 회귀 모델을 적용한다고 가정합니다.

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

다중 공선성이 문제인지 확인하기 위해 car 패키지의 vive() 함수를 사용하여 모델의 각 예측 변수에 대한 VIF 값을 계산할 수 있습니다.

 library (car)

#calculate VIF values for predictor variables
lively(model)

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

모델에 별칭 계수가 있습니다”라는 오류가 표시됩니다.

이는 모델의 두 개 이상의 예측 변수가 완벽하게 상관되어 있음을 알려줍니다.

오류를 수정하는 방법

어떤 예측 변수가 완벽하게 상관되어 있는지 확인하려면 cor() 함수를 사용하여 변수에 대한 상관 행렬을 만들 수 있습니다.

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

변수 x2x3상관계수는 1임을 알 수 있습니다. 이는 이 두 변수가 완벽하게 상관되어 있기 때문에 오류를 유발하고 있음을 나타냅니다.

이 오류를 수정하려면 회귀 모델을 다시 조정하고 이 두 변수 중 하나를 제외하면 됩니다.

둘 다 회귀 모델에서 정확히 동일한 정보를 제공하므로 어떤 변수를 생략하는지는 중요하지 않습니다.

단순화를 위해 x3을 제거하고 회귀 모델을 다시 피팅해 보겠습니다.

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

다중 공선성은 더 이상 문제가 되지 않으므로 이번에는 모델의 VIF 값을 계산할 때 오류가 발생하지 않습니다.

관련 항목: R에서 VIF 값을 계산하고 해석하는 방법

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.

R에서 복구하는 방법: 교체 길이가 0입니다.
R에서 수정하는 방법: 인수에 다른 줄 수가 포함됩니다.
R에서 수정하는 방법: 인수가 숫자도 아니고 논리도 아닙니다. return na

의견을 추가하다

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