Analisi delle componenti principali (PCA): esercizi svolti

Indice dei contenuti

    L’analisi delle componenti principali (PCA) riduce la dimensionalità di un dataset trovando le direzioni di massima varianza, lungo cui i dati si dispongono. È lo strumento base per comprimere dati correlati, visualizzare e ridurre il rumore. Questa scheda allena il calcolo delle componenti principali a partire dalla matrice di covarianza.

    La PCA diagonalizza la matrice di covarianza: gli autovettori sono le componenti principali, gli autovalori le varianze lungo di esse.

    1. Matrice di covarianza

    Esercizio. Spiegare cosa rappresenta la matrice di covarianza in PCA.

    La matrice di covarianza \Sigma raccoglie varianze (diagonale) e covarianze (fuori diagonale) delle variabili:

    \Sigma=\begin{pmatrix}\operatorname{Var}(X_1)&\operatorname{Cov}(X_1,X_2)\\\operatorname{Cov}(X_2,X_1)&\operatorname{Var}(X_2)\end{pmatrix}.

    È simmetrica e semidefinita positiva. La PCA la diagonalizza: cerca un nuovo sistema di assi in cui le variabili siano scorrelate.

    2. Autovalori della matrice di covarianza

    Esercizio. Una matrice di covarianza è \Sigma=\begin{pmatrix}4&2\\2&4\end{pmatrix}. Trovare gli autovalori.

    Dal polinomio caratteristico \det(\Sigma-\lambda I)=0:

    (4-\lambda)^2-4=0\ \Rightarrow\ \lambda^2-8\lambda+12=0\ \Rightarrow\ (\lambda-6)(\lambda-2)=0.

    \lambda_1=6,\qquad \lambda_2=2.

    Gli autovalori sono le varianze lungo le componenti principali. Il maggiore (6) è la direzione di massima dispersione.

    3. Componenti principali (autovettori)

    Esercizio. Trovare la prima componente principale di \Sigma (autovettore di \lambda_1=6).

    Risolvo (\Sigma-6I)v=0: \begin{pmatrix}-2&2\\2&-2\end{pmatrix}v=0\Rightarrow v_1=v_2. Autovettore normalizzato:

    \text{PC}_1=\dfrac{1}{\sqrt2}(1,\ 1).

    La prima componente è la direzione a 45°: i dati variano di più lungo la “diagonale”, coerente con la covarianza positiva tra le due variabili.

    4. Varianza spiegata

    Esercizio. Calcolare la frazione di varianza spiegata dalla prima componente (autovalori 6 e 2).

    La varianza spiegata da una componente è il suo autovalore sulla somma:

    \dfrac{\lambda_1}{\lambda_1+\lambda_2}=\dfrac{6}{6+2}=\dfrac{6}{8}=0{,}75=75\%.

    La prima componente cattura il 75\% della varianza totale. Si possono quindi descrivere i dati con una sola dimensione perdendo solo il 25\% dell’informazione.

    5. Scelta del numero di componenti

    Esercizio. Con autovalori 6{,}0,\ 2{,}0,\ 0{,}8,\ 0{,}2, quante componenti tenere per spiegare almeno il 90\% della varianza?

    Varianza totale =6+2+0{,}8+0{,}2=9. Varianza cumulata:

    \text{PC1}:\dfrac{6}{9}=67\%,\quad \text{PC1+2}:\dfrac{8}{9}=89\%,\quad \text{PC1+2+3}:\dfrac{8{,}8}{9}=98\%.

    Per superare il 90\% servono 3 componenti (89% con 2 non basta). Si riduce da 4 a 3 dimensioni mantenendo il 98\% dell’informazione.

    6. Importanza della standardizzazione

    Esercizio. Perché in PCA conviene standardizzare le variabili prima del calcolo?

    La PCA è sensibile alla scala: una variabile con varianza grande (es. in metri vs millimetri) domina le componenti, indipendentemente dalla sua reale importanza.

    Standardizzando (z=(x-\mu)/\sigma) ogni variabile ha varianza 1: la PCA si basa allora sulla matrice di correlazione e tutte le variabili contribuiscono equamente. Senza standardizzazione, le unità di misura distorcono il risultato.

    7. Calcolo della covarianza da dati centrati

    Esercizio. Tre osservazioni centrate in due variabili sono:

    (-1,-1),\qquad (0,0),\qquad (1,1).

    Calcolare la matrice di covarianza campionaria.

    Scriviamo la matrice dei dati centrati:

    X= \begin{pmatrix} -1&-1\\ 0&0\\ 1&1 \end{pmatrix}.

    La covarianza campionaria è:

    \Sigma=\dfrac{1}{n-1}X^TX.

    Qui n=3, quindi:

    X^TX= \begin{pmatrix} (-1)^2+0^2+1^2 & (-1)(-1)+0\cdot0+1\cdot1\\ (-1)(-1)+0\cdot0+1\cdot1 & (-1)^2+0^2+1^2 \end{pmatrix} = \begin{pmatrix} 2&2\\ 2&2 \end{pmatrix}.

    Dunque:

    \Sigma=\dfrac{1}{2} \begin{pmatrix} 2&2\\ 2&2 \end{pmatrix} = \begin{pmatrix} 1&1\\ 1&1 \end{pmatrix}.

    Le due variabili sono perfettamente correlate: tutta la variabilità sta lungo la direzione (1,1).

    8. Proiezione di un punto sulla prima componente

    Esercizio. Con prima componente principale:

    w_1=\dfrac{1}{\sqrt2}(1,1),

    calcolare lo score del punto centrato x=(2,4).

    Lo score sulla componente è il prodotto scalare:

    z_1=x\cdot w_1.

    Quindi:

    z_1=(2,4)\cdot\dfrac{1}{\sqrt2}(1,1) = \dfrac{2+4}{\sqrt2} = \dfrac{6}{\sqrt2} = 3\sqrt2.

    Risultato:

    \boxed{z_1=3\sqrt2}.

    Lo score è la coordinata del punto nel nuovo asse della PCA. Non è una nuova variabile osservata: è una combinazione lineare delle variabili originali.

    9. Ricostruzione approssimata con una componente

    Esercizio. Usando lo score z_1=3\sqrt2 e il vettore:

    w_1=\dfrac{1}{\sqrt2}(1,1),

    ricostruire l’approssimazione monodimensionale del punto centrato.

    Con una sola componente:

    \hat{x}=z_1w_1.

    Sostituendo:

    \hat{x}=3\sqrt2\cdot\dfrac{1}{\sqrt2}(1,1)=(3,3).

    Il punto originale era:

    x=(2,4).

    L’errore di ricostruzione è:

    x-\hat{x}=(-1,1).

    La PCA ha conservato la parte lungo la diagonale (1,1) e scartato la parte ortogonale. Questo è il senso geometrico della riduzione dimensionale.

    10. Loadings e interpretazione

    Esercizio. Interpretare le componenti:

    \text{PC}_1=0{,}70X_1+0{,}71X_2,
    \text{PC}_2=0{,}71X_1-0{,}70X_2.

    La prima componente attribuisce peso positivo e quasi uguale a entrambe le variabili. Misura quindi un fattore comune: quando X_1 e X_2 aumentano insieme, lo score su PC1 cresce.

    La seconda componente mette le variabili in opposizione: cresce quando X_1 è alto e X_2 è basso, o viceversa con segno opposto. Misura un contrasto.

    Interpretazione:

    • \text{PC}_1 rappresenta la variazione condivisa;
    • \text{PC}_2 rappresenta la differenza tra le due variabili.

    I coefficienti delle componenti si chiamano spesso loadings. Vanno interpretati solo dopo aver chiarito se le variabili sono state centrate, standardizzate e orientate con lo stesso verso concettuale.

    11. Standardizzazione: effetto numerico

    Esercizio. Due variabili hanno varianze:

    \operatorname{Var}(X_1)=100, \qquad \operatorname{Var}(X_2)=1,

    e covarianza nulla. Che cosa accade alla PCA senza standardizzazione?

    La matrice di covarianza è:

    \Sigma= \begin{pmatrix} 100&0\\ 0&1 \end{pmatrix}.

    Gli autovalori sono:

    \lambda_1=100, \qquad \lambda_2=1.

    La prima componente coincide con l’asse X_1 e spiega:

    \dfrac{100}{101}\approx 99{,}0\%

    della varianza totale.

    Questo risultato può essere corretto se X_1 è davvero molto più variabile per ragioni fisiche rilevanti; è invece fuorviante se la differenza deriva solo dall’unità di misura. Standardizzando, entrambe le variabili avrebbero varianza 1 e la PCA non sarebbe dominata automaticamente da X_1.

    Errori comuni

    • Dimenticare la standardizzazione. Variabili su scale diverse falsano la PCA: una grande varianza “fittizia” da unità di misura domina le componenti.
    • Confondere autovalori e autovettori. Gli autovettori sono le direzioni (componenti); gli autovalori le varianze lungo di esse.
    • Tenere troppe poche componenti. Vanno scelte tante componenti quante servono a coprire la soglia di varianza voluta (es. 90%).
    • Interpretare le componenti come variabili originali. Le componenti principali sono combinazioni lineari delle variabili, non le variabili stesse.
    • Leggere gli score senza media e scala. Score e loadings hanno senso solo sapendo come sono state preprocessate le variabili.

    Ultimo aggiornamento: