Coleção modelos
Bootstrap
Reamostra as linhas e reajusta o modelo: erro-padrão, intervalos percentil e BCa e estabilidade do sinal de coeficientes, médias ou diferenças.
O que o bloco faz
models/bootstrap faz o bootstrap de casos: sorteia as linhas do ajuste com reposição, reajusta o modelo e recalcula a quantidade escolhida, tantas vezes quanto o número de Reamostras. O espalhamento das estimativas obtidas mede a incerteza delas. Recebe um models/fit e devolve um gráfico, uma tabela e a distribuição completa.
A quantidade pode ser os coeficientes do modelo, as médias marginais de um fator (as mesmas do models/emmeans) ou as diferenças entre todos os pares de médias. Nas médias e nas diferenças, a reamostragem é feita dentro de cada nível do fator, para que o número de repetições de cada tratamento fique fixo, como no experimento. Reamostras que perdem um nível ou ficam com posto incompleto são descartadas, e a tabela informa quantas foram.
Antes de continuar
Termos que esta página usa, em poucas palavras. As definições completas estão no glossário.
- Erro padrão
- O desvio padrão de uma estimativa: quanto ela variaria se o estudo fosse repetido com outra amostra. Diminui quando a amostra cresce e é a base dos intervalos de confiança e dos testes.
- Intervalo de confiança
- Uma faixa de valores calculada a partir da amostra. Com 95% de confiança, o procedimento produz intervalos que contêm o valor verdadeiro em 95% das amostras possíveis; não quer dizer que um intervalo específico tenha 95% de probabilidade de acertar.
- Bootstrap e reamostragem
- Técnicas que repetem a análise muitas vezes sobre versões modificadas da própria amostra (sorteios com reposição, omissão de observações, embaralhamento) para medir a incerteza de uma estimativa ou obter um p-valor sem depender de uma fórmula pronta.
- Fator
- Uma variável explicativa categórica cujo efeito se quer estudar, como adubo, cultivar ou dose. Num experimento fatorial, dois ou mais fatores são combinados.
- Nível
- Cada valor que um fator assume no estudo: as doses 0, 50 e 100 kg/ha são três níveis do fator dose.
Quando usar
Quando a pergunta é quão estável é uma estimativa, e os intervalos teóricos dependem de pressupostos que não se sustentam bem, como normalidade dos erros com amostra pequena. Para perguntar se há efeito, o bloco indicado é o models/permutation.
Pressupostos
As linhas são unidades independentes (dentro de cada estrato): o bootstrap de casos não serve para medidas repetidas, parcelas subdivididas ou séries.
Configuração
- Quantidade —
coeficientes,médiasoudiferenças. - Fator das médias — em branco, usa o primeiro fator do modelo.
- Reamostrar dentro de — estratos da reamostragem; em branco, o fator das médias (médias e diferenças) ou nenhum (coeficientes).
- Reamostras — o número B de reamostras (padrão 1999).
- Confiança — o nível dos intervalos.
O resultado depende do sorteio; a semente é a do card, e o mesmo card repete a mesma distribuição.
Exemplo
library(trama)
reg <- tr_registry()
tr_use("trama.models", registry = reg)
tr_flow(reg) |>
tr_add("dados", "models/example", dataset = "PlantGrowth") |>
tr_add("ajuste", "models/anova_dic", resposta = "weight", tratamento = "group", from = "dados") |>
tr_add("boot", "models/bootstrap", quantidade = "diferenças", from = "ajuste")Como interpretar
A tabela traz, para cada quantidade, a estimativa, o viés e o erro-padrão bootstrap, o intervalo percentil e o BCa, que corrige viés e assimetria. O BCa fica instável com poucas reamostras: use 1999 ou mais. Nos coeficientes, mesmo_sinal é a fração de reamostras em que o coeficiente manteve o sinal da estimativa; perto de 1, o sentido do efeito é estável. A saída distribuicao tem um valor por reamostra e pode ir para um view/histogram ou para um data/group_summarise, se outro quantil interessar.
Implementação
boot::boot()versão 1.3.32boot::boot.ci()versão 1.3.32
No código O bloco chama trama.models::tr_models_bootstrap(), em trama.models/R/bootstrap.R:28.
A conta é feita nesta chamada:
boot::boot(seq_along(y), estatistica, R = B, strata = estrato)
Outras funções de pacotes que o bloco usa (17)
stats::model.frame(aj)stats::model.matrix(aj)stats::model.response(mf)stats::coef(aj)emmeans::emmeans(aj, especs)stats::lm.fit(X[i, , drop = FALSE], y[i])stats::complete.cases(obj$t)boot::empinf(obj, index = j, type = "jack")stats::sd(z)ggplot2::ggplot(distribuicao, ggplot2::aes(x = .data[["valor"]]))ggplot2::aes(x = .data[["valor"]])ggplot2::geom_histogram(bins = 30, fill = "#5B7C99", color = "white")ggplot2::geom_vline(data = marcas, ggplot2::aes(xintercept = .data[["li"]]), linetype = 2, color = "#B34D4D")ggplot2::facet_wrap(ggplot2::vars(.data[["quantidade"]]), scales = "free")ggplot2::vars(.data[["quantidade"]])ggplot2::labs(x = "Estimativa na reamostra", y = "Contagem", subtitle = sprintf("B = %d; linha cheia = estimativa, tracejadas = IC percentil %g%%", nrow(obj$...trama.view::tr_view_finish(out, aspecto, tema, titulo, rotulo_x, rotulo_y, legenda)
Referências
Livro-texto
- Davison, A. C.; Hinkley, D. V. (1997). Bootstrap Methods and Their Application. Cambridge University Press.
- Efron, B.; Tibshirani, R. J. (1993). An Introduction to the Bootstrap. Chapman & Hall.