Si tengo una muestra:
set.seed(0)
x <- rlnorm(500)
Entonces puedo utilizar la función fit.distr para encontrar el mejor ajuste entre dos distribuciones candidatas, por ejemplo
library(MASS)
find.bestfit <- function(x){
logN <- fitdistr(x, "lognormal")
gam <- fitdistr(x, "gamma")
ans <- ifelse(AIC(logN) < AIC(gam), "logN", "gam")
return(ans)
}
find.bestfit(x)
[1] "logN"
Sin embargo, existe cierta probabilidad de que no recupere la "verdadera" distribución que se muestreó (en este caso se utilizó "lognormal" para simular x
). ¿Cómo puedo calcular esta probabilidad?
Sólo he llegado a considerar el uso de un enfoque bootstrap, pero no estoy familiarizado con esta técnica y no estoy seguro de por dónde empezar:
## create an empty vector
fit.samps <- rep(NA, 100)
## determine fit to subsamples from original distribution
for(i in 1:100){
fit.samps[i] <- find.bestfit(sample(x, 10))
}
Sospecho que mi planteamiento es erróneo, porque el tamaño de la muestra es arbitrario, y en última instancia, la distribución mejor ajustada basada en la fitdistr
debería seleccionarse la mayoría de las veces.
Agradecería algunas indicaciones sobre cómo podría aplicar el enfoque bootstrap para responder a esta pregunta.