Comment prélever des échantillons à partir des données r

Statisticiens doivent souvent prendre des échantillons de données, puis calculer les statistiques. Prendre un échantillon est facile avec R, car un échantillon est vraiment rien de plus qu'un sous-ensemble de données. Pour ce faire, vous faites usage de échantillon (), qui prend un vecteur entrées-puis vous dire que ce nombre d'échantillons à tirer de cette liste.

Dites que vous vouliez pour simuler rouleaux d'une filière, et vous voulez obtenir dix résultats. Parce que le résultat d'un seul rouleau d'une filière est un nombre entre un et six, votre code ressemble à ceci:

> Échantillon (1: 6, 10, replace = TRUE) [1] 2 2 5 3 5 3 5 6 3 5

Vous dites échantillon () pour revenir dix valeurs, chacune dans la gamme 1: 6. Parce que chaque rouleau de la matrice est indépendante de tout autre jet de dé, vous échantillonnage avec remplacement. Cela signifie que vous prenez un échantillon de la liste et de réinitialiser la liste à son état d'origine (en d'autres termes, vous mettez l'élément que vous venez de tracer de nouveau dans la liste).

Pour ce faire, vous ajoutez l'argument remplacer = TRUE, Comme dans l'exemple.

Parce que la valeur de retour de la échantillon () fonction est un nombre déterminé de façon aléatoire, si vous essayez plusieurs fois cette fonction, vous obtiendrez des résultats différents à chaque fois. Ceci est le comportement correct dans la plupart des cas, mais parfois, vous voudrez peut-être obtenir des résultats reproductibles chaque fois que vous exécutez la fonction.




Habituellement, cela se produit seulement quand vous développez et testez votre code, ou si vous voulez être certain que quelqu'un d'autre peut tester votre code et obtenir les mêmes valeurs que vous avez fait. Dans ce cas, il est de coutume de spécifier un soi-disant valeur de départ.

Si vous fournissez une valeur de départ, la séquence de nombres aléatoires sera remis à un état connu. Ceci est parce que R ne crée pas de vrais nombres aléatoires, mais uniquement des nombres pseudo-aléatoires. Une séquence pseudo-aléatoire est une série de chiffres qui, à toutes fins pratiques, semblent être aléatoire mais ont été générés par un algorithme. Lorsque vous définissez une graine de départ d'un processus pseudo-aléatoire, R renvoie toujours la même séquence pseudo-aléatoire.

Mais si vous ne réglez pas la graine, R tire de l'état actuel du générateur de nombres aléatoires (RNG). Au démarrage R peut mettre une graine aléatoire pour initialiser le RNG, mais chaque fois que vous l'appelez, R commence à partir de la valeur suivante dans le flux de RNG. Vous pouvez lire l'aide pour ?RNG pour obtenir plus de détails.

Dans R, vous utilisez le set.seed () fonction pour spécifier la valeur de votre départ de la graine. L'argument de set.seed () est n'importe quel nombre entier.

> Set.seed (1)> échantillon (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1

Si vous dessinez un autre échantillon, sans mettre une graine, vous obtenez un ensemble différent de résultats, comme vous pouvez vous attendre:

> Échantillon (1: 6, 10, replace = TRUE) [1] 2 2 5 3 5 3 5 6 3 5

Maintenant, pour démontrer que set.seed () effectivement ne réinitialise le RNG, essayer de nouveau. Mais cette fois, mis la graine une fois de plus:

> Set.seed (1)> échantillon (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1

Vous obtenez exactement les mêmes résultats que la première fois que vous avez utilisé set.seed (1).

Tu peux utiliser échantillon () de prélever des échantillons de la trame de données iris. Dans ce cas, vous pouvez utiliser l'argument remplacer = FALSE. Étant donné que ceci est la valeur par défaut de la remplacer argument, vous ne devez pas l'écrire explicitement:

> Set.seed (123)> Index lt; - échantillon (1: nrow (iris), 5)> index [1] 44 119 62 133 142> iris [index,] 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 3.0 4.2 5.9 virginica62 1,5 versicolor133 6,4 2,8 5,6 2,2 virginica142 6,9 3,1 5,1 2,3 virginica

» » » » Comment prélever des échantillons à partir des données r