Quelle est la règle .632+ en amorçage?

107

Ici @gung fait référence à la règle .632+. Une recherche rapide dans Google ne permet pas de comprendre aisément ce que cette règle signifie et dans quel but elle est utilisée. Quelqu'un voudrait-il élucider la règle .632+?

russellpierce
la source

Réponses:

115

Je vais arriver à l'estimateur 0.632, mais le développement sera un peu long:

Supposons que nous voulions prédire avec utilisant la fonction , où peut dépendre de certains paramètres estimés en utilisant les données , par exempleYXff(Y,X)f(X)=Xβ

Une estimation naïve de l'erreur de prédiction est où est une fonction de perte, par exemple une perte d'erreur au carré. Ceci est souvent appelé une erreur d’entraînement. Efron et al. appelle le taux d'erreur apparent ou le taux de resubstitution. Ce n'est pas très bon puisque nous utilisons nos données pour nous adapter à . Ceci a pour conséquence que est biaisé. Vous voulez savoir comment votre modèle réussit à prévoir de nouvelles valeurs.

err¯=1Ni=1NL(yi,f(xi))
L(xi,yi)ferr¯f

Nous utilisons souvent la validation croisée comme un moyen simple d'estimer l'erreur de prédiction extra-échantillon attendue (comment notre modèle gère-t-il les données qui ne figurent pas dans notre ensemble de formation?).

Err=E[L(Y,f(X))]

Une façon populaire de le faire est de faire validation croisée de. Divisez vos données en groupes (par exemple 10). Pour chaque groupe , adaptez votre modèle aux autres groupes et testez-le sur le ème groupe. Notre erreur de prédiction extra-échantillon validée par recoupement est simplement la moyenne où est une fonction d’index qui indique la partition à laquelle l’observation est allouée et est la valeur prédite de utilisant des données qui ne font pas partie de .K K K - 1 k E r r C V = 1KKkK1kκif-κ(i)(xi)xiκ(i)

ErrCV=1Ni=1NL(yi,fκ(i)(xi))
κifκ(i)(xi)xiκ(i)

Cet estimateur est approximativement sans biais pour la véritable erreur de prédiction lorsque et a une plus grande variance et est plus cher pour plus informatiquement . Donc, encore une fois, nous voyons le compromis biais-variance en jeu.KK=NK

Au lieu de la validation croisée, nous pourrions utiliser le bootstrap pour estimer l'erreur de prédiction extra-échantillon. Le rééchantillonnage par bootstrap peut être utilisé pour estimer la distribution d'échantillonnage de toute statistique. Si nos données de formation sont , nous pouvons penser à prendre échantillons de démarrage (avec remplacement) à partir de cet ensemble où chaque est un ensemble de échantillons. Nous pouvons maintenant utiliser nos exemples d'amorçage pour estimer l'erreur de prédiction extra-échantillon: où est la valeur prédite à du modèle ajusté à laX=(x1,,xN)BZ1,,ZBZiN

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib ème ensemble de données bootstrap. Malheureusement, ce n'est pas un très bon estimateur car les échantillons bootstrap utilisés pour produire peuvent avoir contenu . L'estimateur bootstrap -one-out offre une amélioration en imitant la validation croisée et est défini comme : où est l'ensemble des index pour les exemples d'amorçage qui ne contiennent pas l'observation etest le nombre de tels échantillons. fb(xi)xi
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)résout le problème de surajustement, mais reste biaisé (celui-ci est biaisé vers le haut). Le biais est dû à des observations non distinctes dans les échantillons bootstrap qui résultent d'un échantillonnage avec remplacement. Le nombre moyen d'observations distinctes dans chaque échantillon est d'environ (voir la réponse ci- pour une explication de la raison. Pourquoi, en moyenne, chaque échantillon bootstrap contient-il environ les deux tiers des observations? ). Pour résoudre le problème de biais, Efron et Tibshirani ont proposé l’estimateur 0.632: où0.632N
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
est l'estimation naïve de l'erreur de prédiction souvent appelée erreur d'apprentissage. L'idée est de moyenner une estimation biaisée vers le bas et une estimation biaisée vers le haut.

Cependant, si nous avons une fonction de prédiction fortement sur-ajustée (c'est-à-dire ), alors même l'estimateur 0,632 sera biaisé vers le bas. L'estimateur .632+ est conçu pour être un compromis moins biaisé entre et . avec où est le taux d'erreur d'absence d'information, estimé en évaluant le modèle de prédiction sur toutes les combinaisons possibles de cibles et prédicteurs .err¯=0err¯Errboot(1)

Err.632+=(1w)err¯+wErrboot(1)
w=0.63210.368RandR=Errboot(1)err¯γerr¯
γyixi

γ=1N2i=1Nj=1NL(yi,f(xj))
.

Ici, mesure le taux relatif de surajustement. S'il n'y a pas de surajustement (R = 0, lorsque ), il est égal à l'estimateur 0,632.RErrboot(1)=err¯

Bdeonovic
la source
2
Ce sont de bonnes questions, @rpierce, mais elles s’éloignent un peu du sujet central de ce fil. Il serait préférable, du point de vue de l’organisation du CV, de les insérer dans un nouveau fil, afin que les gens puissent plus facilement trouver et utiliser ces informations ultérieurement.
gung - Réintégrer Monica
1
Question 1: stats.stackexchange.com/questions/96764/…
russellpierce
1
@ rpierce Je suis désolé si j'ai rendu ma question un peu difficile à suivre. compare l'ajustement de votre modèle aux données utilisées pour l'ajuster. Donc, pour une perte d’erreur au carré, cela serait simplementerr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
bdeonovic
1
@ rpierce, oui! J'étais un peu général parce que je récupérais une grande partie de ce matériel dans certaines notes de cours.
bdeonovic
53

Vous trouverez plus d' informations dans la section 3 du présent 1 papier. Mais pour résumer, si vous appelez un échantillon de nombres de tirés au hasard et avec remplacement, contient en moyenne environ éléments uniques.Sn{1:n}S(1e1)n0.63212056n

Le raisonnement est le suivant. Nous en échantillonnant fois (de manière aléatoire et avec remplacement) à partir de . Considérons un index particulier . S={s1,,sn}i=1,,n{1:n}m{1:n}

Ensuite:

P(si=m)=1/n

et

P(sim)=11/n

et ceci est vrai (intuitivement, puisque nous échantillonnons avec remplacement, les probabilités ne dépendent pas de )1ini

Ainsi

P(mS)=1P(mS)=1P(i=1nsim)=1i=1nP(sim)=1(11/n)n1e1

Vous pouvez également effectuer cette petite simulation pour vérifier empiriquement la qualité de l'approximation (qui dépend de ):n

n <- 100
fx01 <- function(ll,n){
    a1 <- sample(1:n, n, replace=TRUE)
    length(unique(a1))/n
}
b1 <- c(lapply(1:1000,fx01,n=100), recursive=TRUE)
mean(b1)

1. Bradley Efron et Robert Tibshirani (1997). Améliorations apportées à la validation croisée: La méthode .632+ Bootstrap . Journal de l'American Statistical Association , vol. 92, n ° 438, p. 548-560.

utilisateur603
la source
3
voici un doc pour vous dans la référence - stat.washington.edu/courses/stat527/s14/readings/…
1
(+1) Très bien. Je voudrais seulement rendre la notation un peu plus standard. Données: . IID Variables aléatoires avec . Résultat: . (x1,,xn)S1,,SnP(Si=k)=1nI{1,,n}(k)P(i=1n{Si=k})=1P(i=1n{Sik})=1i=1nP{Sik}=1(11/n)n11/e63.21%
Zen
4
@ rpierce: D'accord. Le bit "évident" que la réponse omet actuellement de mentionner est que . 1e10.63212056
Ilmari Karonen
1
Cette réponse est également excellente. En fait, la réponse acceptée et cette réponse apportent la réponse complète à ma question - mais entre les deux, j’ai le sentiment que celle de Benjamin est plus proche de ce que je recherchais dans une réponse. Cela étant dit, j'aimerais vraiment pouvoir accepter les deux.
russellpierce
1
@ rpierce: Pour citer Céline Dion, "Un conte aussi vieux que le temps / Une chanson aussi vieille que la rime / La belle et la bête." : P
Nick Stauner
8

D'après mon expérience, basée principalement sur des simulations, les variantes de bootstrap 0.632 et 0.632+ n'étaient nécessaires qu'en raison de graves problèmes causés par l'utilisation d'une règle de notation incorrecte, à savoir la proportion "classée" correctement. Lorsque vous utilisez des règles de notation appropriées (par exemple, basées sur la déviance ou score de Brier) ou semi-appropriées (par exemple, index = AUROC), le bootstrap standard d'optimisme Efron-Gong fonctionne parfaitement.c

Frank Harrell
la source
3
Je ne pense pas avoir compris la plupart des choses que vous avez dites ici, Frank. Seriez-vous prêt à clarifier? Il semble que vous ayez quelque chose d’unique et d’important à contribuer.
russellpierce
Heureux de développer si vous pouvez poser une question spécifique.
Frank Harrell
1
Ces règles de notation étaient ... juger de la qualité du résultat du bootstrap? Pourriez-vous fournir un lien qui décrit la proportion "classifiée" de règle de scoring correcte, j'ai du mal à imaginer quel genre de bête cela pourrait être. Parmi les meilleurs résultats de "l'optimisme Efron-Gong" sur Google, la grande majorité semble être des posts de votre part ... en quoi est-ce différent de si je dis "bootstrap" sans qualificatif? Quel article d'Effron et de Gong devrais-je consulter? Il semble y en avoir plusieurs.
russellpierce
3
Voir le document original sur 0,632 qui utilise et définit la proportion classée correctement (Efron & Tibshirani JASA 92: 548; 1997). Le bootstrap d'optimisme est une variante du bootstrap permettant d'estimer le biais. Il est décrit dans Gong: JASA 85:20; 1990.
Frank Harrell
2

Ces réponses sont très utiles. Comme je ne pouvais pas le démontrer en maths, j’ai écrit du code Python qui marche plutôt bien:

    from numpy import mean
    from numpy.random import choice

    N = 3000

    variables = range(N)

    num_loop = 1000
    # Proportion of remaining variables
    p_var = []

    for i in range(num_loop):
        set_var = set(choice(variables, N))
        p=len(set_var)/float(N)
        if i%50==0:
            print "value for ", i, " iteration ", "p = ",p
        p_var.append(p)

    print "Estimator of the proportion of remaining variables, ", mean(p_var)
Anil Narassiguin
la source