Necesito calcular el error estándar en un conjunto de datos complicado (> 1700 registros) que utiliza el emparejamiento genético. El uso de bootstrap da lugar a un tiempo de cálculo muy elevado (debido al emparejamiento genético).
Mi profesor da como alternativa el submuestreo:
Una alternativa menos costosa desde el punto de vista informático es el submuestreo. Se puede realizar seleccionando, por ejemplo, 100 submuestras más pequeñas (que consisten en unos 500 sujetos medidos) del gran conjunto de datos y analizándolas.
La varianza empírica de estos 100 estimadores será muy alta porque analizó conjuntos de datos más pequeños. Pero como la varianza es inversamente proporcional al número de sujetos medidos se puede calcular la varianza del estimador en el conjunto de datos completo.
Parece que me atasco en el cálculo de la proporción inversa. Lo he intentado con otro conjunto de datos (más sencillo) en R
:
library(boot)
x <- rnorm(5000,mean=0,sd=1)
##then the SE for the mean is 1/sqrt(5000)
se <- 1/sqrt(5000); se
mean.fn <- function(data, index){
return(mean(data[index]))
}
# bootstrapping works good
boot(x,mean.fn,R=100)
## subsampling
res <- c()
count <- 100
size <- 500
for(i in 1:count){
indices <- sample(x = length(x),size=size)
res[i] <- mean.fn(x,indices)
}
emp_se <- var(res)
emp_var <- emp_se*sqrt(count)
emp_se; emp_var; se
De alguna manera emp_var
parece ser un buen estimador para se
, pero cuando cambio el count
a 200 esto empeora. ¿Cómo puedo convertir var(res)
en un estimador para se
?