Là đa cộng tuyến tiềm ẩn trong các biến phân loại?


10

Tôi nhận thấy trong khi mày mò với mô hình hồi quy đa biến, có một hiệu ứng đa hình nhỏ nhưng đáng chú ý, được đo bằng các yếu tố lạm phát phương sai, trong các loại của biến phân loại (dĩ nhiên sau khi loại trừ loại tham chiếu).

Ví dụ: giả sử chúng ta có một tập dữ liệu với biến y liên tục và một biến phân loại danh nghĩa x có k giá trị loại trừ lẫn nhau. Chúng tôi mã hóa các giá trị có thể là 0/1 biến giả . Sau đó, chúng tôi chạy mô hình hồi quy . Điểm VIF cho các biến giả hóa ra khác không. Trong thực tế, khi số lượng danh mục tăng lên, VIF tăng lên. Căn giữa các biến giả không xuất hiện để thay đổi VIF.kx1,x2,,xky=b0+b1x1+b2x2++bk1xk1k1

Giải thích trực quan dường như là điều kiện loại trừ lẫn nhau của các loại trong biến phân loại gây ra tính đa hình nhẹ này. Đây có phải là một phát hiện tầm thường hay là một vấn đề cần xem xét khi xây dựng mô hình hồi quy với các biến phân loại?

Câu trả lời:


8

Tôi không thể tái tạo chính xác hiện tượng này, nhưng tôi có thể chứng minh rằng VIF không nhất thiết phải tăng khi số lượng danh mục tăng lên .

Trực giác rất đơn giản: các biến phân loại có thể được thực hiện trực giao bằng các thiết kế thử nghiệm phù hợp. Do đó, nói chung không nên mối quan hệ giữa số lượng danh mục và tính đa hình.

Đây là một Rchức năng để tạo các bộ dữ liệu phân loại với số lượng danh mục cụ thể (cho hai biến độc lập) và số lượng sao chép có thể xác định cho mỗi danh mục. Nó đại diện cho một nghiên cứu cân bằng trong đó mọi sự kết hợp của thể loại được quan sát với số lần bằng nhau, :n

trial <- function(n, k1=2, k2=2) {
  df <- expand.grid(1:k1, 1:k2)
  df <- do.call(rbind, lapply(1:n, function(i) df))
  df$y <- rnorm(k1*k2*n)
  fit <- lm(y ~ Var1+Var2, data=df)
  vif(fit)
}

Áp dụng nó, tôi thấy các VIF luôn ở các giá trị thấp nhất có thể của chúng, , phản ánh sự cân bằng (chuyển thành các cột trực giao trong ma trận thiết kế). Vài ví dụ:1

sapply(1:5, trial) # Two binary categories, 1-5 replicates per combination
sapply(1:5, function(i) trial(i, 10, 3)) # 30 categories, 1-5 replicates

Điều này cho thấy tính đa hình có thể đang tăng lên do sự mất cân bằng ngày càng tăng trong thiết kế . Để kiểm tra điều này, chèn dòng

  df <- subset(df, subset=(y < 0))

trước fitdòng trong trial. Điều này loại bỏ một nửa dữ liệu một cách ngẫu nhiên. Chạy lại

sapply(1:5, function(i) trial(i, 10, 3))

cho thấy các VIF không còn bằng (nhưng chúng vẫn gần với nó, ngẫu nhiên). Chúng vẫn không tăng với nhiều loại hơn: tạo ra các giá trị tương đương.1sapply(1:5, function(i) trial(i, 10, 10))


2

Bạn có các ràng buộc mà bạn có thể thấy là vốn có trong các bản phân phối đa thức, cụ thể là một và chỉ một trong số các sẽ là 1 và tất cả phần còn lại sẽ là 0. Vì vậy, bạn có ràng buộc tuyến tính . Điều đó có nghĩa là trong đó tổng số được lấy qua . Đây là hiệu ứng cộng tác mà bạn đang nhận thấy. Không có gì bất thường hoặc đáng lo ngại về nó.xixi=1x1=1xii1


Tôi không hiểu phân phối đa quốc gia có liên quan gì đến tình huống này. Bạn có thể giải thích?
whuber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.