torna all'indice del modulo - del corso

Distribuzioni di probabilità
Versione 0.8

Indice del modulo

dip.01 - Distribuzioni
dip.03 - Fattoriali
dip.04 - Fattoriali e function Gamma
dip.05 - Coefficienti binomiali
dip.06 - Calcolo dei coefficienti binomiali
dip.10 - Numeri pseudocasuali; presentazione di loro distribuzioni
dip.11 - Istogramma di una sequenza pseudocasuale uniforme
dip.12 - Istogramma di una sequenza pseudocasuale normale
dip.13 - Istogrammi di matrici di sequenze pseudocasuali
dip.14 - Confronto grafico fra sequenze pseudocasuali uniformi
dip.15 - Confronto grafico fra sequenze pseudocasuali normali
dip.16 - Confronto grafico fra sequenze pseudocasuali uniforme e normale
dip.20 - Distribuzione binomiale
dip.21 - Sequenze di valori della distribuzione binomiale
dip.22 - Sequenze della distribuzione binomiale con tre comandi
dip.23 - Verifica della normalizzazione
dip.24 - Media e varianza per distribuzioni binomiali
dip.25 - Grafici per una distribuzione binomiale
dip.26 - Grafici per confrontare distribuzioni binomiali
dip.30 - Distribuzione di Poisson
dip.32 - Calcolo e grafico di distribuzione poissoniana
dip.33 - Confronto fra distribuzioni poissoniane
dip.40 - Distribuzione normale
dip.41 - Distribuzione normale standard
dip.42 - Calcolo e grafico della distribuzione normale standard
dip.43 - Confronto fra distribuzioni gaussiane

torna all'indice del modulo - del corso

dip.01 - Distribuzioni

In questo modulo vengono presentate alcune delle piu` importanti ed utilizzate funzioni di distribuzione insieme con le corrispondenti cumulative.Inoltre vengono presentate simulazioni dei relativi processi basate sulla generazione di numeri pseudocasuali e confronti tra i risultati di tali simulazioni con le previsioni delle distribuzioni.

torna all'indice del modulo - del corso

dip.03 - Fattoriali

Per fattoriale di un intero positivo n si intende il prodotto degli interi 1, 2, 3, .. , n: si intende inoltre che il fattoriale di 0 sia 1; il fattoriale dell'intero non negativo n si denota n! I fattoriali degli interi piu` piccoli si calcolano facilmente e si trova la seguente tabella:

012345 678910
112624120 7205040403203628803628800

Questa tabella si puo` considerare una rappresentazione parziale di una funzione definita per valori interi non negativi della variabile indipendente ed a valori interi positivi, la funzione fattoriale. I fattoriali sono coefficienti numerici molto importanti che risultano utili in moltissimi problemi computazionali. In effetti il fattoriale di n da` il numero delle permutazioni di n oggetti diversi.

torna all'indice del modulo - del corso

dip.04 - Fattoriali e function Gamma

Nell'ambito di MATLAB i fattoriali si possono calcolare servendosi di una particolare function, la function Gamma. Questa function fornisce i valori di una funzione speciale di una variabile a valori complessi la quale ad ogni valore intero positivo fa corrispondere un fattoriale: precisamente

Gamma(n+1) = n!

Si puo` quindi costruire una sequenza dei primi fattoriali richiamando questa function:

>> fc=Gamma(1:11)
fc =
  Columns 1 through 6 
       1       1               6      2      120
  Columns 7 through 11 
     72     504    40320  362880 3628800

torna all'indice del modulo - del corso

dip.05 - Coefficienti binomiali

I coefficienti binomiali, che indicheremo Bnml(n,x), sono coefficienti enumerativi di grande importanza che si incontrano in numerosi problemi computazionali. Presentiamo le piu` importanti delle loro proprieta` partendo dalla loro definizione piu` conveniente dal punto di vista costruttivo.

Consideriamo il piano combinatorio, insieme dei punti di coordinate intere, limitandoci al primo quadrante, quello costituito dai punti di coordinate non negative (x,y). Consideriamo i cammini costituiti solo da tratti di lunghezza 1 orizzontali verso destra (tratti E, verso est) e verticali verso l'alto (tratti N, verso nord); tra questi consideriamo quelli che partono dall'origine (0,0) e giungono ad un certo punto (x,y), con x,y=0,1,2,3,... .
Definiamo come coefficiente binomiale Bnml(n,x) per n=0,1,2,3,... ed x=0,1,...,n il numero dei diversi cammini costituiti da tratti E ed N che vanno dall'origine al punto (x,n-x).

Da questa definizione si ottengono nel modo piu` agevole le proprieta` dei Bnml(n,x). Le piu`

Bnml(n,0) = 1

Bnml(n,n) = 1

Bnml(n,x) = Bnml(n,n-x)

Bnml(n,1) = Bnml(n,n-1) = n

Bnml(n,x) = Bnml(n-1,x) + Bnml(n-1,x-1)

Sum { x=0,...,n : Bnml(n,x) } = 2^n

Bnml(n,x) = n! / (x! (n-x)!) = n(n-1)...(n-x+1) / x!

(a+b)^n = Sum {x = 0,...,n : Bnml(n,x) a^x b^(n-x) }

torna all'indice del modulo - del corso

dip.06 - Calcolo dei coefficienti binomiali

Nell'ambito di MATLAB i coefficienti binomiali sono forniti come componenti delle matrici costruite dalla function pascal

>> pa6=pascal(7)
pa6 =
     1     1     1     1     1     1     1
     1     2     3     4     5     6     7
     1     3     6    10    15    21    28
     1     4    10    20    35    56    84
     1     5    15    35    70   126   210
     1     6    21    56   126   252   462
     1     7    28    84   210   462   94

La sequenza dei coefficienti Bnml(n,x) per x=0,...,n si puo` ottenere come diagonale principale della matrice ottenuta con il comando pascal(n+1) per riflessione delle colonne:

>> pa6rc=pa6(:,(7:-1:1))
pa6rc =
     1     1     1     1     1     1     1
     7     6     5     4     3     2     1
    28    21    15    10     6     3     1
    84    56    35    20    10     4     1
   210   126    70    35    15     5     1
   462   252   126    56    21     6     1
   924   462   210    84    28     7     1
>> bnml6=diag(pa6rc)'
bnml6 =
     1     6    15    20    15     6     1

torna all'indice del modulo - del corso

dip.10 - Numeri pseudocasuali; presentazione di loro distribuzioni

Molte situazioni reali che presentano caratteri aleatori possono essere utilmente simulate con il computer servendosi di sequenze di numeri la cui determinazione si potrebbe attribuire a "scelte casuali" ovvero a "meccanismi casuali". Sbrigativamente si parla di simulazioni mediante di numeri casuali. Piu` precisamente si parla di sequenze di numeri pseudocasuali. Queste sostanzialmente sono sequenze di numeri forniti da meccanismi appositi in grado di procedere illimitatamente nella loro generazione, sequenze i cui andamenti seguono regole non facilmente individuabili, e che costituiscono insiemi di valori che presentano proprieta` statistiche ben definite e stabili quando si considerano diverse sezioni delle sequenze. I procedimenti di generazione delle sequenze sono studiati in modo da garantire le accennate proprieta` statistiche.

Si utilizzano sequenze di migliaia o anche di milioni di numeri pseudocasuali. Le sequenze utili sono formate da numeri che si collocano negli intervalli dei numeri reali secondo determinate distribuzioni: in particolare servono numeri che seguono la distribuzione uniforme tra 0 ed 1 e numeri che seguono una distribuzione normale caratterizzata da un dato valor medio e da una determinata varianza.

MATLAB consente di ottenere sequenze pseudocasuali uniformi con la function rand e sequenze pseudocasuali normali con la function randn. Queste functions prevedono due argomenti e forniscono matrici di : nel modo piu` semplice si utilizzano per fornire sequenze pseudocasuali in vettori colonna ponendo ad 1 il loro secondo argomento.

torna all'indice del modulo - del corso

dip.11 - Istogramma di una sequenza pseudocasuale uniforme

Ci si puo` fare un'idea concreta di cosa si intende per sequenza pseudocasuale uniforme con i seguenti comandi.

>> RU = rand(10000,1);
>> hist (RU)
>>

torna all'indice del modulo - del corso

dip.12 - Istogramma di una sequenza pseudocasuale normale

Scoprire cosa si intende per sequenza pseudocasuale normale con le seguenti frasi.

>> RN = randn(10000,1);
>> hist (RN)
>>

torna all'indice del modulo - del corso

dip.13 - Istogrammi di matrici di sequenze pseudocasuali

Osservare come le sequenze pseudocasuali ottenute come successive colonne di una matrice presentano distribuzioni leggermente diverse.

>> RU3 = rand(10000,3);
>> hist (RU3)
>>
>> RN3 = randn(10000,3);
>> hist (RN3)
>>

torna all'indice del modulo - del corso

dip.14 - Confronto grafico fra sequenze pseudocasuali uniformi

Ricordiamo che MATLAB, mediante il comando subplot, consente di costruire pagine contenenti gruppi di piccoli grafici con i quali spesso si possono utilmente presentare diversi aspetti di dati problemi .

Costruzione di 4 piccoli grafici atti a chiarire le differenze fra sequenze pseudocasuali uniformi di diverse estensioni.

>> subplot(2,2,1); 
>> ru=rand(1000,1);
>> hist(ru)
>> subplot(2,2,2);  hist(rand(3000,1))
>> subplot(2,2,3);  hist(rand(10000,1))
>> subplot(2,2,4);  hist(rand(100000,1))

torna all'indice del modulo - del corso

dip.15 - Confronto grafico fra sequenze pseudocasuali normali

Con i seguenti comandi si tracciano 4 piccoli grafici atti a chiarire le differenze fra sequenze pseudocasuali normali di diverse estensioni.

>> subplot(2,2,1);  hist(rand(1000,1))
>> subplot(2,2,2);  hist(rand(3000,1))
>> subplot(2,2,3);  hist(rand(10000,1))
>> subplot(2,2,4);  hist(rand(100000,1))

torna all'indice del modulo - del corso

dip.16 - Confronto grafico fra sequenze pseudocasuali uniforme e normale

Ricordiamo che MATLAB consente di costruire pagine contenenti gruppi di piccoli grafici con i quali spesso si possono utilmente presentare diversi aspetti di dati problemi (matematici, fisici, tecnici, organizzativi, finanziari, ...).

Costruzione di due piccoli grafici atti a chiarire la distinzione fra sequenza pseudocasuale uniforme e normale.

>> RN=randn(10000,1);
>> RU=rand(10000,1);
>> x=min(RN):.2:max(RN);
>> subplot(1,2,2);
>> hist(RU,25)
>> title('Numeri pseudocasuali con distribuzione uniforme','FontSize',16)
>> subplot(1,2,1);
>> hist(RN,x)
>> title('Numeri pseudocasuali distribuzione normale','FontSize',16)
>>

torna all'indice del modulo - del corso

dip.20 - Distribuzione binomiale

Si tratta della distribuzione della forma

Dbn(x;n,p) = Bnml(n,x) p^x (1-p)^(n-x)

dove n e` intero positivo, x=0,1,...,n e 0<= p <= 1.

Riguarda processi nei quali si effettuano n tentativi indipendenti ciascuno dei quali ha la stessa probabilita` p di avere successo e, per x=0,1,2,...,n, fornisce la probabilita` di ottenere x successi.

E` chiamata anche distribuzione di Jacques Bernoulli

torna all'indice del modulo - del corso

dip.21 - Sequenze di valori della distribuzione binomiale

Una sequenza di valori della distribuzione binomiale relativi a fissati valori di n e p

Dbn(x;n,p) per x=0,1,...,n

si ottiene con i comandi seguenti

>> x=0:n
x =
     0     1     2     3     4     5     6
>> pp=p.^x
pp =
    1.0000    0.5000    0.2500    0.1250    0.0625    0.0313    0.0156
>> pq=q.^(n-x)
pq =
    0.0156    0.0313    0.0625    0.1250    0.2500    0.5000    1.0000
>> bnml6=diag(pa6rc)'
bnml6 =
     1     6    15    20    15     6     1
>> dbn=bnml6.*pp.*pq
dbn =
    0.0156    0.0938    0.2344    0.3125    0.2344    0.0938    0.0156
>> 

torna all'indice del modulo - del corso

dip.22 - Sequenze della distribuzione binomiale con tre comandi

Una sequenza di valori della distribuzione normale analoga alla precedente si puo` ottenere con comandi contenuti in tre linee

>> n=5; p=0.3; 
>> x=0:n; pa5=pascal(n+1); 
>> dbn30 = diag(pa5(:,(n+1:-1:1)))' .* p.^x .* (1-p).^(n-x)
dbn30 =
   0.1681    0.3601    0.3087    0.1323    0.0283    0.0024

Con il primo comando si determinano i valori dei due parametri n e p che si vogliono fissi; con la seconda linea si costruiscono dati intermedi e la terza ottiene la sequenza numerica richiesta. I comandi precedenti sono richiamabili facilmente agendo sul tasto con la freccia verso l'alto. Dunque successive modifiche alle sole definizioni della prima linea consentono di ottenere tutte le sequenze con indice x che possono interessare.

>> n=5; p=0.4; 
>> x=0:n; pa=pascal(n+1); 
>> dbn40 = diag(pa(:,(n+1:-1:1)))' .* p.^x .* (1-p).^(n-x)
dbn40 =
    0.0778    0.2592    0.3456    0.2304    0.0768    0.0102
>> n=5; p=0.5; 
>> x=0:n; pa=pascal(n+1); 
>> dbn50 = diag(pa(:,(n+1:-1:1)))' .* p.^x .* (1-p).^(n-x)
dbn50 =
    0.0313    0.1563    0.3125    0.3125    0.1563    0.0313

Le linee numeriche ottenute consentono di fare qualche confronto fra distribuzioni riguardanti eventi con probabilita` di successo diverse, rispettivamente 30%, 40% e 50%. Si osserva in particolare la simmetria dell'ultima sequenza, corrispondente al fatto che p=1-p.

torna all'indice del modulo - del corso

dip.23 - Verifica della normalizzazione

Mediante la function sum si verifica facilmente la normalizzazione delle sequenze di valori dbn30, dbn40 e dbm50 per le distribuzioni binomiali precedenti.

>> sum(dbn30), sum(dbn40), sum(dbn50)
ans =
    1.0000
ans =
     1
ans =
     1

Si osservi la diversa scrittura per la risposta nel primo caso e negli altri due: essa e` dovuta al fatto che nel primo caso sono stati effettuati calcoli su numeri che nel computer sono rappresentati in modo approssimato, contrariamente ai due casi successivi.

torna all'indice del modulo - del corso

dip.24 - Media e varianza per distribuzioni binomiali

Per la media della x, la media della x^2, la varianza e la deviazione standardo scarto quadratico medio della distribuzione binomiale Dbn(x;n,p) si hanno le seguenti espressioni:

<x> = n p

<x^2> = n p ( (n-1) p+1)

Var(x) = <x^2> - <x>^2 = n p (1-p)

Stndev(x) = sqrt( n p (1-p) )

Queste formule si possono immediatamente verificare sulle sequenze dbn30, dbn40 e dbm50 trovate in precedenza

>> sum(dbn30 .* x), n*0.3
ans =
    1.5000
ans =
    1.5000
>> sum(dbn40 .* x), n*0.4
ans =
    2.0000
ans =
     2
>> sum(dbn50 .* x), n*0.5
ans =
    2.5000
ans =
    2.5000
>> p=0.3; mx=sum(dbn30 .* x), n*p, mx2=sum(dbn30 .* x.^2), n*p*((n-1)*p+1),var=mx2-mx^2, n*p*(1-p), sqrt(var)
mx =
    1.5000
ans =
    1.5000
mx2 =
    3.3000
ans =
    3.3000
var =
    1.0500
ans =
    1.0500
ans =
    1.0247
>>p=0.4; mx=sum(dbn40 .* x), n*p, mx2=sum(dbn40 .* x.^2), n*p*((n-1)*p+1),var=mx2-mx^2, n*p*(1-p), sqrt(var)
mx =
    2.0000
ans =
     2
mx2 =
    5.2000
ans =
    5.2000
var =
    1.2000
ans =
    1.2000
ans =
    1.0954
>> p=0.5; mx=sum(dbn50 .* x), n*p, mx2=sum(dbn50 .* x.^2), n*p*((n-1)*p+1),var=mx2-mx^2, n*p*(1-p), sqrt(var)
mx =
    2.5000
ans =
    2.5000
mx2 =
    7.5000
ans =
    7.5000
var =
    1.2500
ans =
    1.2500
ans =
    1.1180

torna all'indice del modulo - del corso

dip.25 - Grafici per una distribuzione binomiale

Le caratteristiche di una distribuzione come le precedenti si possono osservare meglio attraverso un opportuno grafico. MATLAB in particolare mette a disposizione le functions plot e bar: una sequenza numerica come la dbn30 viene presentata dalla plot come una poligonale e dalla bar come un istogramma..

>> plot(dbn30)
>> bar (dbn30)

torna all'indice del modulo - del corso

dip.26 - Grafici per confrontare distribuzioni binomiali

La presentazione grafica risulta ancora piu` efficace quando si devono confrontare distribuzioni non molto diverse. Con i seguenti comandi si possono vedere le caratteristiche di 5 distribuzioni binomiali relative a probabilita` di successo del 10%, 20%, 30%, 40% e 50%.

>>  n=5; p=0.1; x=0:n;  q=1-p; pa=pascal(n+1); 
>>  dbn10 = diag(pa(:,(n+1:-1:1)))' .* p.^x .* q.^(n-x)
dbn10 =
    0.5905    0.3281    0.0729    0.0081    0.0005    0.0000
>> n=5; p=0.2; x=0:n;  q=1-p; pa=pascal(n+1); 
>>  dbn20 = diag(pa(:,(n+1:-1:1)))' .* p.^x .* q.^(n-x)
dbn20 =
    0.3277    0.4096    0.2048    0.0512    0.0064    0.0003
>> mdbn = [dbn10 ;dbn20 ;dbn30 ;dbn40 ; dbn50]'
mdbn =
    0.5905    0.3277    0.1681    0.0778    0.0313
    0.3281    0.4096    0.3601    0.2592    0.1563
    0.0729    0.2048    0.3087    0.3456    0.3125
    0.0081    0.0512    0.1323    0.2304    0.3125
    0.0005    0.0064    0.0283    0.0768    0.1563
    0.0000    0.0003    0.0024    0.0102    0.0313
>> plot(x,mdbn)

Con la matrice mdbn si sono raccolti gli andamenti delle 5 distribuzioni per colonne. La function plot applicata ad un vettore con n+1 comp[onenti e ad una matrice (n+1) x 5 (5 e` il numero delle distribuzioni confrontate) fornisce le pologonali a colori diversi per le sequenze delle successive colonne della matrice.

torna all'indice del modulo - del corso

dip.30 - Distribuzione di Poisson

Si tratta della distribuzione della forma

dPn(x;m) = m^x /x! exp(-m)

dove m e` un numero positivo ed x=0,1,2, ...

Riguarda processi nei quali si effettuano numerosi tentativi indipendenti ciascuno dei quali ha la stessa probabilita` piccola di avere successo e per x=0,1,2,... fornisce la probabilita` di ottenere un valore x quando la media dei successi ottenuti e` m.

Questa distribuzione e` stata introdotta per approssimare la distribuzione binomiale dBn(x;n,p) quando n e` grande, p piccolo ed m= np. Essa costituisce una buona approssimazione della distribuzione binomiale gia` quando m>10 e p=0.1.

torna all'indice del modulo - del corso

dip.32 - Calcolo e grafico di distribuzione poissoniana

I primi valori di una distribuzione di Poisson si possono ottenere con le seguenti comandi:

>> x=0:12; fc=Gamma(1:13);
>> P=2.^x ./ fc(x+1) .* exp(-2)
P =
  Columns 1 through 4 
   0.13533528323661   0.27067056647323   0.27067056647323   0.18044704431548
  Columns 5 through 8 
   0.09022352215774   0.03608940886310   0.01202980295437   0.00343708655839
  Columns 9 through 12 
   0.00085927163960   0.00019094925324   0.00003818985065   0.00000694360921
  Column 13 
   0.00000115726820
>> plot(x,P)    

torna all'indice del modulo - del corso

dip.33 - Confronto fra distribuzioni poissoniane

Si ottengono grafici significativi con comandi componibili facilmente da tastiera (quasi duplicabili) come i seguenti:

>> x=0:12; fc=Gamma(1:13);
>> m=2; P2=m.^x ./ fc(x+1) .* exp(-m);
>> m=1; P1=m.^x ./ fc(x+1) .* exp(-m);
>> m=0.5; Pum=m.^x ./ fc(x+1) .* exp(-m);
>> m=0.1; Pud=m.^x ./ fc(x+1) .* exp(-m);
>> plot(x,P2,x,P1,x,Pum,x,Pud);

Per valori piu` elevati di m si possono usare comandi ome i seguenti

>> x=0:40; fc=Gamma(1:41);
>> m=2; P2=m.^x ./ fc(x+1) .* exp(-m);
>> m=5; P5=m.^x ./ fc(x+1) .* exp(-m);
>> m=10; P10=m.^x ./ fc(x+1) .* exp(-m);
>> m=20; P20=m.^x ./ fc(x+1) .* exp(-m);
>> plot(x,P2,x,P5,x,P10,x,P20);

torna all'indice del modulo - del corso

dip.40 - Distribuzione normale

La distribuzione normale o gaussiana ha la forma

dGs(x;,m,s) = 1 / (sqrt(2 pi) s) exp( - (x-m)^2 / 2s^2 )

dove la variabile x ed il parametro m possono assumere qualsiasi valore reale, mentre il parametro s puo` assumere qualsiasi valore reale positivo.

La gaussiana costituisce una approssimazione della distribuzione binomiale dBn(x;n,p) e della poissoniana dPs(x,m) quando il numero delle prove e` molto grande e risultano importanti solo i valori vicini alla media m=np. Il parametro s esprime la deviazione standard della distribuzione.

La distribuzione normale ha grandissima importanza in quanto costituisce una buona approssimazione per la distribuzione dei valori ottenuti effettuando numerose prove per variabili aleatorie indipendenti aventi distribuzioni "sufficientemente regolari". In effetti si trova che la gaussiana in molte situazioni costituisce una buona distribuzione anche solo per prove ripetute poco piu` di 10 volte.

torna all'indice del modulo - del corso

dip.41 - Distribuzione normale standard

Le distribuzioni normali relative ai diversi valori dei parametri m, valor medio, ed s, deviazione standard si possono ricondurre abbastanza agevolmente ad una sola distribuzione chiamata gaussiana standard avente la forma

dGss(x) = dGs(x;0,1) = 1 / sqrt(2 pi) exp( - x^2 / 2 )

corrispondente al valor medio 0 ed alla deviazione standard 1.

In effetti una generica gaussiana si riconduce ad una gaussiana con media nulla attraverso una traslazione della ascissa, cioe` sostituendo la variabile x con la x-m. Inoltre la gaussiana cosi` ottenuta

dGs(x;0,s) = 1 / (sqrt(2 pi) s) exp( - x^2 / 2s^2 )

si riconduce alla normale standard sostituendo la sua variabile x con la s x e dividendo i suoi valori per s, cioe` effettuando contemporaneamente una semplice dilatazione delle ordinate ed una contrazione delle ascisse (se s>1) oppure una contrazione delle ordinate ed una dilatazione delle ascisse (se s<1). Le distribuzioni gaussiane quindi presentano una unica forma "a campana".

torna all'indice del modulo - del corso

dip.42 - Calcolo e grafico della distribuzione normale standard

Nel modo piu` semplice si ottiene mediante i seguenti comandi:

>> x=-4:0.05:4;
>> G=1/sqrt(2*pi) * exp(-x.^2./2);
>> plot (x,G)

torna all'indice del modulo - del corso

dip.43 - Confronto fra distribuzioni gaussiane

Si ottengono grafici significativi con i seguenti comandi:

>> m=0; s=1;
>> Gzu=1/(sqrt(2*pi)*s) * exp(-x.^2./(2*s^2));  
>> m=-1; s=1; 
>> Gmuu=1/(sqrt(2*pi)*s) * exp(-x.^2./(2*s^2));  
>> m=1; s=1.5; 
>> Gutm=1/(sqrt(2*pi)*s) * exp(-x.^2./(2*s^2));  
>> m=0.5; s=1.2; 
>> Gumud=1/(sqrt(2*pi)*s) * exp(-x.^2./(2*s^2));  
>> m=-0.5; s=0.5; 
>> Gmumum=1/(sqrt(2*pi)*s) * exp(-x.^2./(2*s^2));  
>> plot (x,Gzu,x,Gmuu,x,Gutm,x,Gumud,x,Gmumum)

torna all'indice del modulo - del corso