Génération de nombres pseudo-aléatoires

Échantillonnage en R

Richie Cotton

Data Evangelist at DataCamp

Que signifie « aléatoire » ?

{adjective} fait, exécuté, se produisant ou choisi sans méthode ni décision consciente.

  • Oxford Languages
Échantillonnage en R

Vrais nombres aléatoires

  • Générés par des processus physiques, comme lancer une pièce.
  • Hotbits utilise la désintégration radioactive.
  • RANDOM.ORG utilise le bruit atmosphérique.
    • Offert dans R via le paquet random.
  • Le vrai hasard coûte cher.
1 https://www.fourmilab.ch/hotbits 2 https://www.random.org
Échantillonnage en R

Génération de nombres pseudo-aléatoires

  • Le prochain nombre « aléatoire » est calculé à partir du précédent.
  • Le premier nombre « aléatoire » est calculé depuis une graine.
  • En partant de la même graine, toute la suite de nombres sera identique.
seed <- 1
calc_next_random(seed)
3
calc_next_random(3)
2
calc_next_random(2)
6
Échantillonnage en R

Fonctions de génération de nombres aléatoires

function distribution function distribution function distribution
rbeta Bêta rgeom Géométrique rsignrank Wilcoxon signé
rbinom Binomiale rhyper Hypergéométrique rt t
rcauchy Cauchy rlnorm Log-normale runif Uniforme
rchisq Khi carré rlogis Logistique rweibull Weibull
rexp Exponentielle rnbinom Binomiale négative rwilcox Wilcoxon rangs
rf F rnorm Normale
rgamma Gamma rpois Poisson
Échantillonnage en R

Visualiser des nombres aléatoires

rbeta(5000, shape1 = 2, shape2 = 2)
[1] 0.2788 0.7495 0.6485 0.6665 0.6546 0.1575
...

[4996] 0.84719 0.35177 0.92796 0.67603 0.53960
randoms <- data.frame(
  beta = rbeta(5000, shape1 = 2, shape2 = 2)
)
ggplot(randoms, aes(beta)) +
  geom_histogram(binwidth = 0.1)

hist-beta.png

Échantillonnage en R

Graines pour nombres aléatoires

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
Échantillonnage en R

Utiliser une autre graine

set.seed(20000229)
rnorm(5)
-1.6538 -0.4028 -0.1654 -0.0734  0.5171
rnorm(5)
1.908  0.379 -1.499  1.625  0.693
set.seed(20041004)
rnorm(5)
-0.6547 -0.7854 -0.0152  0.1514  0.5285
rnorm(5)
0.748  0.974  0.174 -0.781 -0.930
Échantillonnage en R

Passons à la pratique !

Échantillonnage en R

Preparing Video For Download...