Yo estoy midiendo el error en la mediana de los datos usando Bootstrap. Me gustaría obtener barras de error de sigma en mis datos, por lo que estoy midiendo los percentiles 16 y 84 de mis datos. ¿Debo dividir estos valores de percentil por la raíz cuadrada del número de datos o no? Gracias de antemano.
Respuestas
¿Demasiados anuncios?Siguiendo a lo largo de las líneas desarrolladas por Greg y soakley, aquí es una función que calcula los errores estándar (arranque) una estimación de la mediana:
median.w.se = function(vec,B){
# Inputs: vector of data (vec)
# number of bootstrap replicates (B)
# Outputs: list with estimates of median and standard error
empty.vec = rep(NA,B)
for(i in 1:B){
curr.sample = sample(vec,length(vec),replace = TRUE)
curr.med = median(curr.sample)
empty.vec[i] = curr.med
}
lst = list(median = mean(empty.vec), se = sd(empty.vec))
return(lst)
}
data(iris)
median.w.se(iris$Sepal.Length,1000)
Si yo soy la comprensión de su intención, entonces la respuesta es "no", no se dividen. El tamaño de la muestra es tomada en cuenta como parte del proceso de arranque. Por supuesto, los valores que están utilizando en su mayoría van a ser significativa si todo está distribuido normalmente, el hecho de que bootstrapping hace que parezca una suposición improbable. La asimetría realmente podría lanzar este apagado. Estás dividiendo la distancia del 16 al 84 por 2? Si no que podría ser por eso que usted piensa que necesita para buceado por algo.
En general (y el buen hacer aquí para comprobar si la he entendido y aunque este método de trabajo para su caso) puede responder a preguntas como esta, con un poco de simulación. Simular un conjunto de datos y hacer el análisis anterior, calcular el valor de ambas maneras y ver cual es la más cercana al valor de "true" a partir de la simulación. Repita el proceso con un ejemplo diferente tamaño, también simular de diferentes distribuciones. Debe quedar bastante claro, después de un par de simulaciones si se dividen o no.