랜덤 효과를 고려한 후 두 개 이상의 예측 변수가 동일 선상이 될 수 있습니까?랜덤/혼합 효과를 고려한 후의 공선 성
제 경우에는 모델링 이전에 공선 성을 테스트했습니다. VIF를 사용하면 모든 것이 체크 아웃됩니다. 그러나 여러 모델의 순위 결정 (IC 사용)은 예측 인자 사이를 진정으로 구분할 수 있는지 여부를 불확실하게 만듭니다.
아이디어가 있으십니까?
ps! 공선 성과 같은 관련성이 높은 태그를 추가 할 수 있습니까?
랜덤 효과를 고려한 후 두 개 이상의 예측 변수가 동일 선상이 될 수 있습니까?랜덤/혼합 효과를 고려한 후의 공선 성
제 경우에는 모델링 이전에 공선 성을 테스트했습니다. VIF를 사용하면 모든 것이 체크 아웃됩니다. 그러나 여러 모델의 순위 결정 (IC 사용)은 예측 인자 사이를 진정으로 구분할 수 있는지 여부를 불확실하게 만듭니다.
아이디어가 있으십니까?
ps! 공선 성과 같은 관련성이 높은 태그를 추가 할 수 있습니까?
여기에 나와있는 해결책 중 일부는 blog post입니다. 그들은 각각 lmer
및 lme
모델 개체에 대한 VIF를 lmer
및 nlme
R 패키지에서 각각 계산하는 함수를 만들기 위해 몇 가지 코드를 사용합니다. 아래 함수의 코드를 복사했습니다. 한 번 그 코드를 실행하면
vif.lme <- function (fit) {
## adapted from rms::vif
v <- vcov(fit)
nam <- names(fixef(fit))
## exclude intercepts
ns <- sum(1 * (nam == "Intercept" | nam == "(Intercept)"))
if (ns > 0) {
v <- v[-(1:ns), -(1:ns), drop = FALSE]
nam <- nam[-(1:ns)] }
d <- diag(v)^0.5
v <- diag(solve(v/(d %o% d)))
names(v) <- nam
v }
, 당신은 R 환경에서 새로운 기능, vif.lme
을 실행할 수 있습니다. 나는 임의의 데이터 세트와 정보가없는 무작위 효과를 사용하여 아래에 예를 든다. 나는 정보가없는 무작위 효과를 사용하여 nlme
내의 결과가 기본 R의 lm
과 같은 매개 변수 값을 생성합니다. 그런 다음 위의 코드를 사용하여 vif
car
의 차이점 인플레이션 요인을 계산합니다. 선형 모델에 대한 VIF를 계산하는 데 사용되는 패키지로 동일한 출력을 제공함을 나타냅니다.
#make 4 vectors- c is used as an uninformative random effect for the lme model
a<-c(1:10)
b1<-c(2,4,6,8,10,100,14,16,18,20)
b2<-c(1,9,2,4,5,6,4,3,2,-1)
c<-c(1,1,1,1,1,1,1,1,1,1)
test<-data.frame(a,b1,b2,c)
#model a as a function of b1 and b2, and c as a random effect
require(nlme)
fit<-lme(a~b1+b2, random=~1|c,data=test)
#see how the model fits
summary(fit)
#check variance inflation factors
vif.lme(fit)
#create a new regular linear regression model and check VIF using the car package.
#answers should be the same, as our random effect above was totally uninformative
require(car)
fit2<- lm(a~b1+b2,data=test)
#check to see that parameter fits are the same.
summary(fit2)
#check to see that variance inflation factors are the same
vif(fit2)