Esercitazione con generatori di numeri casuali Seconda parte Sommario Trasformazioni di Variabili Aleatorie Trasformazione non lineare: numeri casuali di tipo Lognormale Trasformazioni affini Numeri casuali di tipo T di student Vettori di numeri casuali 2 - Generazione di numeri casuali Parte 2 1
Introduzione Nelle lezioni di teoria si è visto come funzioni di variabili aleatorie siano anche esse variabili aleatorie. Trasformazioni lineari preservano la natura del tipo di variabile aleatoria In particolare, trasformazioni lineari di VA Gaussiane sono ancora Gaussiane Tale proprietà non è in genere verificata per trasformazioni non lineari Teoria 3 Esercizio Si generi un vettore di 10000 numeri casuali provenienti da una variabile aleatoria di tipo Gaussiano di media = 1.0 e deviazione standard =0.5 (Toolbox Statistics: normrnd; Stixbox: rnorm) Di ciascun esito casuale valutare la seguente trasformazione non lineare Z = exp(y) Calcolare media e varianza del nuovo campione di dati z 1. Rappresentare graficamente il campione di dati 2. Rappresentare in un opportuno istogramma normalizzato la distribuzione dei dati (comando histo) 3. Confrontare l istogramma con la funzione densità di probabilità di tipo lognormale con parametri lambda = 1.0 e zeta = 0.5 (la funzione densità di probabilità per la lognormale è disponibile con stixbox con il comando dlognorm, con il toolbox statistics, con il comando lognpdf) 4. Commentare eventualmente i risultati Programmi WEB 4 - Generazione di numeri casuali Parte 2 2
Esercizio (continua) La variabile aleatoria di tipo Lognormale è una derivata della gaussiana La media e la varianza della lognormale non coincidono con la media e la varianza della Gaussiana generatrice 0.3 0.25 0.2 0.15 0.1 0.05 0 0 2 4 6 8 10 12 14 16 18 20 Programmi WEB 5 Esercizio Trasformazioni affini Si generino dei vettori di numero casuale di tipo Gaussiano di media 2 e deviazione standard 1.5 con il comando rnorm, (o, alternativamente il comando normrnd) ovvero dei vettori di numeri casuali provenienti da una VA: Y~N ( Y =2, 2 Y=1.5 2 ) Le dimensioni dei vettori siano 10,000 Si stimino per ciascuno dei vettori La media del campione La varianza del campione Si considerino quindi i vettori di numeri casuali ottenuti con la seguente trasformazione: Y Y 2 Y Z 1.5 Y 6 Programmi WEB - Generazione di numeri casuali Parte 2 3
Esercizio Trasformazioni affini Domande: 1. Valutare media e varianza della nuova Variabile Aleatoria Z 2. In genere, data una VA Y ~ N( Y, 2 Y) e la seguente trasformazione affine: Y Z quale è la media e la varianza della nuova VA Z? Tali valori cambiano al variare della media e della varianza? 3. Calcolare media e varianza del campione di dati trasformati e confrontare con i valori teorici Y Y Teoria 7 Esercizio Trasformazioni non lineari Si generino i seguenti gruppi di numeri casuali: 5 vettori colonna di numeri casuali provenienti da una variabile aleatoria normale di tipo standard ovvero di media 0 e varianza 1 Si consideri la seguente combinazione (non lineare) dei numeri casuali così generati Rappresentare graficamente il nuovo vettore di numeri casuali z Rappresentare i dati in un opportuno istogramma normalizzato usando il comando histo >> histo(z,400,0,1) z Programmi WEB (stixbox) x 1 x x x x 4 2 2 2 2 2 3 4 5 8 - Generazione di numeri casuali Parte 2 4
>> histo(z,400,0,1) Per una rappresentazione grafica significativa si suggerisce di scalare gli assi in modo da evidenziare le variazioni nella zona di maggior interesse >> axis([-5,5,0, 0.45]) Xmin Xmax Ymin Ymax Confrontare i risultati dell istogramma con la funzione densita di probabilità della T di student a 4 gradi di libertà >> xx = [-5:0.01:5]; >> yy = tpdf(xx,4); (o alternativamente: yy = dt(xx,4);) >> hold on >> plot(xx,yy,'r') - Programmi WEB 9 Esercizio (continua) Confrontare infine con la funzione densità di probabilità di una Gaussiana standard 0.45 0.4 0.35 >> yg = normpdf(xx,0,1); >> plot(xx,yg, k') alternativa (Stixbox): >> xx = [-5:0.01:5]; >> yg = dnorm(xx,0,1); 0.3 0.25 0.2 0.15 0.1 0.05 0-5 -4-3 -2-1 0 1 2 3 4 5 - Programmi WEB 10 - Generazione di numeri casuali Parte 2 5
Variabili aleatorie vettoriali Introduzione Nelle applicazioni, l esito di un processo casuale può essere anche rappresentato da più componenti, e non da un semplice scalare Esempi: misure di concentrazione di più composti sullo stesso campione Misure di pressione e temperatura in un reattore nelle stesse condizioni etc. etc. In tal caso l esito dell esperienza aleatoria non è più uno scalare ma un vettore ad N dimensioni Teoria 11 Variabili aleatorie vettoriali Nella parte di teoria si è introdotto il concetto di variabile aleatoria di tipo Vettoriale. Il Toolbox Statistics di Matlab permette di generare anche numeri casuali legati a variabili aleatorie di tipo vettoriale. L unico tipo di VA presa in considerazione è di tipo normale (e quella cosiddetta di Student) Interesse soprattutto dal punto di vista didattico 12 - Generazione di numeri casuali Parte 2 6
Istruzioni per l uso Per generare numeri casuali (di tipo scalare) provenienti da una VA di tipo normale era necessario definire: La media La deviazione standard Nel caso di una VA vettoriale (di dimensione 2) sarà quindi necessario introdurre almeno: Due medie Due varianze 13 Istruzioni per l uso Le variabili da definire nel generatore di numeri casuali: Un vettore mu delle medie delle singole componenti della VA Una matrice sigma che includa le varianze delle singole componenti della VA e le covarianze esistenti tra le VA 14 - Generazione di numeri casuali Parte 2 7
Creazione di numeri casuali vettoriali Definizione media Come primo passo si definiscano le medie delle singole componenti. >> mu = [0,0] mu = 0 0 Ovvero: La marginale relativa a Y1 ha media 0 La marginale relativa a Y2 ha media 0. 15 Creazione di numeri casuali vettoriali Definizione varianza Le varianze delle singole marginali è definita nella matrice sigma. lungo la diagonale >> sigma = [1.0,0;0,2] sigma = 1.0000 0 0 2.0000 Varianza di Y1 Varianza di Y2 I termini fuori diagonale sono nulli (per il momento) 16 - Generazione di numeri casuali Parte 2 8
Generazione di numeri casuali vettoriali - Istruzioni È possibile ora generare coppie di numeri casuali di tipo vettoriali con le medie e le covarianze definite prima. Il comando da eseguire è: >> xvec= mvnrnd(mu,sigma,n); Output Matrice numeri casuali generati. [n d] Ciascuna colonna si riferisce ad un esperienza. Le righe sono le differenti componenti Input Vettore media della VA vettoriale [d 1] Matrice varianze della VA vettoriale [d d] Numero di coppie di numeri casuali da generare (scalare: n) 17 Variabili aleatorie vettoriali Analisi delle singole componenti Rappresentazione su grafico delle osservazioni della prima componente del vettore di numeri casuali >> xvec1 = xvec(:,1) >> plot(xvec1, r. ); Rappresentazione su istogramma (normalizzato) della prima componente del campione >> histo(xvec1, 40, 0, 1) Programmi WEB 18 - Generazione di numeri casuali Parte 2 9
Variabili aleatorie vettoriali Analisi delle singole componenti Confronto con la pdf di una VA scalare Gaussiana di media e varianza coincidenti con la prima componente: >> hold on >> xx = [-3:0.05:3] ; >> yy = normpdf(xx,0,sqrt(0.5)); >> plot(xx,yy, r- ) Stima scalari associati alla prima componente del campione (da confrontare quindi con la marginale Y 1 ): >> mean(xvec1) >> var(xvec1) - Programmi WEB 19 Variabili aleatorie vettoriali Analisi delle singole componenti Ripetere la procedura per la seconda componente. >> xvec2 = xvec(:,2) In particolare: Valutare media e varianza Confrontare graficamente l istogramma delle frequenze relative normalizzato con la pdf di una Gaussiana di media =0 e deviazione standard = 2 È possibile trarre delle prime conclusioni sul set di dati? - Programmi WEB 20 - Generazione di numeri casuali Parte 2 10
Variabili aleatorie vettoriali Più interessante potrebbe essere l analisi CONGIUNTA delle due componenti >> cov(xvec1,xvec2) >> corrcoef(xvec1,xvec2 Anche per via grafica: >> plot(xvec1,xvec2, r. ) >> axis square 6 4 2 0-2 -4-6 -4-3 -2-1 0 1 2 3 4 È possibile anche una rappresentazione tridimensionale della frequenza relativa Programmi WEB >> gkde2(xvec) 21 Variabili aleatorie vettoriali Esercizio: Si ripeta la procedura considerando il seguente vettore media e la seguente matrice di covarianza: >> mu = [0, 0] ; >> sigma = [1.0, 1.3; 1.3, 2.0]; Commentare i risultati 22 - Generazione di numeri casuali Parte 2 11
Esercizio: Si ripeta la procedura considerando il seguente vettore media e la seguente matrice di covarianza: >> mu = [0, 0] ; >> sigma = [1.0,sqrt(2)-0.001;sqrt(2)-0.001,2.0]; Commentare i risultati - Programmi WEB 23 Generazione di numeri casuali - Esempio In conclusione: Entrambi le componenti Y1 e Y2 sono casuali e la probabilità che ciascuna di esse (indipendentemente dall altra) assuma un certo valore è stabilito dalla sua media e varianza. PERÒ La probabilità che Y1 assuma un certo valore è sensibilmente condizionata da quello che fa Y2, e viceversa. Le Variabili Aleatorie Y1 e Y2 sono DIPENDENTI. Teoria 24 - Generazione di numeri casuali Parte 2 12
Generazione di numeri casuali di tipo vettoriale - Considerazioni La dipendenza tra le due VA Y1 e Y2 è stabilita dal termine fuori diagonale della matrice La matrice in questione prende il nome di Matrice di Covarianza Nel primo caso (termine fuori diagonale nullo) la dispersione di Y1 non dipendeva da Y2 (e viceversa). Le VA erano INDIPENDENTI Viceversa, la presenza di un termine fuori diagonale diverso da zero indica la presenza di dipendenza tra le componenti la VA Teoria 25 Generazione di numeri casuali - Esempio Ultimo esempio: Si ripeta la procedura precedente considerando il seguente caso (limite): >> sigma = [0.5,1.0;1.0,2] sigma = 0.5000 1.0000 1.0000 2.0000 Commentare eventualmente i risultati - Programmi WEB 26 - Generazione di numeri casuali Parte 2 13