Muestras aleatorias y permutaciones con sample en lenguaje R

La función sample permite construir muestras aleatorias y permutaciones en lenguaje R. Existen muchas aplicaciones de ésto pero en la siguiente entrada voy a ejemplificar el lanzamiento de un dado 1.000.000 de veces. Si éste no está “cargado”, la probabilidad de que salga cualquier número del 1 al 6 es la misma e igual a 1/6 (0.166666…). La sintaxis del comando puede ser averiguada con help(sample) y se puede resumir como sigue:

sample(x, size, replace = FALSE, prob = NULL)

Para lo que se pretende hacer x = 1:6 (valores 1, 2, 3, 4, 5, 6), size = 1000000 y replace = TRUE (porque la muestra es mayor que los valores posibles). Por otra parte, se va a verificar que la opción prob, en NULL, produce una muestra balanceada, es decir, donde todas las probabilidades para todos los posible valores es aproximadamente 1/6. Posteriormente, voy a “cargar” el dado para que la probabilidad de que salga “3” sea de 0.5 y la de los demás números sea de 0.1. Para lo primero tenemos:

.
>muestra_aleatoria<- sample(1:6, 1000000, replace=TRUE)
.

y para observar sus primeros 100 componentes:

> head(muestra_aleatoria, n=100)
  [1] 4 2 5 4 5 4 1 1 5 6 4 1 1 4 1 4 4 4 5 5 6 3 3 6 5 2 1 2 6 3 2 3 6 5 3 3 4
 [38] 4 2 3 1 4 1 5 4 4 1 1 5 5 2 4 5 3 1 6 6 4 6 4 5 6 3 6 4 4 5 6 1 2 5 4 1 2
 [75] 6 6 6 1 3 4 5 3 4 5 6 3 4 4 2 1 2 1 3 5 6 6 4 1 5 3

Para “contar” cuántos valores salieron de cada tipo se tiene que:

> fac<- factor(muestra_aleatoria)
> summary(fac)/1000000
       1        2        3        4        5        6 
0.166465 0.166674 0.166683 0.166304 0.166943 0.166931 

lo que permite visualizar que cada valor tiene una probabilidad de ocurrencia cercana a 1/6.

Ahora voy a “cargar” el dado. Para ello, la sintaxis del comando y la prueba sería:


>muestra_aleatoria2<- sample(1:6, 1000000, replace=TRUE, prob=c(0.1,0.1,0.5,0.1,0.1,0.1))
> fac2<- factor(muestra_aleatoria2)
> summary(fac2)/1000000
       1        2        3        4        5        6 
0.099847 0.100365 0.499437 0.099576 0.100351 0.100424 

Se puede observar que la distribución es prácticamente la esperada. Si se quiere ser riguroso, es decir, afirmar que estadísticamente es la “misma” entonces se puede usar un chisq.test.

Esta entrada fue publicada en Lenguaje R, Software Libre. Guarda el enlace permanente.

Una respuesta a Muestras aleatorias y permutaciones con sample en lenguaje R

  1. Carlos Francisco Miranda dijo:

    Hola, muchas gracias y felicidades por su sitio. Soy un fans. Existen en inglés programación con ide eclipse de java y python para qgis u otro open source gis?

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s