Bạn có biết một tham chiếu hoặc tên cho cách sau đây để điều tra nếu một kỹ thuật mô hình phức tạp bị sai lệch?
- Áp dụng cho tập dữ liệu gốc. Đo hiệu suất của nó (ví dụ R bình phương trong cài đặt hồi quy).
- Ngẫu nhiên hoán vị biến trả lời để có được một tập dữ liệu mới. Áp dụng và đo hiệu suất của nó . [Nếu các quan sát phụ thuộc, bước này phức tạp hơn.]P '
Nếu khác biệt đáng kể so với hiệu suất bằng 0, chúng tôi kết luận bị sai lệch. T
Bước 2 có thể được lặp lại nếu tài nguyên cho phép, điều này sẽ dẫn đến phân phối null hoán vị của thước đo hiệu suất. Nhưng trong ứng dụng của tôi, tôi không thể làm điều này vì vấn đề tài nguyên.
Tôi tối nhớ rằng thủ thuật "chia sẻ lại" này đã được ai đó sử dụng để điều tra sự thiên vị của xác thực chéo một lần (trong một số cài đặt). Tôi không biết, tuy nhiên, nếu anh ta ở trong hoàn cảnh của tôi, nơi anh ta có thể lặp lại toàn bộ quá trình chỉ một lần.
Một ví dụ trong R cho thấy "sức mạnh" của lựa chọn lạc hậu ngây thơ:
# Generate random data set. Only random performance is expected.
n <- 100
p <- 30
set.seed(7567)
y <- rnorm(n)
X <- rnorm(n*p)
dim(X) <- c(n, p)
data <- data.frame(y, X)
# Modelling technique: backward selection with OLS
T <- function(data) {
step(lm(y ~ ., data = data), trace = 0)
}
# Performance: R-squared
P <- function(fit) {
summary(fit)$r.squared
}
# Step 1: Compute performance on original data. Happily publish high R-squared...
P(T(data)) # 0.240405
# Step 2: Your mean colleague reshuffles response and gets also R-squared far away from 0
data$y <- data$y[sample(n)]
P(T(data)) # 0.1925726
Kết luận về ví dụ: Kỹ thuật mô hình được chọn là cực kỳ dễ bị quá mức, ít nhất là trong cài đặt cụ thể này.
Một số nền tảng
Tôi đã từng sử dụng thủ thuật chia sẻ lại này để kiểm tra xem việc xác thực chéo một số quy trình mô hình tẻ nhạt có được tôi thực hiện đúng không. Theo một hoán vị ngẫu nhiên, CV đã cho R bình phương về cơ bản là 0 (như mong đợi / mong muốn).