Vale, puede que esta respuesta no sea exactamente lo que buscabas por los detalles de tu pregunta, pero me he topado con ella por el título, así que puede que ayude a otras personas que también se topen con ella de forma similar.
La única forma que conozco de determinar el tamaño de la muestra utilizando un bootstrap es mediante un enfoque de análisis de potencia. Ese eres tú:
- Enunciar la hipótesis nula y la hipótesis alternativa
- Indique el nivel alfa (normalmente el 5%)
- Si es necesario, desplace los datos del estudio piloto para saber si la hipótesis nula es falsa.
- Remuestreo con sustitutos del estudio piloto
- Realice la prueba con esta muestra y anote el resultado
- Repítelo unas 1000 veces para construir la distribución de probabilidad
- Cuente cuántas veces se rechaza la hipótesis nula
Con muchas posibles "variaciones sobre un tema de...".
Y eso le da la potencia estadística (para ese tamaño de muestra y esa prueba concreta), porque la definición de potencia estadística es "probabilidad de que la prueba rechace la hipótesis nula cuando la hipótesis alternativa es cierta". Por tanto, puede variar el tamaño de la muestra hasta alcanzar la potencia deseada.
Aquí hay un enfoque en R que hice basado en este documento, Tamaño de la muestra / Potencia por Elizabeth Colantuoni .
Tenía dos grupos de datos no normales y no paramétricos. Un estudio piloto de cada uno de ellos mostró que tenían medianas diferentes y una prueba de Mann Whitney Wilcoxon rechazó la hipótesis nula de que eran iguales, pero quería determinar el tamaño de muestra necesario para poder afirmarlo con "seguridad". Como la prueba ya rechazaba la hipótesis nula en los datos piloto, no vi ninguna necesidad de cambiar o manipular los datos para asegurarme de que la hipótesis alternativa era cierta.
power = function(group1.pilot, group2.pilot, reps=1000, size=10) {
results <- sapply(1:reps, function(r) {
group1.resample <- sample(group1.pilot, size=size, replace=TRUE)
group2.resample <- sample(group2.pilot, size=size, replace=TRUE)
test <- wilcox.test(group1.resample, group2.resample, paired=FALSE)
test$p.value
})
sum(results<0.05)/reps
}
#Find power for a sample size of 100
power(data1, data2, reps=1000, size=100)
Descargo de responsabilidad necesario: no soy estadístico y aún estoy aprendiendo sobre bootstrapping, por lo que se agradecen comentarios, correcciones, señalamientos y risas.