서수 회귀 모델을 실행하고 있습니다. 8 개의 설명 변수가 있는데, 그 중 4 개는 범주 형 ( '0' 또는 '1' ), 4 개는 연속적입니다. 사전에 다중 공선 성이 없는지 확인하고 싶으므로 분산 팽창 계수 ( 자동차 패키지의 vif 함수 )를 사용합니다.
mod1<-polr(Y ~ X1+X2+X3+X4+X5+X6+X7+X8, Hess = T, data=df)
vif(mod1)
그러나 변수 중 하나에 대해 VIF 값이 125이고 다음 경고가 표시됩니다.
경고 메시지 : In vif.default (mod1) : 인터셉트 없음 : vifs가 적절하지 않을 수 있습니다.
그러나 내 종속 변수를 요인 대신 숫자로 변환하고 선형 모델에서 동일한 작업을 수행 할 때 :
mod2<-lm(Y ~ X1+X2+X3+X4+X5+X6+X7+X8, data=df)
vif(mod2)
이번에는 모든 VIF 값이 3 미만이므로 다중 공선 성이 없음을 나타냅니다.
vif 함수 에 대해 혼란 스럽습니다 . 한 모델에 대해 100보다 큰 VIF를 반환하고 다른 모델에 대해 낮은 VIF를 반환하는 방법은 무엇입니까? 두 번째 결과를 고수하고 어쨌든 서수 모델을 수행해야합니까?
이 vif()
함수는 매개 변수 (및 그 하위 집합)의 상관 행렬의 결정자를 사용하여 VIF를 계산합니다. 선형 모델에서는 회귀 계수 만 포함됩니다 (절편 제외). 그만큼vif()
함수는 정렬 된 로짓 모델과 함께 사용하기위한 것이 아닙니다. 따라서 매개 변수의 분산-공분산 행렬을 찾을 때 일반적으로 선형 모델에서 함수에 의해 제외되는 임계 값 매개 변수 (예 : 절편)를 포함합니다. 이것이 경고를받는 이유입니다. 임계 값 매개 변수를 찾아 제거하는 것을 알지 못합니다. VIF는 실제로 설계 행렬의 상호 상관 함수이기 때문에 (종속 변수 또는 선형 예측 변수에서 응답 변수 공간으로의 비선형 매핑에 의존하지 않습니다. glm]), lm()
종속 변수의 숫자 버전을 사용하여 위의 두 번째 솔루션으로 정답을 얻어야합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다