Muestreo de datos con R

4 Jun

Recientemente, hubo una entrada en este blog sobre cómo realizar muestreos aleatorios en tablas SAS.  En ésta vamos a ver cómo se procedería con R.

Consideraremos el conjunto de datos iris —de dimensión 150 x 5— y extraeremos 60 filas con distintos procedimientos.

Para el muestreo aleatorio simple sin repetición, basta con hacer:

indices <- sample( 1:nrow( iris ), 60 )
iris.muestreado <- iris[ indices, ]

Para relizar un muestreo aleatorio simple con repetición, basta con sustituir la variable indices anterior por

indices <- sample( 1:nrow( iris ), 60, replace = TRUE )

No es complicado realizar muestreos estratificados con o sin reemplazamiento. La manera más sencilla de obtenerlos consiste en usar el paquete sampling.

El muestreo sin reemplazamiento y estratificado respecto a iris$Species —que es un factor con tres niveles de 50 elementos cada uno— puede llevarse a cabo así:

library( sampling )
estratos <- strata( iris, stratanames = c("Species"), size = c(20,20,20), method = "srswor" )
iris.muestreado <- getdata( iris, estratos )

Para obtener un muestreo con reemplazamiento se sustituye el método srswor por el srswr.

El interesado en utilizar técnicas de muestreo estratificado más sofisticadas no tiene sino que consultar la ayuda y ejemplos de la función strata.