Connaissez-vous une référence ou un nom pour la façon suivante de rechercher si une technique de modélisation complexe est biaisé?
- Appliquez à l'ensemble de données d'origine. Mesurer ses performances (par exemple, R au carré dans le cadre de la régression).
- Permutez au hasard la variable de réponse pour obtenir un nouvel ensemble de données. Appliquer et mesurer sa performance . [Si les observations sont dépendantes, cette étape est plus compliquée.]
Si est sensiblement différent d'une performance nulle, nous concluons que est biaisé.
L'étape 2 peut être répétée si les ressources le permettent, ce qui entraînerait la distribution nulle de permutation de la mesure de performance. Mais dans mon application, je ne peux pas le faire en raison de problèmes de ressources.
Je me souviens sombrement que cette astuce de "remaniement" a été utilisée par quelqu'un pour enquêter sur le parti pris de la validation croisée avec oubli (dans certains contextes). Je ne sais pas, cependant, s'il était dans ma situation où il pourrait répéter tout le processus une seule fois.
Un exemple en R qui montre la "puissance" de la sélection naïve en arrière:
# 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
Conclusion sur l'exemple: La technique de modélisation choisie est extrêmement sujette au sur-ajustement, au moins dans ce contexte spécifique.
Quelques antécédents
J'ai déjà utilisé cette astuce de remaniement pour vérifier si la validation croisée d'un processus de modélisation fastidieux a été correctement mise en œuvre par moi. Sous une permutation aléatoire, CV a donné un R au carré essentiellement de 0 (comme prévu / souhaité).