Cómo tomar muestras de datos en r
Los estadísticos a menudo tienen que tomar muestras de datos y luego calcular las estadísticas. Tomando una muestra es fácil con R, porque una muestra es realmente nada más que un subconjunto de datos. Para ello, se hace uso de muestra (), que tiene un vector como input- luego te dicen que el número de muestras a extraer de esa lista.
Digamos que usted quería simular lanzamientos de un dado, y usted desea conseguir diez resultados. Debido a que el resultado de una única tirada de un dado es un número entre uno y seis, el código es el siguiente:
> Muestra (1: 6, 10, reemplace = TRUE) [1] 2 2 5 5 3 3 5 6 3 5
Tu dices muestra () para volver diez valores, cada uno en el rango 16. Debido a que cada rollo de la matriz es independiente de cualquier otro rollo de la matriz, usted está de muestreo con reemplazo. Esto significa que usted toma una muestra de la lista y restablece la lista a su estado original (en otras palabras, se pone el elemento que acaba atraído de nuevo en la lista).
Para ello, se agrega el argumento replace = TRUE, como en el ejemplo.
Debido a que el valor de retorno de la muestra () la función es un número determinado al azar, si intenta esta función repetidamente, obtendrás resultados diferentes cada vez. Este es el comportamiento correcto en la mayoría de los casos, pero a veces es posible que desee obtener resultados repetibles cada vez que se ejecuta la función.
Por lo general, esto sólo ocurrirá cuando se desarrolla y probar su código, o si usted quiere estar seguro de que alguien más puede probar el código y obtener los mismos valores que hiciste. En este caso, es costumbre para especificar una llamada valor de la semilla.
Si proporciona un valor de la semilla, la secuencia de números aleatorios se restablecerá a un estado conocido. Esto se debe a R no crea números verdaderamente aleatorios, pero sólo números seudo-aleatorio. Una secuencia pseudo-aleatoria es un conjunto de números que, para todos los propósitos prácticos, parecen ser al azar, pero fueron generados por un algoritmo. Cuando se establece una semilla de partida para un proceso de pseudo-aleatorio, R siempre devuelve la misma secuencia pseudo-aleatoria.
Pero si no se establece la semilla, R se basa en el estado actual del generador de números aleatorios (RNG). En el arranque R puede establecer una semilla aleatoria para inicializar el generador de números aleatorios, pero cada vez que lo llame, R se inicia desde el siguiente valor de la secuencia de números aleatorios. Usted puede leer la Ayuda ?RNG para obtener más detalles.
En R, se utiliza el set.seed () función para especificar el valor inicial de la semilla. El argumento para set.seed () es cualquier valor entero.
> Set.seed (1)> muestra (1: 6, 10, reemplace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
Si dibuja otra muestra, sin establecer una semilla, se obtiene un conjunto diferente de resultados, como era de esperar:
> Muestra (1: 6, 10, reemplace = TRUE) [1] 2 2 5 5 3 3 5 6 3 5
Ahora, para demostrar que set.seed () en realidad no restablecer el RNG, inténtelo de nuevo. Pero esta vez, establecer la semilla, una vez más:
> Set.seed (1)> muestra (1: 6, 10, reemplace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
Usted recibe exactamente los mismos resultados que la primera vez que utilizó set.seed (1).
Puedes usar muestra () para tomar muestras de la trama de datos iris. En este caso, es posible que desee utilizar el argumento replace = FALSO. Debido a que este es el valor por defecto de la reemplazar argumento, no es necesario escribir explícitamente:
> Set.seed (123)> Índice lt; - la muestra (1: nRow (iris), 5)> índice [1] 44 119 62 133 142> iris [índice] Sepal.Length Sepal.Width Petal.Length Petal.Width Species44 5,0 3,5 1,6 0,6 7,7 2,6 setosa119 6,9 2,3 5,9 3,0 4,2 virginica62 1.5 versicolor133 6,4 2,8 5,6 2,2 6,9 3,1 5,1 virginica142 2.3 virginica