Sử dụng hàm 'bí danh' trong R để xem biến nào phụ thuộc tuyến tính. Loại bỏ các biến phụ thuộc và hàm vif sẽ hoạt động chính xác.
formula <- as.formula(Spring_Autumn ~ Oct + Nov + Dec + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + X1min + X3min + X7min + X30min + X90min + X1max + X3max + X7max + X30max + X90max + BF + Dmin + Dmax+ LP + LPD + HP + HPD + RR + FR + Rev, data = IHA_stats)
fit <-lm(formula)
#the linearly dependent variables
ld.vars <- attributes(alias(fit)$Complete)$dimnames[[1]]
#remove the linearly dependent variables variables
formula.new <- as.formula(
paste(
paste(deparse(formula), collapse=""),
paste(ld.vars, collapse="-"),
sep="-"
)
)
#run model again
fit.new <-lm(formula.new)
vif(fit.new)
LƯU Ý:Điều này sẽ không hoạt động trong trường hợp bạn có các biến giả được tạo tự động giống hệt với các biến khác. Các tên biến bị lộn xộn. Bạn có thể tạo bản hack của riêng mình để vượt qua nó.