La régression pas à pas fournit-elle une estimation biaisée du carré de la population?


14

En psychologie et dans d'autres domaines, une forme de régression par étapes est souvent employée et implique les éléments suivants:

  1. Examinez les prédicteurs restants (il n'y en a pas dans le modèle au début) et identifiez le prédicteur qui entraîne le plus grand changement du carré r;
  2. Si la valeur de p de la variation du carré r est inférieure à alpha (généralement 0,05), incluez ce prédicteur et revenez à l'étape 1, sinon arrêtez.

Par exemple, consultez cette procédure dans SPSS .

La procédure est régulièrement critiquée pour un large éventail de raisons (voir cette discussion sur le site Web de Stata avec des références ).

En particulier, le site Web de Stata résume plusieurs commentaires de Frank Harrell. Je suis intéressé par la réclamation:

[régression pas à pas] donne des valeurs R au carré qui sont fortement biaisées pour être élevées.

Plus précisément, certaines de mes recherches actuelles portent sur l'estimation du r-carré de la population . Par carré de population, je me réfère au pourcentage de variance expliqué par les données de population générant l'équation dans la population. Une grande partie de la littérature existante que j'examine a utilisé des procédures de régression pas à pas et je veux savoir si les estimations fournies sont biaisées et, dans l'affirmative, dans quelle mesure. En particulier, une étude typique aurait 30 prédicteurs, n = 200, un alpha d'entrée de 0,05 et des estimations du carré r autour de 0,50.

Ce que je sais:

  • De manière asymptotique, tout prédicteur avec un coefficient non nul serait un prédicteur statistiquement significatif, et r carré serait égal à r carré ajusté. Ainsi, une régression asymptotiquement pas à pas devrait estimer l'équation de régression vraie et le vrai carré de la population.
  • Avec des échantillons de plus petite taille, l'omission possible de certains prédicteurs se traduira par un carré r plus petit que si tous les prédicteurs avaient été inclus dans le modèle. Mais aussi le biais habituel du r-carré aux données d'échantillonnage augmenterait le r-carré. Ainsi, ma pensée naïve est que, potentiellement, ces deux forces opposées pourraient dans certaines conditions aboutir à un r-carré non biaisé. Et plus généralement, la direction du biais dépendrait de diverses caractéristiques des données et des critères d'inclusion alpha.
  • La définition d'un critère d'inclusion alpha plus rigoureux (par exemple, 0,01, 0,001, etc.) devrait réduire le r-carré estimé attendu car la probabilité d'inclure tout prédicteur dans toute génération de données sera moindre.
  • En général, le carré r est une estimation biaisée à la hausse du carré r de la population et le degré de ce biais augmente avec plus de prédicteurs et des échantillons de plus petite taille.

Question

Alors finalement, ma question:

  • Dans quelle mesure le carré r de la régression pas à pas se traduit-il par une estimation biaisée du carré r de la population?
  • Dans quelle mesure ce biais est-il lié à la taille de l'échantillon, au nombre de prédicteurs, au critère d'inclusion alpha ou aux propriétés des données?
  • Y a-t-il des références sur ce sujet?

3
La version principale de la FAQ Stata que vous citez était antérieure aux stratégies de modélisation de la régression du livre de Frank Harrell de 2001 . New York: Springer, qui est la référence que je commencerais à partir d'ici.
Nick Cox

3
Je recommande fortement de lire le livre de @FrankHarrell que Nick Cox mentionne là-bas; J'assigne régulièrement mes étudiants de troisième cycle et honore les étudiants qui en lisent (en particulier le chapitre 4). Il est assez facile de voir que le R ^ 2 est biaisé en présence d'une sélection de variables en simulant de nombreux ensembles de données (par exemple n = 100, p = 50) qui ont une corrélation de population de zéro, puis en faisant la procédure de sélection de variables que vous souhaitez montrer dessus.
Glen_b -Reinstate Monica

5
R2

3
Si la population R ^ 2 est nulle, je pense que l'échantillon R ^ 2 est biaisé même si vous n'utilisez pas la sélection pas à pas. Je soupçonne (mais je ne suis pas sûr) qu'il serait également biaisé si la population R ^ 2 est non nulle.
mark999

2
R2

Réponses:


5

R2R2R2


Surtout lorsque le nombre de prédicteurs candidats dépasse le nombre d'observations!
Alexis

2

Aperçu

R2ρ2 , alors ce qui suit peut être dit: Bien que cela soit vrai pour certaines combinaisons de processus de génération de données, de taille d'échantillon, de jeu de prédicteurs et de critère de valeur p d'entrée de prédicteur, ce n'est pas vrai dans tous les cas.

R2ρ2R2ρ2R2R2R2ρ2 .

J'ai exécuté quelques simulations dans différentes conditions. La valeur de p de l'entrée du prédicteur qui a donné une estimation approximativement non biaisée variait souvent entre 0,05 et 0,0001. Cependant, je n'ai pas encore lu de simulations qui explorent explicitement cela ou fournissent des conseils sur le type de biais à attendre de la publication publiéeR2 valeurs utilisant une valeur p d'entrée donnée et compte tenu des caractéristiques des données.

R2ρ2ρ2

Simulation

La simulation suivante a quatre prédicteurs non corrélés où le carré de la population est de 40%. Deux des prédicteurs expliquent chacun 20% et les deux autres prédicteurs expliquent 0%. La simulation génère 1 000 ensembles de données et estime le r-carré de régression pas à pas en pourcentage pour chaque ensemble de données.

# source("http://bioconductor.org/biocLite.R")
# biocLite("maSigPro") # provides stepwise regression function two.ways.stepfor 
library(maSigPro)
get_data <- function(n=100) {
    x1 <- rnorm(n, 0, 1)
    x2 <- rnorm(n, 0, 1)
    x3 <- rnorm(n, 0, 1)
    x4 <- rnorm(n, 0, 1)
    e  <- rnorm(n, 0, 1)
    y <- 1 * x1 + 1 * x2 + sqrt(3) * e
    data <- data.frame(y, x1, x2, x3, x4)
    data
}

get_rsquare <- function(x, alpha=.05) {
    fit <- two.ways.stepfor(x$y, subset(x, select=-y),  alfa=alpha)
        class(fit) <-'lm'
        summary.lm(fit)$r.square * 100
}

Le code suivant renvoie le carré r avec un alpha pour l'entrée de .01, .001, .0001 et .00001.

set.seed(1234)
simulations <- 1000
datasets <- lapply(seq(simulations), function(X) get_data(n=100))
rsquares01 <- sapply(datasets, function(X) get_rsquare(X, alpha=.01))
rsquares001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.001))
rsquares0001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.0001))
rsquares00001 <- sapply(datasets, function(X) get_rsquare(X, alpha=.00001))

Les résultats suivants indiquent le biais pour chacune des cinq entrées alpha. Notez que j'ai multiplié le carré r par 100 pour le rendre plus facile à voir les différences.

mean(rsquares01) - 40 
mean(rsquares001) - 40 
mean(rsquares0001) - 40 
mean(rsquares00001) - 40 
sd(rsquares01)/sqrt(simulations) # approximate standard error in estimate of bias 

Les résultats suggèrent que l'alpha des entrées de .01 et .001 entraîne un biais positif et l'alpha des entrées de .0001 et .00001 entraîne un biais négatif. Donc, vraisemblablement, un alpha d'entrée autour de .0005 entraînerait une régression par étapes non biaisée.

> mean(rsquares01) - 40 
[1] 1.128996
> mean(rsquares001) - 40 
[1] 0.8238992
> mean(rsquares0001) - 40 
[1] -0.9681992
> mean(rsquares00001) - 40 
[1] -5.126225
> sd(rsquares01)/sqrt(simulations) # approximate standard error in estimate of bias
[1] 0.2329339

La principale conclusion que j'en tire est que la régression pas à pas n'est pas intrinsèquement biaisée dans une direction particulière. Cela dit, il sera au moins quelque peu biaisé pour toutes les valeurs p sauf une de l'entrée prédictive. Je comprends l'argument de @Peter Flom selon lequel, dans le monde réel, nous ne connaissons pas le processus de génération de données. Cependant, j'imagine qu'une exploration plus détaillée de la façon dont ce biais varie, n, alpha d'entrée, processus de génération de données et procédure de régression pas à pas (par exemple, y compris le passage en arrière) pourrait éclairer considérablement la compréhension de ce biais.

Les références

  • Harrell, FE (2001). Stratégies de modélisation de la régression: avec applications aux modèles linéaires, régression logistique et analyse de survie. Springer.

C'est toujours biaisé (je dirais), vous venez de réduire beaucoup le biais.
Jeremy Miles

@JeremyMiles Oui. Mais il n'est pas intrinsèquement biaisé dans une direction particulière.
Jeromy Anglim

Je serais très intéressé de voir la position de @FrankHarrell à ce sujet.
Glen_b -Reinstate Monica

1
SW(p)R2ppSW(p)pSW(p)p

1
@whuber J'ai modifié le dernier paragraphe pour, je l'espère, clarifier certains des points que vous mentionnez.
Jeromy Anglim
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.