5.2 Il caso vettoriale
Avendo descritto il caso delle variabili reali con densità gaussiana, l’estensione al caso vettoriale è una generalizzazione, tecnica, ma tutto sommato diretta. Possiamo quindi iniziare dando la seguente definizione.
Definizione 5.3 (densità gaussiana vettoriale, definizione veloce) Si dice che una variabile aleatoria \(X \in \R^d\) ha densità continua gaussiana se vale \[ p(X=x) \propto \exp\bra{ \sum_{i,j=1}^d a_{ij} x_i x_j + \sum_{i=1}^d b_ix_i}, \quad \text{per ogni $x = (x_1, \ldots, x_d) \in \R^d$,}\] per degli opportuni parametri \(a = (a_{ij})_{i,j=1}^d \in \R^{d\times d}\), \(b = (b_i)_{i=1}^d \in \R^d\).
Stavolta il (multi-)parametro \(a = (a_{ij})_{i,j=1}^d\) corrisponde ad una matrice e \(b = (b_i)_{i=1}^d \in \R^d\) è un vettore. Sfruttando il calcolo matriciale e il prodotto scalare possiamo scrivere in forma compatta \[\sum_{i,j=1}^d a_{ij} x_i x_j + \sum_{i=1}^d b_ix_i = x \cdot (ax) + b \cdot x.\] Possiamo anche supporre \(a\) simmetrica (la parte simmetrica non darebbe alcun contributo) e definita positiva (altrimenti integrando su tutto \(\R^d\) non si ottiene un integrale finito).
Come nel caso reale, ma con un po’ più di calcoli (che omettiamo) si può ottenere una formula che collega i parametri \(a\), \(b\) con la matrice delle covarianze e il vettore dei valor medi di \(X\).
Proposizione 5.4 Sia \(X \in \R^d\) una variabile con densità gaussiana definita come sopra. Allora la matrice delle covarianze \(\Sigma_X\) è definita positiva (quindi invertibile) e vale \[ a = -\frac{1}{2}\Sigma_X^{-1}, \quad b = \Sigma_X^{-1}\E{X},\] ossia \[ \Sigma_X = -\frac{1}{2} a^{-1} \quad \E{X} = -\frac 1 2 a^{-1} b .\]
La formula della densità si può quindi riscrivere in termini di \(m =\E{X} \in \R^d\) e \(\Sigma_X \in \R^{d\times d}\), in modo analogo al caso reale.
Definizione 5.4 (densità gaussiana vettoriale, definizione usuale) Si dice che \(X \in \R^d\) ha densità continua gaussiana di vettore dei valor medi \(m \in \R^d\) e matrice delle covarianze \(\Sigma>0\), e si scrive brevemente \(\mathcal{N}(m, \Sigma)\), se vale \[ p(X=x ) \propto \exp\bra{ - \frac 1 2\bra{ (x-m)\cdot \Sigma^{-1} (x-m)} }.\] Più esplicitamente, si può mostrare che vale l’identità \[ p(X=x) = \exp\bra{ - \frac1 2\bra{ (x-m) \cdot \Sigma^{-1} (x-m)} } \frac{1}{\sqrt{ (2 \pi)^d \det(\Sigma)}}.\]
Come visualizzare una densità gaussiana vettoriale? Nel caso bidimensionale \(d=2\), possiamo usare una heatmap (mappa del calore) in cui si rappresentano i valori della densità come colori (colori luminosi corrispondono tipicamente a valori alti della densità, ma è sempre bene affiancare una scala esplicativa).
<- 0.1
deltax <- 0.1
deltay
<- seq(-3, 3, by = deltax)
x <- seq(-3, 3, by = deltay)
y
<- length(y)
N_y <- length(x)
N_x
# creiamo una matrice con i valori
# della densità
<- matrix(0, nrow = N_y, ncol = N_x)
densita
for (i in 1:N_x) {
for (j in 1:N_y) {
<- exp(-(x[i]^2 + y[j]^2)/2)/(2 *
densita[i, j]
pi)
}
}
# usiamo image() per produrre il
# grafico (lo mostriamo solo perché è
# un comando generale per plottare una
# matrice). In alternativa si può anche
# usare filled.contour(), come vedremo
# nel prossimo esempio. Usiamo una
# scala di colori studiata perché sia
# accessibile anche alle persone che
# hanno difficoltà a percepire i
# colori.
library(viridis)
image(x, y, densita, col = viridis(20))
Cosa accade se cambiamo la matrice di covarianza? la figura sotto mostra il caso di \[ \Sigma = \bra{ \begin{array}{cc} 2 & 1 \\ 1 & 1 \end{array} }.\]
# usiamo la libreria mvtnorm per le
# densità gaussiani vettoriali generali
# (così non dobbiamo scrivere la
# formula esplicita)
library("mvtnorm")
# definiamo il vettore dei valor medi m
# e la matrice di covarianza K
<- c(0, 0)
m <- matrix(c(2, 1, 1, 1), nrow = 2)
K
<- 0.1
deltax <- 0.1
deltay
<- seq(-3, 3, by = deltax)
x <- seq(-3, 3, by = deltay)
y
<- length(x)
N_x <- length(y)
N_y
# creiamo una matrice con i valori
# della densità
<- matrix(0, nrow = N_y, ncol = N_x)
densita
for (i in 1:N_x) {
for (j in 1:N_y) {
<- dmvnorm(c(x[i],
densita[i, j]
y[j]), m, K)
}
}
# usiamo stavolta filled.contour() per
# produrre il grafico e la scala di
# valori accanto
filled.contour(x, y, densita, color.palette = viridis,
xlab = "x", ylab = "y")
Un modo alternativo è di rappresentare solamente una più “curve di livello” della densità, ossia i punti del piano \((x,y) \in \R^2\) tali che \(P((X,Y) = (x,y) ) = c\) per un fissato valore \(c>0\). Vediamo lo stesso esempio di sopra (basta cambiare il comando per il plot).
# usiamo contour() per produrre il
# grafico. Possiamo specificare quali
# livelli disegnare con l'opzione
# levels. Se non specificata R gestisce
# in automatico quali livelli
# rappresentare
contour(x, y, densita, col = miei_colori[5],
lwd = 2, xlab = "x", ylab = "y")
Remark. Vediamo che gli insiemi di livello sono delle ellissi: questo si spiega facilmente, perché l’insieme degli \(x\) tale che \(p(X=x) = c\) coincide con quello di \(\log( p(X=x)) = \log c\), e poiché la densità gaussiana è l’esponenziale di un polinomio di grado due (una “forma quadratica”), si trova l’equazione di una tra le figure geometriche ellisse (o circonferenza), parabola o iperbole. Tuttavia le ultime due non possono mai presentarsi, visto che la densità è infinitesima all’infinito (si avrebbe altrimenti un valore \(c>0\) per alcuni \(x\) arbitrariamente grandi).
Remark. La densità gaussiana pure nel caso vettoriale è identificata dal vettore dei valor medi \(m\) e dalla matrice delle covarianze \(\Sigma\). Analogamente al caso reale, si può mostrare che essa è la densità di massima entropia quando tali parametri sono fissati.
Vediamo ora le proprietà principali per la densità gaussiana nel caso vettoriale. La formula di cambio di variabile per densità continue permette di mantenere densità gaussiane tramite mappe lineari affini.
Proposizione 5.5 Sia \(X \in \R^d\) una variabile con densità gaussiana \(\mathcal{N}(m,\Sigma)\) e sia \(A \in \R^{k\times d}\), \(b \in \R^k\). Allora, la variabile \(Y = AX+b\) ha densità gaussiana \(\mathcal{N}(Am+b, A \Sigma A^T)\), purché \(A \Sigma A^T\) sia invertibile (o, il che è lo stesso, definita positiva).
La condizione \(A \Sigma A^T\) definita positiva garantisce che la densità esista. In realtà, come nel caso reale, è utile includere anche i casi degeneri in cui è solamente semi-definita positiva (accenniamo come fare questa estensione verso la fine della sezione). Per ora applicheremo il risultato senza preoccuparci di questa condizione. Una prima conseguenza riguarda il caso di \(k=1\), ossia di variabili gaussiane reali ottenute da un vettore aleatorio gaussiano (ad esempio, le marginali).
Corollario 5.1 Sia \(X \in \R^d\) una variabile con densità continua \(\mathcal{N}(m, \Sigma)\). Allora 1. ogni marginale \(X_i\) ha densità \(\mathcal{N}(m_i, \Sigma_{ii})\), 2. per ogni \(v \in \R^d\), la variabile \(v \cdot X = \sum_{i=1}^d v_i X_i\) ha densità \(\mathcal{N}(v \cdot m, v \cdot \Sigma v)\).
Esempio 5.1 (somma di gaussiane reali) Ad esempio, se le due marginali \(X_1\), \(X_2\) di \(X\) sono non correlate, sa ha che, ponendo \(v = (1,1,0,0,\ldots)\) la variabile \(X_1+X_2\) ha densità \(\mathcal{N}(m_1+m_2, \sigma_{X_1}^2 + \sigma_{X_2}^2)\).
Una conseguenza importante riguarda le variabili standardizzate.
Corollario 5.2 Sia \(X \in \R^d\) una variabile con densità continua \(\mathcal{N}(m, \Sigma)\). Allora la variabile standardizzata \[ Z = \sqrt{D}^{-1} U (X-m) \quad \text{ha densità continua $\mathcal{N}(0, Id)$,}\] detta anche gaussiana standard vettoriale. La densità esplicita è piuttosto semplice e vale \[ P(Z= z | \mathcal{N}(0, Id)) = \exp\bra{ - \frac1 2 \sum_{i=1}^d z_i^2 } \frac{1}{\sqrt{ (2 \pi)^d}}. \]
Notiamo che la densità si decompone come prodotto di densità gaussiane standard reali (corrispondenti ai valori delle marginali): \[ \exp\bra{ - \frac1 2 \sum_{i=1}^d z_i^2 } \frac{1}{\sqrt{ (2 \pi)^d}} = \prod_{i=1}^d \exp\bra{ - \frac1 2 z_i^2 } \frac{1}{\sqrt{ 2 \pi}}.\] Ne segue che le variabili marginali \(Z_1\), \(Z_2\), \(Z_d\) sono indipendenti, oltre ad essere non correlate. Per le variabili con densità gaussiana l’indipendenza è praticamente equivalente alla non correlazione: vale infatti il seguente risultato (non vero in generale per variabili non gaussiane!).
Proposizione 5.6 Siano \(X \in \R^d\), \(Y \in \R^k\) variabili aleatorie indipendenti con densità gaussiane. Allora la variabile congiunta \((X,Y) \in \R^{d+k}\) ha densità gaussiana.
Viceversa, se la variabile congiunta \((X,Y) \in \R^{d+k}\) ha densità gaussiana e \(\Cov{X_i,Y_j} = 0\) per ogni \(i\in \cur{1, \ldots, d}\), \(j \in \cur{1, \ldots, k}\), allora \(X\) e \(Y\) sono indipendenti.
Proof. Nel primo caso, la densità congiunta è il prodotto delle densità marginali. Usando la definizione veloce, scriviamo \[p( (X,Y)=(x,y)) = p(X=x) p(Y=y) \propto \exp\bra{ x\cdot ax + b \cdot x} \exp\bra{ y \cdot a' y + b' \cdot y}\] per opportuni (multi-)parametri \(a\), \(b\), \(a'\), \(b'\). Le proprietà dell’esponenziale implicano la densità si scrive come un’esponenziale di un polinomio di secondo grado nelle variabili \(x=(x_i)_{i=1}^d\) e \(y=(y_j)_{j=1}^k\), pertanto è una densità gaussiana.
Viceversa, se la variabile congiunta ha densità gaussiana e \(\Cov{X_i, Y_j} = 0\), significa che la varianza \(\Sigma_{(X,Y)}\) ha una struttura di matrice a blocchi, \[ \Sigma_{(X,Y)} = \bra{ \begin{array}{cc} \Sigma_X & 0 \\ 0 & \Sigma_Y \end{array}}.\] Ora si può mostrare che l’inversa \(\Sigma_{(X,Y)}^{-1}\) ha pure la struttura a blocchi (nel caso \(2\times 2\) è immediato): \[ \Sigma_{(X,Y)}^{-1} = \bra{ \begin{array}{cc} \Sigma_X^{-1} & 0 \\ 0 & \Sigma_Y^{-1} \end{array}}.\] Perciò, il termine quadratico nella densità congiunta si spezza come somma di due termini quadratici associati alle marginali: \[ (x,y) \cdot \Sigma_{(X,Y)}^{-1}(x,y) = x \cdot \Sigma_X^{-1} x + y \cdot \Sigma_Y ^{-1} y\] e lo stesso per il termine lineare \[ (m_X, m_Y) \cdot (x,y) = m_X \cdot x + m_Y \cdot y\] in conclusione, la densità congiunta si spezza come prodotto di due densità marginali \[ p( (X,Y)=(x,y)) \propto \exp\bra{ -\frac 1 2 x \cdot \Sigma_X^{-1} x + m_X \cdot x} \exp\bra{ -\frac 1 2 y \cdot \Sigma_Y^{-1} y + m_Y \cdot y} \] e quindi vale l’indipendenza.
Esempio 5.2 (somma di gaussiane indipendenti) Riprendendo l’esempio della somma delle marginali del vettore gaussiano, segue che se \(X\), \(Y\) sono due variabili gaussiane reali indipendenti, allora \((X, Y)\) è un vettore gaussiano e quindi la somma delle marginali \(X+Y\) è gaussiana (reale) con i parametri naturali (somma delle medie e somma delle varianze) \(\mathcal{N}(m_X+m_Y, \sigma_{X}^2 + \sigma_{X}^2)\).
Dato un vettore gaussiano \((X,Y)\), non solo le marginali \(X\) e \(Y\) hanno densità gaussiana, ma anche la densità condizionale di una marginale, diciamo \(X\), rispetto all’altra (\(Y\)) è gaussiana, come mostra la seguente proposizione (i parametri si possono anche calcolare esplicitamente, ma non lo riportiamo per semplicità).
Proposizione 5.7 Sia \((X,Y) \in \R^{d+k}\) un vettore aleatorio con densità gaussiana. Allora, per ogni \(y \in \R^k\), condizionatamente a \(\cur{Y=y}\), la densità di \(X \in\R^d\) è gaussiana.
Proof. Ricordiamo che la densità condizionale si può ottenere dalla densità congiunta “congelando” la variabile rispetto alla quale si condiziona \(y\) (a essere precisi non si trova direttamente la densità, perché bisognerebbe comunque moltiplicare per una costante opportuna, ma a noi basterà questo, per riconoscere la densità gaussiana). È chiaro che, se all’esponente abbiamo un polinomio di secondo grado nelle variabili \(x\), e \(y\), fissando la \(y\) otterremo comunque un polinomio di secondo grado nella \(x\). Pertanto non vi è dubbio che la densità condizionale di \(X\) sapendo \(Y=y\) è gaussiana.
Concludiamo con un risultato che riguarda la funzione generatrice dei momenti e la funzione caratteristica di una variabile gaussiana nel caso vettoriale.
Proposizione 5.8 Sia \(X \in \R^d\) una variabile con densità continua gaussiana \(\mathcal{N}(m, \Sigma)\). Allora \[ \operatorname{MGF}_X(t) = \exp\bra{ m\cdot t + \frac{1}{2} t \cdot \Sigma t},\] e \[ \varphi_X(\xi) = \exp\bra{ im\cdot\xi - \frac{1}{2} \xi \cdot \Sigma \xi}.\]
Proof. Basta notare che, fissato \(t \in \R^d\), la variabile reale \(X\cdot t\) ha densità gaussiana di media \(m \cdot t\) e varianza \(t \cdot \Sigma t\). Pertanto usando la \(\operatorname{MGF}\) già nota nel caso delle variabili gaussiane reali, segue che \[ \operatorname{MGF}_X(t) = \E{\exp\bra{ t \cdot X}}=\operatorname{MGF}_{X \cdot t} (1) = \exp\bra{ m\cdot t + \frac{1}{2} t \cdot \Sigma t}.\] Similmente per la funzione caratteristica.
Remark. Notiamo che sia la funzione generatrice dei momenti che la funzione caratteristica sono esponenziali di polinomi di secondo grado nelle variabili (\(t\) e \(\xi\) rispettivamente). Tuttavia, rispetto alla densità, la matrice di covarianza \(\Sigma\) non è invertita, né il suo determinante compare al denominatore (in effetti, proprio non compare). Pertanto, le espressioni continuano ad avere senso anche nel caso degenere, in cui \(\Sigma\) è semidefinita positiva (ma non necessariamente invertibile). Ricordando che la funzione caratteristica identifica in modo unico la legge di una variabile aleatoria (sia he abbia densità, ma anche se non ce l’ha), questa espressione permette allora di **definire* una variabile aleatoria vettoriale gaussiana anche nel caso in cui non abbia densità continua. L’intepretazione in tali casi è che la densità continua si concentra “troppo” in un sottospazio affine di dimensione più bassa dello spazio ambiente \(\R^d\). Per visualizzare cosa accade, diamo un plot nel caso “quasi degenere” ponendo ad esempio \[ \Sigma = \bra{ \begin{array}{cc} 1 & 0.99 \\ 0.99 & 1\end{array}}.\]
# definiamo il vettore dei valor medi m
# e la matrice di covarianza K
<- c(1, 1)
m <- matrix(c(1, 0.99, 0.99, 1), nrow = 2)
K
<- 0.05
deltax <- 0.05
deltay
<- seq(-4, 4, by = deltax)
x <- seq(-4, 4, by = deltay)
y
<- length(x)
N_x <- length(y)
N_y
# creiamo una matrice con i valori
# della densità
<- matrix(0, nrow = N_y, ncol = N_x)
densita
for (i in 1:N_x) {
for (j in 1:N_y) {
<- dmvnorm(c(x[i],
densita[i, j]
y[j]), m, K)
}
}
contour(x, y, densita, levels = c(0.001,
0.01, 0.1, 1), col = miei_colori[5],
lwd = 1, xlab = "x", ylab = "y")
5.2.1 Esercizi
Esercizio 5.4 Dire se la matrice \[ \Sigma = \bra{ \begin{array}{cc} 2 & -1 \\ -1 & 3 \end{array} }.\] può essere la matrice di covarianza di una variabile gaussiana. In caso affermativo, usare opportuni comandi R per visualizzare (come heatmap oppure curve di livello) la densità.
Esercizio 5.5 Sia \((X,Y)\) un vettore aleatorio gaussiano a valori in \(\R^2\) con valor medio \(m =(1,-2)\) e covarianza \[ \Sigma = \bra{ \begin{array}{cc} 4 & -3 \\ -3 & 4 \end{array} }.\] - Determinare la densità della variabile \(Z = X+2Y\). - Dire se la variabile \((X,Z)\) è gaussiana e determinarne i parametri (suggerimento scriverla come trasformazione lineare di \((X,Y)\)). - Usare opportuni comandi R per visualizzare la densità di \((X,Y)\) e \((X,Z)\).