• 12 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/12/2020

Générez des nombres aléatoires

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Il existe de nombreux phénomènes dans la réalité dus au hasard et il peut être utile, parfois numériquement, de pouvoir modéliser ces phénomènes pour balayer les différents cas/scénarios possibles. R est un logiciel d’analyse des données : il est donc bien évidemment possible de simuler des données selon n’importe quelle loi de probabilité.

Simuler des données selon une loi de probabilité

L’une des plus connues est la loi gaussienne (ou normale). Si vous ne la connaissez pas encore, laissez-moi vous la présenter ! La loi normale est l’une des lois de probabilité les plus adaptées pour modéliser des phénomènes naturels issus de plusieurs événements aléatoires. Ce sont l’ensemble de ces phénomènes où la majeure partie des individus se situent autour d’une moyenne, avec des proportions décroissantes en dessous et au-dessus de cette moyenne. Voici un exemple très parlant avec la répartition de la population par quotient intellectuel :

Proportion de la population par QI - Alessio Damato, Mikhail Ryazanov
Proportion de la population par QI - Alessio Damato, Mikhail Ryazanov

R vous permet de générer des nombres aléatoires selon cette loi : c’est-à-dire que l’on a beaucoup plus de chances d’avoir des valeurs proches de la moyenne (avec l’exemple ci-dessus, entre 85 et 115) que des valeurs un peu plus extrêmes (proche de 70 ou 130).

La syntaxe générale pour simuler selon une loi quelconque que nous noterons  maloi  est :

  • rmaloi  pour simuler des données selon  maloi, avec  r  pour random

  • dmaloi  pour calculer la densité de  maloi

  • pmaloi  pour calculer des probabilités de  maloi

  • qmaloi  pour calculer des quantiles de  maloi

Commençons par simuler 5 valeurs selon une loi normale. Nous allons donc utiliser  r  pour random et  norm  pour normale :

rnorm(5)
# [1] 1.8689633 -1.8802292 0.2101458 0.3831138 -1.0888056

Par défaut, R simule une loi normale centrée réduite, mais il est possible de changer les valeurs de la moyenne via l’argument mean, et l’écart-type via l’argument sd.

Afin de pouvoir répliquer des valeurs simulées, il est possible de fixer la graine du générateur de nombres aléatoires en utilisant la fonction  set.seed. Cela permet de répliquer une expérience aléatoire en limitant les variations :

set.seed(12345)
rnorm(5)
# [1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875
set.seed(12345)
rnorm(5)
# [1] 0.5855288 0.7094660 -0.1093033 -0.4534972 0.6058875

Vous noterez que nous obtenons les mêmes résultats !

Autres fonctions autour des lois de probabilités

Pour calculer les probabilités, on utilise  pnorm  . Ainsi, si l’on calcule  pnorm(0)  , on devrait trouver 0,5 et pour  pnorm(1.96), 97,5 % :

pnorm(0)
# [1] 0.5
pnorm(1.96)
# [1] 0.9750021

La fonction  dnorm  calcule la densité et en appliquant :

gx <- seq(-3,3,length=100)
plot(gx,dnorm(gx),type="l")

on retrouve le dessin de la courbe gaussienne.

Enfin, pour calculer les quantiles d’une normale centrée réduite, on applique :

qnorm(c(0.025,0.5,1))
# [1] -1.959964 0.000000 Inf

Le quantile à 2,5 % vaut bien -1,96, la médiane 0 et le quantile à 1 vaut l’infini. Pour les autres lois, nous avons :

  • unif  pour uniforme

  • t  pour la loi de Student

  • f  pour la loi de Fisher

  • exp  pour l’exponentielle

  • pois  pour la loi de Poisson

  • binom  pour la loi binomiale

En résumé

  • Vous pouvez générer des nombres aléatoires avec R pour représenter des phénomènes ou distributions concrètes.

  • Vous pouvez simuler des données selon une loi donnée.

  • Vous pouvez calculer la densité d’une loi donnée.

  • Vous pouvez calculer les probabilités selon une loi donnée.

  • Vous pouvez calculer les quantiles selon une loi donnée.

A présent, nous allons aller un peu plus loin dans l'analyse statistique en découvrant comment localiser les données manquantes au sein d'un dataframe.

Exemple de certificat de réussite
Exemple de certificat de réussite