¿Cuál es la regla .632+ en bootstrapping?

107

Aquí @gung hace referencia a la regla .632+. Una búsqueda rápida en Google no proporciona una respuesta fácil de entender sobre lo que significa esta regla y para qué se utiliza. ¿Alguien aclararía la regla .632+?

russellpierce
fuente

Respuestas:

115

Llegaré al estimador 0.632, pero será un desarrollo algo largo:

Supongamos que queremos predecir con usando la función , donde puede depender de algunos parámetros que se estiman usando los datos , por ejemploX f f ( Y , X ) f ( X ) = X βYXff(Y,X)f(X)=Xβ

Una estimación ingenua del error de predicción es donde es alguna función de pérdida, por ejemplo, pérdida de error al cuadrado. Esto a menudo se llama error de entrenamiento. Efron y col. lo llama tasa de error aparente o tasa de restitución. No es muy bueno ya que usamos nuestros datos para ajustar . Esto da como resultado que esté sesgado hacia abajo. Desea saber qué tan bien funciona su modelo en la predicción de nuevos valores.L(xi,yi)f¯errf

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

A menudo utilizamos la validación cruzada como una forma simple de estimar el error de predicción extramuestra esperado (¿qué tan bien funciona nuestro modelo con los datos que no están en nuestro conjunto de capacitación?).

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

Una forma popular de hacer esto es hacer una validación cruzada -fold. Divide tus datos en grupos (por ejemplo, 10). Para cada grupo , ajuste su modelo en los grupos restantes y pruébelo en el grupo . Nuestro error de predicción de muestra adicional con validación cruzada es solo el promedio donde es alguna función de índice que indica la partición a la que se asigna la observación y es el valor predicho de utilizando datos que no están en el conjunto th.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)

Este estimador es aproximadamente imparcial para el verdadero error de predicción cuando y tiene una mayor varianza y es más costoso computacionalmente para más grande . Entonces, una vez más, vemos el equilibrio entre sesgo y varianza en juego.KK=NK

En lugar de la validación cruzada, podríamos usar el bootstrap para estimar el error de predicción de muestra extra. El remuestreo de Bootstrap se puede usar para estimar la distribución de muestreo de cualquier estadística. Si nuestros datos de entrenamiento son , entonces podemos pensar en tomar muestras de arranque (con reemplazo) de este conjunto donde cada es un conjunto de muestras. Ahora podemos usar nuestras muestras de arranque para estimar el error de predicción de muestra extra: donde es el valor predicho en desde el modelo ajustado alB Z 1 , , Z B Z i N E r r b o o t = 1X=(x1,,xN)BZ1,,ZBZiNfb(xi)xibfb(xi)xiErrboot(1)=1

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib th conjunto de datos de arranque. Desafortunadamente, este no es un estimador particularmente bueno porque las muestras de bootstrap utilizadas para producir pueden haber contenido . El estimador bootstrap de dejar uno afuera ofrece una mejora al imitar la validación cruzada y se define como: donde es el conjunto de índices para las muestras de bootstrap que no contienen observación , yes el número de tales muestras fb(xi)xiC-ii| C-i| Errboot(1)0,632NErr0,632=0,368¯err+0,632Errb
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)resuelve el problema de sobreajuste, pero aún está sesgado (este está sesgado hacia arriba). El sesgo se debe a observaciones no distintas en las muestras de bootstrap que resultan del muestreo con reemplazo. El número promedio de observaciones distintas en cada muestra es de aproximadamente (consulte esta respuesta para obtener una explicación de por qué, en promedio, ¿cada muestra de arranque contiene aproximadamente dos tercios de las observaciones? ). Para resolver el problema de sesgo, Efron y Tibshirani propusieron el estimador 0.632: donde0.632N¯ e r r = 1
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
es la estimación ingenua del error de predicción, a menudo llamado error de entrenamiento. La idea es promediar una estimación sesgada hacia abajo y una estimación sesgada hacia arriba.

Sin embargo, si tenemos una función de predicción altamente sobreajustada (es decir, ), incluso el estimador .632 estará sesgado hacia abajo. El estimador .632+ está diseñado para ser un compromiso menos sesgado entre y . con donde es la tasa de error sin información, estimada mediante la evaluación del modelo de predicción en todas las combinaciones posibles de objetivos y predictores .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))
.

Aquí mide la tasa de sobreajuste relativo. Si no hay sobreajuste (R = 0, cuando ) es igual al estimador .632.RErrboot(1)=err¯

bdeonovic
fuente
2
Esas son buenas preguntas, @rpierce, pero se alejan un poco del tema central de este hilo. Sería mejor, desde el punto de vista de la organización CV, tenerlos en un nuevo hilo, para que sea más fácil para las personas encontrar y utilizar esa información posteriormente.
Gung
1
Pregunta 1: stats.stackexchange.com/questions/96764/…
russellpierce
1
@rpierce Lo siento si hice mi pregunta un poco difícil de seguir. compara el ajuste de su modelo con los datos utilizados para ajustarlo. Entonces, para una pérdida de error al cuadrado que seríaerr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
bdeonovic
1
@rpierce, sí! Estaba siendo un poco general porque estaba reciclando mucho material de algunas notas de clase.
bdeonovic
53

Encontrará más información en la sección 3 de este 1 artículo. Pero para resumir, si llama a una muestra de números de dibujados al azar y con reemplazo, contiene en promedio aproximadamente elementos únicosSn{1:n}S(1e1)n0.63212056n

El razonamiento es como sigue. Rellenamos muestreando veces (aleatoriamente y con reemplazo) de . Considere un índice particular . S={s1,,sn}i=1,,n{1:n}m{1:n}

Entonces:

P(si=m)=1/n

y

P(sim)=11/n

y esto es cierto (intuitivamente, dado que tomamos muestras con reemplazo, las probabilidades no dependen de )1ini

así

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

También puede llevar esta pequeña simulación para verificar empíricamente la calidad de la aproximación (que depende 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 y Robert Tibshirani (1997). Mejoras en la validación cruzada: el método Bootstrap .632+ . Revista de la Asociación Americana de Estadística , vol. 92, núm. 438, págs. 548--560.

usuario603
fuente
3
Aquí hay un documento para usted en referencia: stat.washington.edu/courses/stat527/s14/readings/…
1
(+1) Muy bien. Solo haría que la notación sea un poco más estándar. Datos: . IID variables aleatorias con . Resultado: . (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
44
@rpierce: Correcto. El bit "obvio" que la respuesta actualmente no menciona es que . 1e10.63212056
Ilmari Karonen
1
Esta respuesta también es excelente, de hecho, la respuesta aceptada más esta respuesta en realidad proporciona la respuesta completa a mi pregunta, pero entre las dos siento que Benjamin's está más cerca de lo que estaba buscando en una respuesta. Dicho esto, realmente desearía que fuera posible aceptar ambos.
russellpierce
1
@rpierce: Citando a Celine Dion, " Cuento tan viejo como el tiempo / canción tan viejo como la rima / La bella y la bestia". : P
Nick Stauner
8

En mi experiencia, basada principalmente en simulaciones, las variantes de bootstrap 0.632 y 0.632+ solo se necesitaban debido a problemas graves causados ​​por el uso de una regla de puntaje de precisión incorrecta, a saber, la proporción "clasificada" correctamente. Cuando utiliza las reglas de puntuación adecuadas (p. Ej., Basadas en desviaciones o Brier) o semi-apropiadas (p. Ej., -index = AUROC), la rutina estándar de optimismo de Efron-Gong funciona bien.c

Frank Harrell
fuente
3
Creo que no entiendo la mayoría de las cosas que dijiste aquí, Frank. ¿Estarías dispuesto a aclarar? Parece que tienes algo único e importante para contribuir.
russellpierce
Me alegra expandirme si puede formular una pregunta específica.
Frank Harrell
1
Estas reglas de puntuación fueron ... ¿juzgar la calidad del resultado de arranque? Si pudiera proporcionar un enlace que describa la regla de puntuación "clasificada" de proporción correcta, tengo problemas para imaginar qué tipo de bestia podría ser. De los mejores resultados para el "optimismo de Efron-Gong" en Google, la gran mayoría parecen ser publicaciones tuyas ... ¿en qué se diferencia eso si digo "bootstrap" sin los calificadores? ¿A qué artículo de Effron y Gong debería mirar? Parece que hay varios.
russellpierce
3
Ver el artículo original sobre 0.632 que usa y define la proporción clasificada correctamente (Efron y Tibshirani JASA 92: 548; 1997). El bootstrap de optimismo es una variante del bootstrap para estimar el sesgo. Se describe en Gong: JASA 85:20; 1990.
Frank Harrell
2

Esas respuestas son muy útiles. No pude encontrar una manera de demostrarlo con las matemáticas, así que escribí un código de Python que funciona bastante 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
fuente