Lorsqu’on doit traiter un nombre important de variables aléatoires de différentes lois, il est
souvent difficile de calculer analytiquement un certain nombre de grandeurs caractéristiques
(valeurs moyennes, variances, paramètres de lois, quantiles, etc...). On doit alors avoir recours au
calcul numérique et à la simulation.
1 Le générateur aléatoire rand
La librairie standard d’un langage d’implémentation sur ordinateur contient généralement un
générateur de nombres aléatoires. L’appel à une fonction de type random fournit une suite de
nombres x1,...,xn∈ [0, 1] sensés être n réalisations X1(ω),...,Xn(ω) de n variables aléatoires
indépendantes de loi uniforme sur [0, 1].
Sous Scilab, la fonction rand permet de réaliser une telle simulation, à ceci près qu’elle permet
de générer des matrices aléatoires au lieu de simples listes.
Ainsi, l’appel à la fonction :
rand(m,n) fournit une matrice aléatoire de dimension m*n, dont chaque terme est la
réalisation d’une suite de m*n variables aléatoires indépendantes de loi uniforme sur
[0, 1]
rand(a) fournit une matrice aléatoire de même dimension que la matrice a
rand() sans argument retourne un scalaire.
Question 1Générer une suite de n réalisations de variables aléatoires de loi uniforme sur
[0, 1] (i.e. une matrice de dimension (1,n)) puis tracer l’histogramme correspondant avec lafonction histplot
Question 2Augmenter le nombre n. L’histogramme change-t-il significativement ?
La fonction rand permet également de simuler directement une matrice de variables aléatoires
indépendantes suivant une autre loi que la loi uniforme. Voici un exemple avec la loi
normale.
La deuxième ligne permet d’obtenir une suite de n variables aléatoires de loi normale
N(μ,σ2).
La quatrième ligne permet de revenir à la simulation ¡¡ uniforme ¿¿. On peut également avoir la
simulation ¡¡ normale ¿¿ par défaut, en tapant
-->rand('normal')
2 La fonction grand et les différentes lois simulées en standard
2.1 La fonction grand
La fonction grand est un générateur aléatoire qui permet de simuler des variables aléatoires d’un
certain nombre de lois. Elle s’appelle et fonctionne comme la fonction rand à ceci près qu’il faut
en plus entrer les arguments des différentes lois. Nous donnons ici quelques exemples
utiles.
Scilab propose également des fonctions cdf*, à partir desquelles on retrouve la fonction de
répartition, la densité et la fonction quantile des lois les plus courantes. On pourra se référer à
l’aide de Scilab, pour voir comment les appeler.
cdfbet - cumulative distribution function Beta distribution,
cdfbin - cumulative distribution function Binomial distribution,
cdfchi - cumulative distribution function chi-square distribution,
cdfchn - cumulative distribution function non-central chi-square distribution,
cdff - cumulative distribution function F distribution,
cdffnc - cumulative distribution function non-central f-distribution,
cdfgam - cumulative distribution function gamma distribution,
cdfnbn - cumulative distribution function negative binomial distribution,
cdfnor - cumulative distribution function normal distribution,
cdfpoi - cumulative distribution function poisson distribution,
cdft - cumulative distribution function Student’s T distribution.
3 Représentations graphiques
3.1 Diagrammes en bâtons avec plot2d3
La fonction plot2d3 permet de représenter des diagrammes en bâtons.
3.2 Histogrammes
La fonction histplot
La fonction histplot représente des histogrammes. Son premier paramètre peut être un entier
(nombre de classes), auquel cas l’histogramme est régulier, ou un vecteur donnant les bornes des
classes.
La fonction hist3d représente des histogrammes dans R3 mais n’effectue pas le calcul des
fréquences de classes.
Pour cela, on pourra utiliser la fonction freq2d définie ci-dessous. Elle prend en
entrée deux vecteurs de bornes, bornex et borney, et une matrice echant, à 2 lignes et
ncolonnes.
function f = freq2d(echant,bornex,borney)
// freq2d retourne une matrice dont les
// coefficients sont les frequences de echant
// relatives a bornex et borney