Bootstrapping em R
Bootstrapping não paramétrico
O pacote boot oferece amplos recursos para bootstrapping e métodos de reamostragem relacionados. Você pode usar o bootstrap em uma única estatística (por exemplo, uma mediana) ou em um vetor (por exemplo, pesos de regressão). Esta seção dará a você uma introdução ao bootstrapping não paramétrico básico.
A principal função de bootstrapping é boot( ) e tem o seguinte formato:
bootobject <- boot(data= , statistic= , R=, ...) where
parâmetro | descrição |
dados | Um vetor, matriz ou quadro de dados |
estatística | A função deve incluir um parâmetro de índices que a função boot() pode usar para selecionar casos para cada replicação (veja os exemplos abaixo). |
R | Número de réplicas bootstrap |
... | Parâmetros adicionais a serem passados para a função que produz a estatística de interesse |
boot( ) chama a função estatística R vezes. A cada vez, ele gera um conjunto de índices aleatórios, com substituição, a partir dos inteiros 1:nrow(data). Esses índices são usados na função estatística para selecionar uma amostra. As estatísticas são calculadas sobre a amostra e os resultados são acumulados no objeto de inicialização. A estrutura do bootobject inclui
elemento | descrição |
t0 | Os valores observados da estatística k aplicados aos dados originais. |
t | Uma matriz R x k em que cada linha é uma réplica bootstrap das k estatísticas. |
Você pode acessá-los como bootobject$t0 e bootobject$t.
Depois que você gerar as amostras bootstrap, print(bootobject) e plot(bootobject) poderão ser usados para examinar os resultados. Se os resultados parecerem razoáveis, você poderá usar a função boot.ci( ) para obter intervalos de confiança para a(s) estatística(s).
O formato é
boot.ci(bootobject, conf=, type= ) onde
parâmetro | descrição |
objeto de inicialização | O objeto retornado pela função de inicialização |
conf | O intervalo de confiança desejado (padrão: conf=0,95) |
tipo | O tipo de intervalo de confiança retornado. Os valores possíveis são "norm", "basic", "stud", "perc", "bca" e "all" (padrão: type="all") |
Bootstrapping de uma única estatística (k=1)
O exemplo a seguir gera o intervalo de confiança de 95% bootstrapped para R-quadrado na regressão linear de milhas por galão (mpg) no peso do carro (wt) e deslocamento (disp). A fonte de dados é mtcars. O intervalo de confiança bootstrapped é baseado em 1.000 replicações.
# Bootstrap 95% CI for R-Squared
library(boot)
# function to obtain R-Squared from the data
rsq <- function(formula, data, indices)
{
d <- data[indices,] # allows boot to select sample
fit <- lm(formula, data=d)
return(summary(fit)$r.square)
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=rsq,
R=1000, formula=mpg~wt+disp)
# view results
results
plot(results)
# get 95% confidence interval
boot.ci(results, type="bca")
Bootstrapping de várias estatísticas (k>1)
No exemplo acima, a função rsq retornou um número e boot.ci retornou um único intervalo de confiança. A função de estatística que você fornece também pode retornar um vetor. No próximo exemplo, obtemos o IC de 95% para os três coeficientes de regressão do modelo (interceptação, peso do carro, deslocamento). Nesse caso, adicionamos um parâmetro de índice a plot( ) e boot.ci( ) para indicar qual coluna do bootobject$t deve ser analisada.
# Bootstrap 95% CI for regression coefficients
library(boot)
# function to obtain regression weights
bs <- function(formula, data, indices)
{
d <- data[indices,] # allows boot to select sample
fit <- lm(formula, data=d)
return(coef(fit))
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=bs,
R=1000, formula=mpg~wt+disp)
# view results
results
plot(results, index=1) # intercept
plot(results, index=2) # wt
plot(results, index=3) # disp
# get 95% confidence intervals
boot.ci(results, type="bca", index=1) # intercept
boot.ci(results, type="bca", index=2) # wt
boot.ci(results, type="bca", index=3) # disp
Indo além
A função boot( ) pode gerar uma reamostragem não paramétrica e paramétrica. Para o bootstrap não paramétrico, os métodos de reamostragem incluem ordinário, balanceado, antitético e permutação. Para o bootstrap não paramétrico, há suporte para a reamostragem estratificada. Os pesos da reamostragem de importância também podem ser especificados.
A função boot.ci( ) usa um objeto de inicialização e gera 5 tipos diferentes de intervalos de confiança não paramétricos de dois lados. Isso inclui a aproximação normal de primeira ordem, o intervalo bootstrap básico, o intervalo bootstrap studentizado, o intervalo bootstrap percentil e o intervalo bootstrap percentil ajustado (BCa).
Consulte help(boot), help(boot.ci) e help(plot.boot) para obter mais detalhes.
Saiba mais
Boas fontes de informação incluem Resampling Methods in R: O pacote boot, de Angelo Canty, Getting started with the boot package, de Ajay Shah, Bootstrapping Regression Models, deJohn Fox, e Bootstrap Methods and Their Applications, de Davison e Hinkley.
Para praticar
Experimente este exercício interativo com o pacote de inicialização do curso Introdução às finanças computacionais com R do DataCamp.