Qual é a regra .632+ no bootstrapping?

107

Aqui, o @gung faz referência à regra .632+. Uma pesquisa rápida no Google não fornece uma resposta fácil de entender sobre o significado dessa regra e com que finalidade ela é usada. Alguém esclareceria a regra .632+?

russellpierce
fonte

Respostas:

115

Vou chegar ao estimador 0.632, mas será um desenvolvimento um tanto longo:

Suponha que desejamos prever com usando a função , onde pode depender de alguns parâmetros estimados usando os dados , por exemplo,YXff(Y,X)f(X)=Xβ

Uma estimativa ingênua de erro de previsão é onde é uma função de perda, por exemplo, perda de erro ao quadrado. Isso geralmente é chamado de erro de treinamento. Efron et al. chama de taxa de erro aparente ou taxa de re-substituição. Não é muito bom, pois usamos nossos dados para ajustar . Isso resulta em sendo enviesado para baixo. Você quer saber o desempenho do seu modelo na previsão de novos valores.

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

Geralmente, usamos a validação cruzada como uma maneira simples de estimar o erro de previsão de amostra extra-amostra (quão bem o nosso modelo se comporta com dados que não estão em nosso conjunto de treinamento?).

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

Uma maneira popular de fazer isso é fazer a validação cruzada em fold. Divida seus dados em grupos (por exemplo, 10). Para cada grupo , ajuste seu modelo nos demais grupos e teste-o no ésimo grupo. Nosso erro de previsão de amostra extra validada cruzada é apenas a média onde é alguma função de índice que indica a partição à qual a observação está alocada é o valor previsto de usando dados que não estão no conjunto th.KKkK1k

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

Este estimador é aproximadamente imparcial para o verdadeiro erro de previsão quando e tem maior variação e é mais caro computacionalmente para maior . Então, mais uma vez, vemos o trade-off de desvio e variação em jogo.K=NK

Em vez de validação cruzada, poderíamos usar o bootstrap para estimar o erro de previsão de amostra extra. A reamostragem de bootstrap pode ser usada para estimar a distribuição amostral de qualquer estatística. Se nossos dados de treinamento forem , podemos pensar em tirar amostras de bootstrap (com substituição) deste conjunto onde cada é um conjunto de amostras. Agora podemos usar nossas amostras de autoinicialização para estimar o erro de previsão extra-amostra: que é o valor previsto em do modelo ajustado aoX=(x1,,xN)BZ1,,ZBZiN

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib conjunto de dados de inicialização. Infelizmente, este não é um estimador particularmente bom, pois as amostras de autoinicialização usadas para produzir podem ter contido . O estimador de -inicialização de exclusão oferece uma melhoria imitando a validação cruzada e é definido como: que é o conjunto de índices para as amostras de autoinicialização que não contém observação eé o número de tais amostras. fb(xi)xi
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)resolve o problema de super adaptação, mas ainda é tendencioso (este é tendencioso para cima). O viés é devido a observações não distintas nas amostras de inicialização que resultam da amostragem com substituição. O número médio de observações distintas em cada amostra é de cerca de (consulte esta resposta para obter uma explicação de por que Por que, em média, cada amostra de autoinicialização contém aproximadamente dois terços das observações? ). Para resolver o problema de viés, Efron e Tibshirani propuseram o estimador 0.632: que0.632N
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
é a estimativa ingênua do erro de previsão, geralmente chamada de erro de treinamento. A idéia é calcular uma estimativa tendenciosa para baixo e uma estimativa tendenciosa para cima.

No entanto, se tivermos uma função de previsão altamente super ajustada (por exemplo, ), mesmo o estimador .632 será enviesado para baixo. O estimador .632+ foi projetado para ser um compromisso menos tendencioso entre e . com que é a taxa de erro sem informação, estimada pela avaliação do modelo de previsão em todas as combinações possíveis de segmenta e preditores .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))
.

Aqui mede a taxa de super adaptação. Se não houver (R = 0, quando ), isso é igual ao estimador .632.RErrboot(1)=err¯

bdeonovic
fonte
2
Essas são boas perguntas, @rpierce, mas elas se afastam um pouco do tópico central deste tópico. Seria melhor, em termos de organização do CV, tê-los em um novo segmento, para que seja mais fácil para as pessoas encontrarem e utilizarem essas informações posteriormente.
gung
1
Pergunta 1: stats.stackexchange.com/questions/96764/…
russellpierce
1
@ rpierce Me desculpe se eu fiz minha pergunta um pouco difícil de seguir. está comparando o ajuste do seu modelo com os dados usados ​​para ajustá-lo. Portanto, para perda de erro ao quadrado que seria apenaserr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
bdeonovic
1
@ rpierce, sim! Eu estava sendo um pouco geral porque estava recolocando muito desse material com algumas anotações da aula.
Bdeonovic
53

Você vai encontrar mais informações na seção 3 deste 1 papel. Mas, para resumir, se você chamar uma amostra de números de sorteados aleatoriamente e com substituição, conterá em média aproximadamente elementos únicos.Sn{1:n}S(1e1)n0.63212056n

O raciocínio é o seguinte. Nós preenchemos amostrando vezes (aleatoriamente e com substituição) de . Considere um índice específico . S={s1,,sn}i=1,,n{1:n}m{1:n}

Então:

P(si=m)=1/n

e

P(sim)=11/n

e isso é verdade (intuitivamente, uma vez que amostramos com substituição, as probabilidades não dependem de )1ini

portanto

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

Você também pode realizar esta pequena simulação para verificar empiricamente a qualidade da aproximação (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 e Robert Tibshirani (1997). Aprimoramentos na validação cruzada: o método .632+ Bootstrap . Jornal da Associação Estatística Americana , vol. 92, n. 438, pp. 548-560.

user603
fonte
3
aqui está um documento para você em referência - stat.washington.edu/courses/stat527/s14/readings/…
1
(+1) muito bom Eu apenas tornaria a notação um pouco mais padrão. Dados: . Variáveis ​​aleatórias IID com . 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
4
@rpierce: Certo. O bit "óbvio" que a resposta atualmente não menciona é que . 1e10.63212056
Ilmari Karonen
1
Essa resposta também é ótima; de fato, a resposta aceita mais a resposta realmente fornecem a resposta completa para minha pergunta - mas entre as duas, sinto que o de Benjamin está mais próximo do que eu estava procurando em uma resposta. Dito isto - eu realmente gostaria que fosse possível aceitar os dois.
Russellpierce
1
@rpierce: Para citar Celine Dion, " Conto tão antigo quanto o tempo / música tão antigo quanto a rima / A bela e a fera". : P
Nick Stauner
8

Na minha experiência, principalmente com base em simulações, as variantes de bootstrap 0.632 e 0.632+ foram necessárias apenas devido a problemas graves causados ​​pelo uso de uma regra de pontuação de precisão inadequada, ou seja, a proporção "classificada" corretamente. Quando você usa regras de pontuação adequadas (por exemplo, pontuação baseada em desvio ou Brier) ou semi-adequadas (por exemplo, -index = AUROC), a inicialização padrão do otimizador de Efron-Gong funciona bem.c

Frank Harrell
fonte
3
Acho que não entendo a maioria das coisas que você disse aqui, Frank. Você gostaria de esclarecer? Parece que você tem algo único e importante para contribuir.
russellpierce
Fico feliz em expandir se você pode indicar uma pergunta específica.
Frank Harrell
1
Essas regras de pontuação estavam ... julgando a qualidade do resultado da inicialização? Você poderia fornecer um link que descreva a proporção "classificada" da regra de pontuação correta, estou tendo problemas para imaginar que tipo de animal pode ser. Dos principais resultados para o "otimismo do Efron-Gong" no Google, a grande maioria parece ser uma postagem sua ... como isso é diferente se eu disser "bootstrap" sem os qualificadores? Qual artigo de Effron e Gong devo procurar? Parece haver vários.
22419 russellpierce
3
Veja o artigo original sobre 0,632, que usa e define a proporção classificada corretamente (Efron & Tibshirani JASA 92: 548; 1997). O otimismo de inicialização é uma variante da inicialização para estimar o viés. É descrito em Gong: JASA 85:20; 1990.
Frank Harrell
2

Essas respostas são muito úteis. Como não consegui encontrar uma maneira de demonstrar isso com matemática, escrevi um código Python que funciona muito bem:

    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
fonte