Trucs et Astuces sous Scilab pour l’option Probabilités ?· 2014-09-30 · Trucs et Astuces sous…

Embed Size (px)

Text of Trucs et Astuces sous Scilab pour l’option Probabilités ?· 2014-09-30 · Trucs et Astuces...

  • Trucs et Astuces sous Scilabpour loption Probabilits et Statistiques

    Jean-Louis MarchandUniversit Rennes 2

    24 septembre 2014

    Table des matires

    1 Gnrer des variables alatoires 21.1 La fonction grand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 La simulation de lois plus gnrales . . . . . . . . . . . . . . . . . . . . . . . 21.3 les processus classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 Illustrations 52.1 Faire un graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Ce quil faut y mettre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3 Tests statistiques 113.1 Un peu de thorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Ce que lon peut faire faire Scilab lors dun test . . . . . . . . . . . . . . 13

    4 Identifier une erreur 15

    5 Pour en savoir plus 16

    1

  • 1 Gnrer des variables alatoires

    1.1 La fonction grand

    Cest la fonction indispensable dj intgre Scilab. De manire formelle, voilen rsum lutilisation de la fonction :

    X=grand(m,n, [nom de la l o i ] , [paramtres de la l o i ] ) ;

    Cette fonction gnre un matrice X m lignes et n colonnes dont les coefficientssont IID de loi fixe par les derniers arguments. Par exemple, si vous voulez simuler23 ralisations IID dune uniforme sur [0,1], il suffit de taper

    X=grand(23 ,1 , def ) ;

    Voici une liste non-exhaustive des lois implmentes dans Scilab, tapez

    help grand ;

    pour avoir une description complte de la fonction.,,

    Distribution Appel de la fonction Mises en garde

    Binomiale (N,p) grand(m,n,bin,N,p) -

    Exponentielle () grand(m,n,exp,1/lambda) moyenne 1

    Gaussienne (, 2) grand(m,n,nor,mu,sigma) cart-type

    Gomtrique (p) grand(m,n,geom,p) -

    Poisson () grand(m,n,poi,lambda) -

    Uniforme sur [0,1) grand(m,n,def) ; -

    Uniforme sur [, b) grand(m,n,unf,a,b) ; -

    Uniforme sur {k, . . . , } grand(m,n,uin,k,l) ; -

    1.2 La simulation de lois plus gnrales

    Une loi finie : La premire faon, et peut-tre la plus intuitive, consiste uti-liser la loi uniforme sur [0,1] pour raliser le tirage. Appelons P = (P1, . . . , Pn) laprobabilit qui nous intresse. On dcoupe alors le segment en intervalles de lon-gueurs P. On lance ensuite une variable uniforme sur [0,1] et on regarde dansquel intervalle elle tombe

    P=[1/6; 1/4; 1/6; 1/6; 1/6; 1/12] ;I=cumsum(P) ; / / on d f i n i t les bornes sup de chaque sous

    interval leU=grand(1 ,1 , def ) ;

    2

  • X=min( find (U

  • 0. 2 0 0. 2 0. 6] ;x0=1;X=grand(10 , markov ,P ,x0) ;

    Vous obtenez alors les 10 premiers instants de la chane sans la position initiale !Attention, lorsque lensemble est de grand cardinal, cela implique que vous ayez

    le temps de dfinir une matrice coefficient par coefficient sans vous tromper ! ce propos des fonctions existent pour gnrer rapidement des matrices. En

    effet, les fonctions diag et toeplitz permettent de crer rapidement des matricessurtout quand celles-ci sont de grande taille.

    Tout dabord pour raliser une matrice diagonale, il suffit de dfinir le vecteurdes coordonnes diagonales, par exemple

    D=[1:10] ;D=diag(D) ;

    La seconde fonction permet de crer des matrices tridiagonales ce qui est sou-vent utile. Par exemple, si lon sintresse la ruine du joueur : le jeu permet deremporter au maximum la somme b kemise en jeu par la Banque, le joueur arrive,lui, dans le jeu avec sa fortune ke ( < b). Le jeu consiste en une successionde parties,chacune de type exprience de Bernoulli. Le joueur remporte 1000e encas de victoire et perd 1000e dans le cas contraire. Le jeu sarrte si le joueur estruin ou sil empoche la somme maximum bke.

    Pour raliser des trajectoires des premiers pas de cette marche, on introduit leparamtre p qui donne la probabilit de gain sur une partie.

    function [X]=generateur( f ,b,p,nb_pas) ; / /0

  • o n est dterministe et {Un}n1 est une suite IID de variables uniformes sur [0,1].Cette relation savrera trs utile dans certains cas.

    Par exemple, une marche o on lance une gaussienne rduite et centre enXn1 pour dterminer Xn :

    function [X]=generateur(N,x0) ; / /N=nb de pas , x0=pos.i n i t i a l e

    X=[x0] ; / / i n i t i a l i s a t i on de la marchelast_posit ion=x0; / / derniere v is i te de la cha nefor k=1:N

    last_posit ion=grand(1 ,1 , nor , last_posit ion ,1) ;

    X=[X last_posit ion ] ;end;

    endfunction ;

    Processus de Poisson : premier exemple de processus temps continu. Dansce cas prcis on se concentre uniquement sur les temps de saut.

    / / gnration dun processus de Poisson( lambda) sur [ 0, t ]function [T]=generateur( t , lambda) ;

    while T($)

  • Figure 1 Fonction de rpartition sur le segment [0,7] du d pip.

    Le chiffre 5 donne la couleur rouge la courbe. Voici une liste du code des couleurs

    1 2 3 4 5 6 7 8 9Noir Bleu Vert Cyan Rouge Violet Jaune Blanc Bleu Marine

    Essayez dviter les couleurs trop claires comme le jaune et le vert qui peuventne pas apparatre sur lcran, surtout via un vidoprojecteur.

    La fonction lisse : les arguments de plot2d sont de mme nature, cependantle graphique est obtenu par interpolation linaire des points.

    Par exemple, pour reprsenter la densit dune variable gaussienne, de moyenne3 et de variance 4 sur le segment [7,7]

    x=[7: . 01:7] ;y=x3;y=exp(y^{2}/4) ;y=1/ (2sqrt (2%pi) ) y;c l f ;plot2d(x ,y ,2) ;

    Figure 2 Densit dune variable gaussienne de moyenne 3 et de variance 4.

    6

  • Lhistogramme : trs apprci pour illustrer par exemple une convergence enloi en utilisant les densits, celui-ci requiert une collection de valeurs et le nombretotal de classes.

    Par exemple, on simule un grand nombre (10000) de variables IID de loi ex-ponentielle de paramtre 2, on devrait retrouver laide de lhistogramme uneapproximation alatoire de la densit correspondante (avec 20 classes ici)

    X=grand(10000 ,1 , exp , . 5) ;c l f ;h istplot (20 ,X,9) ;x=[0: . 01:max(X) ] ;plot2d(x ,2exp(2x) ,5) ;

    Figure 3 En bleu marine, histogramme de 10000 copies indpendantes dunevariable exponentielle de paramtre 2 rparties en 20 classes. En rouge, la densitde la variable.

    Les tracs 2D de manire plus gnrale Si lon veut tracer autre chose quele graphe dune fonction, on utilise plot2d.

    Par exemple, pour reprsenter une marche alatoire sur Z2

    function [X]=trajectoire (nb_pas ,P) ; / / P proba sur 1,2,3 ,4X=[0; 0 ] ;nord=[0; 1] ;sud=[0; 1] ;est=[1; 0] ;ouest=[1; 0] ;M=[ nord sud est ouest] ;P(4)=[ ] ; / / se souvenir que l on ne doit avoir que 3

    coordonnesfor k=1:nb_pas

    sens=grand(1 , mul ,1 ,P) ;X( : , k+1)=X( : , k)+Msens ;

    endplot2d(X(1 , : ) ,X(2 , : ) ,2) ;

    endfunction

    7

  • Figure 4 Reprsentation des 10000 premiers pas de la marche alatoire sur Z2

    initialise en (0,0).

    La dcoration : en plus de tracer les bons graphiques, il est toujours de bongot dy ajouter deux trois informations qui les rendent lisibles. Il est ainsi possibledajouter un titre gnral, un galement pour chaque axe. De plus, lorsquil y a plu-sieurs courbes, une lgende permet dafficher la correspondance entre les couleurset les courbes reprsentes Reprenons lexemple prcdent o deux courbes ap-paraissent, nous pouvons dfinir un titre de taille de police 4, sinon cest un peupetit. De mme, on obtient les axes et la lgende des diffrentes courbes

    X=grand(10000 ,1 , exp , . 5) ;c l f ;h istplot (20 ,X,9) ;x=[0: . 01:max(X) ] ;plot2d(x ,2exp(2x) ,5) ;t i t l e ( I l l us t ra t ion de la convergence vers une densit ,

    fontsize ,4) ;xlabel ( Axe des x , fontsize ,4) ;ylabel ( Axe des y , fontsize ,4) ;legends( [ Histogramme ; Densit ] , [9;5] ,opt=ur , font_size=

    4) ;

    Largument opt=ur indique lemplacement de la lgende, en haut droite (upper-right).

    Figure 5 Cest dj mieux, non ?

    8

  • La multiplication des graphes dans une mme fentre : Si lon veut dispo-ser deux ou plusieurs graphiques en mosaque, il y a plus pratique que manipulerplusieurs fentres. La fonction utilise pour cela est subplot(m,n,N) qui dfinitune matrice de taille m n dautant de graphiques, et 1 N mn est le numrolexicographique de la fentre dans laquelle on veut tracer.

    X=grand(10000 ,1 , exp , . 5) ;c l f ;subplot (1 ,2 ,1) / / premier graphehistplot (20 ,X,9) ;x=[0: . 01:max(X) ] ;plot2d(x ,2exp(2x) ,5) ;t i t l e ( I l l us t ra t ion de la convergence vers une densit ,

    fontsize ,2) ;xlabel ( Axe des x , fontsize ,2) ;ylabel ( Axe des y , fontsize ,2) ;legends( [ Histogramme ; Densit ] , [9;5] ,opt=ur , font_size=

    2) ;subplot (1 ,2 ,2) / / deuxime graphex=[7: . 01:7] ;y=x3;y=exp(y^{2}/4) ;y=1/(2sqrt (2%pi) ) y;plot2d(x ,y ,2) ;t i t l e ( Densit de la gaussienne de moyenne 3 et de variance

    4 , fontsize ,2) ;xlabel ( Axe des x , fontsize ,2) ;ylabel ( Axe des y , fontsize ,2) ;

    Figure 6 Disposition de deux graphes en lignes dans une mme fentre graphique.

    9

  • 2.2 Ce quil faut y mettre

    Nous allons essayer ici de prsenter ce qui est souvent attendu par un jury dansles illustrations graphiques en gnral.

    La plupart du temps, ces graphiques cherchent mettre en vidence un rsultatde convergence. Les outils diffrent quelque peu, suivant le type de convergenceque lon cherche dmontrer.

    La convergence en loi : Pour la convergence en loi, on pourra utiliser des den-sits ou des fonctions de rpartition suivant les cas.

    Nous avons dj vu le cas de la densit, nous allons maintenant voir commentfaire pour mettre en vidence la convergence des fonctions de rpartition em-piriques vers la thorique. Pour cela, nous pouvons par exemple partir