Vai al contenuto

Analisi delle Componenti Principali (PCA)

La Storia Dietro la Matematica

La storia dell'Analisi delle Componenti Principali inizia nel 1901, nei corridoi dell'University College di Londra, dove Karl Pearson (1857-1936), il padre della statistica moderna, stava affrontando un problema fondamentale di geometria e analisi dei dati.

Pearson stava studiando misurazioni biologiche — dimensioni del cranio, proporzioni corporee, tratti evolutivi. Notò che molte misurazioni erano correlate: organismi più grandi tendevano ad essere più grandi in più dimensioni simultaneamente. Questa ridondanza significava che i dati ad alta dimensionalità potevano potenzialmente essere descritti in modo più semplice.

La domanda chiave di Pearson: Dati dei punti nello spazio ad alta dimensionalità, come troviamo il "miglior" sottospazio a dimensionalità ridotta che cattura la maggior parte della variazione?

Nel suo articolo del 1901 "On Lines and Planes of Closest Fit to Systems of Points in Space", Pearson introdusse quello che chiamò il metodo degli assi principali. Dimostrò che la linea ottimale attraverso una nuvola di punti era quella che minimizzava la somma dei quadrati delle distanze perpendicolari dai punti alla linea — equivalentemente, la linea che massimizzava la varianza dei punti proiettati.

L'intuizione geometrica di Pearson: Il primo asse principale punta nella direzione di massima varianza. Il secondo asse principale, ortogonale al primo, punta nella direzione di massima varianza rimanente, e così via.

Notevolmente, Harold Hotelling (1895-1973), uno statistico americano, riscoprì ed estese indipendentemente questo metodo nel 1933. Hotelling sviluppò il framework algebrico che usiamo oggi, collegando l'intuizione geometrica alla decomposizione in autovalori delle matrici di covarianza. Coniò il termine "Componenti Principali" e mostrò come estrarle sistematicamente.

I contributi di Hotelling:

  • Formalizzò la PCA usando matrici di covarianza e analisi degli autovalori
  • Sviluppò test statistici per la significatività delle componenti
  • Collegò la PCA all'analisi fattoriale e alla correlazione canonica

Parallelo storico: Interessante notare che la PCA fu sviluppata nello stesso periodo in cui Einstein stava rivoluzionando la fisica con la relatività. Entrambi coinvolgevano la ricerca del sistema di coordinate "giusto": Einstein cercava coordinate che rendessero semplici le leggi fisiche; Pearson e Hotelling cercavano coordinate che rendessero semplice la variazione dei dati.

La rivoluzione computazionale: Per decenni, la PCA rimase computazionalmente costosa, limitandone l'uso a piccoli dataset. L'avvento dei computer negli anni '60-'70, combinato con algoritmi efficienti come l'algoritmo QR e la Decomposizione ai Valori Singolari (SVD), rese la PCA pratica per applicazioni su larga scala.

Significato moderno: La PCA è ora una delle tecniche più utilizzate nella data science. È la base per:

  • Anni '60-'70: Psicometria e analisi fattoriale (test del QI, valutazioni della personalità)
  • Anni '80-'90: Compressione di immagini (precursori JPEG), riconoscimento facciale (eigenfaces)
  • Anni 2000: Genomica (analisi dell'espressione genica), finanza (ottimizzazione di portafoglio)
  • Anni 2010-presente: Preprocessing per machine learning, inizializzazione del deep learning, visualizzazione dati

Nonostante abbia più di un secolo, la PCA rimane essenziale: viene insegnata in ogni curriculum di data science e utilizzata in praticamente ogni campo che tratta dati multivariati.

Perché È Importante

L'Analisi delle Componenti Principali è il cavallo di battaglia della riduzione dimensionale e dell'analisi esplorativa dei dati. È usata in:

  • Machine Learning: Estrazione di feature, preprocessing dei dati, riduzione del rumore
  • Computer Vision: Riconoscimento facciale (eigenfaces), compressione di immagini, rilevamento di oggetti
  • Genomica: Analisi dell'espressione genica, genetica di popolazione, scoperta di varianti
  • Finanza: Ottimizzazione di portafoglio, gestione del rischio, modelli fattoriali
  • Neuroscienze: Analisi di brain imaging (fMRI, EEG), analisi di popolazioni neurali
  • Chimica: Analisi spettroscopica, relazioni quantitative struttura-attività (QSAR)
  • Scienze del clima: Estrazione di pattern da dati spazio-temporali
  • Marketing: Segmentazione clienti, ricerca di mercato
  • Controllo qualità: Monitoraggio di processi, rilevamento difetti
  • Elaborazione del linguaggio naturale: Analisi semantica latente, clustering di documenti
  • Psicologia: Analisi fattoriale, test psicometrici
  • Fisica: Compressione dati in esperimenti di fisica delle alte energie

La PCA fornisce sia rappresentazioni a bassa dimensionalità interpretabili sia compressione efficiente, rendendola inestimabile per comprendere e lavorare con dati ad alta dimensionalità.

Prerequisiti

Concetti Fondamentali

Costruiremo la PCA dai primi principi, partendo dall'intuizione geometrica e progredendo verso il framework matematico completo.

Il Problema della Riduzione Dimensionale

Abbiamo:

  • Matrice dati: \(\mathbf{X} \in \mathbb{R}^{n \times p}\)
  • \(n\) osservazioni (righe)
  • \(p\) feature/variabili (colonne)
  • \(\mathbf{x}_i \in \mathbb{R}^p\): la \(i\)-esima osservazione (vettore riga)

Obiettivo: Trovare una rappresentazione a dimensionalità ridotta \(\mathbf{Z} \in \mathbb{R}^{n \times d}\) dove \(d < p\), tale che:

  1. La massima varianza è preservata: catturare quanta più variazione possibile
  2. Minima perdita di informazione: consentire la ricostruzione approssimata dei dati originali
  3. Componenti ortogonali: le nuove dimensioni sono incorrelate

Intuizione chiave: Vogliamo trovare un nuovo sistema di coordinate (base) dove i dati hanno proprietà speciali: massima varianza lungo il primo asse, massima varianza rimanente lungo il secondo asse (perpendicolare al primo), ecc.

Centrare i Dati

Primo passo: Centrare i dati sottraendo la media.

Medie delle colonne:

\[ \bar{\mathbf{x}} = \frac{1}{n} \sum_{i=1}^n \mathbf{x}_i \]

Matrice dati centrata:

\[ \tilde{\mathbf{X}} = \mathbf{X} - \mathbf{1}_n \bar{\mathbf{x}}^T \]

dove \(\mathbf{1}_n\) è un vettore \(n\)-dimensionale di uni.

Perché centrare? La PCA cerca direzioni di massima varianza. Senza centratura, la prima PC punterebbe semplicemente verso la media, il che non è informativo. Centrare assicura che misuriamo la varianza attorno al centro di massa dei dati.

Convenzione: D'ora in poi, assumiamo che \(\mathbf{X}\) sia già centrata (cioè, le medie delle colonne sono zero).

Prima Componente Principale: Massima Varianza

Domanda: Quale direzione \(\mathbf{w}_1 \in \mathbb{R}^p\) massimizza la varianza dei dati proiettati?

Proiezione: Proiettiamo ogni osservazione \(\mathbf{x}_i\) sulla direzione \(\mathbf{w}_1\):

\[ z_{i1} = \mathbf{x}_i^T \mathbf{w}_1 \]

Varianza delle proiezioni (poiché i dati sono centrati, la media è zero):

\[ \text{Var}(z_1) = \frac{1}{n} \sum_{i=1}^n z_{i1}^2 = \frac{1}{n} \sum_{i=1}^n (\mathbf{x}_i^T \mathbf{w}_1)^2 \]

Usando notazione matriciale:

\[ \text{Var}(z_1) = \frac{1}{n} \|\mathbf{X} \mathbf{w}_1\|^2 = \frac{1}{n} \mathbf{w}_1^T \mathbf{X}^T \mathbf{X} \mathbf{w}_1 \]

Definiamo la matrice di covarianza campionaria:

\[ \mathbf{S} = \frac{1}{n} \mathbf{X}^T \mathbf{X} \]

Questa è una matrice \(p \times p\) simmetrica semi-definita positiva.

Problema di ottimizzazione:

\[ \max_{\mathbf{w}_1} \mathbf{w}_1^T \mathbf{S} \mathbf{w}_1 \quad \text{soggetto a} \quad \|\mathbf{w}_1\|^2 = 1 \]

Perché il vincolo? Senza di esso, potremmo rendere la varianza arbitrariamente grande scalando \(\mathbf{w}_1\). Il vincolo \(\|\mathbf{w}_1\| = 1\) rende la soluzione unica (a meno del segno).

Derivazione: Prima Componente Principale

Metodo: Moltiplicatori di Lagrange.

Lagrangiana:

\[ \mathcal{L}(\mathbf{w}_1, \lambda) = \mathbf{w}_1^T \mathbf{S} \mathbf{w}_1 - \lambda(\mathbf{w}_1^T \mathbf{w}_1 - 1) \]

Condizione del primo ordine: Derivare rispetto a \(\mathbf{w}_1\) e porre uguale a zero.

Ricordiamo: \(\frac{\partial}{\partial \mathbf{w}}(\mathbf{w}^T \mathbf{A} \mathbf{w}) = 2\mathbf{A}\mathbf{w}\) per \(\mathbf{A}\) simmetrica.

\[ \frac{\partial \mathcal{L}}{\partial \mathbf{w}_1} = 2\mathbf{S}\mathbf{w}_1 - 2\lambda\mathbf{w}_1 = 0 \]
\[ \mathbf{S}\mathbf{w}_1 = \lambda \mathbf{w}_1 \]

Questa è un'equazione agli autovalori! \(\mathbf{w}_1\) è un autovettore di \(\mathbf{S}\) con autovalore \(\lambda\).

Quale autovettore? Sostituendo nell'obiettivo:

\[ \mathbf{w}_1^T \mathbf{S} \mathbf{w}_1 = \mathbf{w}_1^T (\lambda \mathbf{w}_1) = \lambda \mathbf{w}_1^T \mathbf{w}_1 = \lambda \]

Risultato: La varianza della prima componente principale è uguale all'autovalore \(\lambda\). Per massimizzare la varianza, scegliamo l'autovalore più grande \(\lambda_1\).

Prima Componente Principale:

\[ \mathbf{w}_1 = \text{autovettore di } \mathbf{S} \text{ corrispondente all'autovalore più grande } \lambda_1 \]

Gli score (proiezioni) sono:

\[ z_{i1} = \mathbf{x}_i^T \mathbf{w}_1 \]

Seconda Componente Principale: Massima Varianza Rimanente

Domanda: Quale direzione \(\mathbf{w}_2\) massimizza la varianza soggetta ad essere ortogonale a \(\mathbf{w}_1\)?

Problema di ottimizzazione:

\[ \max_{\mathbf{w}_2} \mathbf{w}_2^T \mathbf{S} \mathbf{w}_2 \quad \text{soggetto a} \quad \|\mathbf{w}_2\| = 1, \quad \mathbf{w}_2^T \mathbf{w}_1 = 0 \]

Lagrangiana:

\[ \mathcal{L}(\mathbf{w}_2, \lambda, \mu) = \mathbf{w}_2^T \mathbf{S} \mathbf{w}_2 - \lambda(\mathbf{w}_2^T \mathbf{w}_2 - 1) - \mu \mathbf{w}_2^T \mathbf{w}_1 \]

Condizione del primo ordine:

\[ 2\mathbf{S}\mathbf{w}_2 - 2\lambda\mathbf{w}_2 - \mu\mathbf{w}_1 = 0 \]

Moltiplichiamo entrambi i lati per \(\mathbf{w}_1^T\):

\[ 2\mathbf{w}_1^T\mathbf{S}\mathbf{w}_2 - 2\lambda \mathbf{w}_1^T\mathbf{w}_2 - \mu \mathbf{w}_1^T\mathbf{w}_1 = 0 \]

Poiché \(\mathbf{w}_1^T \mathbf{w}_2 = 0\) (vincolo di ortogonalità) e \(\mathbf{w}_1^T \mathbf{w}_1 = 1\):

\[ 2\mathbf{w}_1^T \mathbf{S} \mathbf{w}_2 - \mu = 0 \]

Ma \(\mathbf{S}\) è simmetrica, quindi \(\mathbf{w}_1^T \mathbf{S} \mathbf{w}_2 = \mathbf{w}_2^T \mathbf{S} \mathbf{w}_1 = \mathbf{w}_2^T (\lambda_1 \mathbf{w}_1) = \lambda_1 \mathbf{w}_2^T \mathbf{w}_1 = 0\).

Pertanto: \(\mu = 0\).

Risultato: La condizione del primo ordine si semplifica a:

\[ \mathbf{S}\mathbf{w}_2 = \lambda \mathbf{w}_2 \]

Stessa equazione agli autovalori! Ma ora vogliamo il secondo autovalore più grande \(\lambda_2\).

Seconda Componente Principale:

\[ \mathbf{w}_2 = \text{autovettore di } \mathbf{S} \text{ corrispondente al secondo autovalore più grande } \lambda_2 \]

Proprietà elegante: Se \(\mathbf{S}\) ha autovalori distinti, i suoi autovettori sono automaticamente ortogonali (questo è un teorema di algebra lineare). Quindi il vincolo di ortogonalità è automaticamente soddisfatto.

Caso Generale: Tutte le Componenti Principali

Decomposizione in autovalori della matrice di covarianza:

\[ \mathbf{S} = \mathbf{W} \mathbf{\Lambda} \mathbf{W}^T \]

dove:

  • \(\mathbf{W} = [\mathbf{w}_1, \mathbf{w}_2, \ldots, \mathbf{w}_p]\) è una matrice \(p \times p\) di autovettori (direzioni delle componenti principali)
  • \(\mathbf{\Lambda} = \text{diag}(\lambda_1, \lambda_2, \ldots, \lambda_p)\) è una matrice diagonale di autovalori
  • Gli autovalori sono ordinati: \(\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0\)
  • Gli autovettori sono ortonormali: \(\mathbf{W}^T \mathbf{W} = \mathbf{I}\)

Componenti principali: La \(j\)-esima componente principale è:

\[ z_{ij} = \mathbf{x}_i^T \mathbf{w}_j = \sum_{k=1}^p x_{ik} w_{jk} \]

Forma matriciale: Trasformiamo tutte le osservazioni simultaneamente:

\[ \mathbf{Z} = \mathbf{X} \mathbf{W} \]

dove \(\mathbf{Z}\) è la matrice \(n \times p\) degli score delle componenti principali.

Varianza spiegata dalla PC \(j\): \(\text{Var}(z_j) = \lambda_j\)

Varianza totale:

\[ \sum_{j=1}^p \lambda_j = \text{trace}(\mathbf{S}) = \sum_{j=1}^p \text{Var}(X_j) \]

Questo mostra che la PCA ridistribuisce la varianza senza cambiare la varianza totale.

Proporzione di varianza spiegata dalla PC \(j\):

\[ \rho_j = \frac{\lambda_j}{\sum_{k=1}^p \lambda_k} \]

Proporzione cumulativa (prime \(d\) componenti):

\[ \sum_{j=1}^d \rho_j = \frac{\sum_{j=1}^d \lambda_j}{\sum_{k=1}^p \lambda_k} \]

Riduzione Dimensionale

Per ridurre da \(p\) dimensioni a \(d < p\) dimensioni:

  1. Selezioniamo le prime \(d\) componenti principali: \(\mathbf{W}_d = [\mathbf{w}_1, \ldots, \mathbf{w}_d]\)
  2. Proiettiamo: \(\mathbf{Z}_d = \mathbf{X} \mathbf{W}_d\) (dimensione \(n \times d\))

Come scegliere \(d\)?

Metodo 1: Scree plot — graficare gli autovalori e cercare un "gomito"

Metodo 2: Soglia di varianza cumulativa — scegliere \(d\) tale che \(\sum_{j=1}^d \rho_j \geq \alpha\) (es., \(\alpha = 0.95\) per 95% di varianza spiegata)

Metodo 3: Criterio di Kaiser — mantenere componenti con \(\lambda_j > \bar{\lambda} = \frac{1}{p}\sum_{k=1}^p \lambda_k\) (solo per dati standardizzati)

Ricostruzione dalle Componenti Principali

Data la rappresentazione ridotta \(\mathbf{Z}_d\), possiamo ricostruire approssimativamente i dati originali:

\[ \hat{\mathbf{X}} = \mathbf{Z}_d \mathbf{W}_d^T \]

Errore di ricostruzione (errore quadratico medio):

\[ \text{MSE} = \frac{1}{np} \|\mathbf{X} - \hat{\mathbf{X}}\|_F^2 = \frac{1}{p} \sum_{j=d+1}^p \lambda_j \]

dove \(\|\cdot\|_F\) è la norma di Frobenius.

Interpretazione: L'errore di ricostruzione è uguale alla varianza media delle componenti scartate.

Connessione con la Decomposizione ai Valori Singolari (SVD)

La PCA è intimamente connessa all'SVD, che è spesso il metodo computazionale preferito.

Decomposizione ai Valori Singolari: Qualsiasi matrice \(\mathbf{X} \in \mathbb{R}^{n \times p}\) può essere scomposta come:

\[ \mathbf{X} = \mathbf{U} \mathbf{D} \mathbf{V}^T \]

dove: - \(\mathbf{U} \in \mathbb{R}^{n \times n}\): vettori singolari sinistri (ortonormali) - \(\mathbf{D} \in \mathbb{R}^{n \times p}\): matrice diagonale di valori singolari \(d_1 \geq d_2 \geq \cdots \geq 0\) - \(\mathbf{V} \in \mathbb{R}^{p \times p}\): vettori singolari destri (ortonormali)

Connessione con la PCA: Se \(\mathbf{X}\) è centrata, allora:

\[ \mathbf{S} = \frac{1}{n}\mathbf{X}^T \mathbf{X} = \frac{1}{n} \mathbf{V} \mathbf{D}^T \mathbf{D} \mathbf{V}^T = \mathbf{V} \left(\frac{\mathbf{D}^T \mathbf{D}}{n}\right) \mathbf{V}^T \]

Risultato: - Direzioni delle componenti principali: \(\mathbf{W} = \mathbf{V}\) (vettori singolari destri) - Autovalori: \(\lambda_j = d_j^2 / n\) (valori singolari al quadrato divisi per \(n\)) - Score delle componenti principali: \(\mathbf{Z} = \mathbf{X}\mathbf{V} = \mathbf{U}\mathbf{D}\)

Vantaggio computazionale: L'SVD è più numericamente stabile rispetto al calcolo diretto degli autovalori di \(\mathbf{X}^T\mathbf{X}\), specialmente quando \(\mathbf{X}\) è mal condizionata.

Standardizzazione dei Dati: Quando Usarla

Problema: Se le variabili hanno scale diverse (es., altezza in cm vs peso in kg), le variabili con varianza maggiore domineranno le componenti principali.

Soluzione: Standardizzare (normalizzare con z-score) ogni variabile:

\[ \tilde{X}_{ij} = \frac{X_{ij} - \bar{X}_j}{s_j} \]

dove \(s_j = \sqrt{\frac{1}{n}\sum_{i=1}^n (X_{ij} - \bar{X}_j)^2}\) è la deviazione standard della variabile \(j\).

Effetto: Dopo la standardizzazione, tutte le variabili hanno media 0 e varianza 1. La PCA opera quindi sulla matrice di correlazione invece che sulla matrice di covarianza:

\[ \mathbf{R} = \frac{1}{n} \tilde{\mathbf{X}}^T \tilde{\mathbf{X}} \]

Quando standardizzare:

  • Le variabili hanno unità o scale diverse
  • Si vuole che ogni variabile contribuisca equamente (ponderazione democratica)

Quando NON standardizzare:

  • Le variabili hanno le stesse unità e scala
  • La scala stessa è significativa (es., tutte le misurazioni in grammi)
  • Si vuole che la varianza rifletta l'importanza naturale

Esempio Completo Svolto

Problema: Eseguire la PCA su un dataset di punteggi d'esame di studenti in 3 materie.

Dati (già centrati):

\[ \mathbf{X} = \begin{pmatrix} 2 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & 0 \\ -1 & 0 & -1 \end{pmatrix} \]

Quattro studenti, tre materie.

Passo 1: Calcolare la matrice di covarianza.

\[ \mathbf{S} = \frac{1}{4} \mathbf{X}^T \mathbf{X} = \frac{1}{4} \begin{pmatrix} 2 & 0 & -1 & -1 \\ 1 & 0 & -1 & 0 \\ 1 & 0 & 0 & -1 \end{pmatrix} \begin{pmatrix} 2 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & 0 \\ -1 & 0 & -1 \end{pmatrix} \]
\[ \mathbf{X}^T \mathbf{X} = \begin{pmatrix} 6 & 2 & 3 \\ 2 & 2 & 1 \\ 3 & 1 & 2 \end{pmatrix} \]
\[ \mathbf{S} = \begin{pmatrix} 1.5 & 0.5 & 0.75 \\ 0.5 & 0.5 & 0.25 \\ 0.75 & 0.25 & 0.5 \end{pmatrix} \]

Passo 2: Calcolare autovalori e autovettori.

Equazione caratteristica: \(\det(\mathbf{S} - \lambda \mathbf{I}) = 0\)

(Calcolo dettagliato omesso per brevità. Usare software numerico.)

Autovalori (ordinati):

  • \(\lambda_1 \approx 2.12\)
  • \(\lambda_2 \approx 0.36\)
  • \(\lambda_3 \approx 0.02\)

Autovettori (normalizzati):

\[ \mathbf{w}_1 \approx \begin{pmatrix} 0.74 \\ 0.33 \\ 0.59 \end{pmatrix}, \quad \mathbf{w}_2 \approx \begin{pmatrix} -0.59 \\ 0.69 \\ 0.42 \end{pmatrix}, \quad \mathbf{w}_3 \approx \begin{pmatrix} 0.33 \\ 0.65 \\ -0.69 \end{pmatrix} \]

Passo 3: Calcolare la varianza spiegata.

Varianza totale: \(\sum \lambda_j = 1.5 + 0.5 + 0.5 = 2.5\)

Proporzioni:

  • PC1: \(\rho_1 = 2.12 / 2.5 = 0.848\) (84.8%)
  • PC2: \(\rho_2 = 0.36 / 2.5 = 0.144\) (14.4%)
  • PC3: \(\rho_3 = 0.02 / 2.5 = 0.008\) (0.8%)

Cumulativa: PC1 + PC2 = 99.2% della varianza

Passo 4: Ridurre a 2 dimensioni.

\[ \mathbf{W}_2 = [\mathbf{w}_1, \mathbf{w}_2] = \begin{pmatrix} 0.74 & -0.59 \\ 0.33 & 0.69 \\ 0.59 & 0.42 \end{pmatrix} \]

Dati proiettati:

\[ \mathbf{Z}_2 = \mathbf{X} \mathbf{W}_2 = \begin{pmatrix} 2 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & 0 \\ -1 & 0 & -1 \end{pmatrix} \begin{pmatrix} 0.74 & -0.59 \\ 0.33 & 0.69 \\ 0.59 & 0.42 \end{pmatrix} \]
\[ \mathbf{Z}_2 \approx \begin{pmatrix} 2.50 & -0.39 \\ 0 & 0 \\ -1.07 & 0.26 \\ -1.33 & 0.17 \end{pmatrix} \]

Interpretazione: Abbiamo ridotto da 3 dimensioni a 2, mantenendo il 99.2% della varianza. Lo studente 1 ha il punteggio più alto sulla PC1; gli studenti 3 e 4 hanno i punteggi più bassi.

Visualizzazione dell'Esempio

Di seguito le visualizzazioni grafiche dei dati dell'esempio:

Analisi completa: PCA Example - Analysis

Il grafico mostra: 1. In alto a sinistra: I dati originali nello spazio 3D (4 studenti, 3 materie) 2. In alto a destra: La proiezione 2D dopo la PCA - si nota come lo studente 1 (rosso) sia distante dal centro mentre gli studenti 3 e 4 (verde e arancione) siano vicini 3. In basso a sinistra: Lo scree plot con le eigenvalues - la PC1 spiega l'84.8% della varianza 4. In basso a destra: Il grafico a barre della varianza spiegata cumulativa - con 2 componenti raggiungiamo il 99.2%

Biplot: PCA Biplot

Il biplot mostra simultaneamente: - I punteggi degli studenti (punti colorati) nello spazio delle prime 2 PC - I loadings (frecce nere) che indicano come ciascuna materia contribuisce alle componenti principali

PCA per Visualizzazione

Uno degli usi più comuni della PCA è la visualizzazione di dati in 2D o 3D.

Processo:

  1. Calcolare le prime 2 (o 3) componenti principali
  2. Graficare le osservazioni nello spazio delle PC
  3. Colorare/etichettare i punti per gruppi noti o variabili

Benefici:

  • Rivela cluster e outlier
  • Mostra i principali pattern di variazione
  • Assi interpretabili (se si esaminano i loadings delle componenti)

Applicazioni di esempio:

  • Genomica: Visualizzare la struttura di popolazione da dati genetici
  • Analytics clienti: Segmentare clienti in 2D
  • Dati immagine: Visualizzare la similarità tra immagini

Loadings e Interpretazione

I loadings sono gli elementi degli autovettori \(\mathbf{w}_j\). Mostrano come ogni variabile originale contribuisce a ciascuna PC.

Matrice dei loadings: \(\mathbf{W} = [\mathbf{w}_1, \ldots, \mathbf{w}_p]\)

Interpretazione: - \(w_{kj}\): contributo della variabile originale \(k\) alla componente principale \(j\) - \(|w_{kj}|\) grande: la variabile \(k\) influenza fortemente la PC \(j\) - Il segno indica la direzione della relazione

Biplot: Grafica simultaneamente osservazioni (score PC) e variabili (loadings) sullo stesso grafico. Aiuta a interpretare cosa rappresenta ciascuna PC.

Assunzioni e Limitazioni

Assunzioni:

  1. Relazioni lineari: La PCA trova combinazioni lineari; non può catturare pattern non lineari
  2. Varianza = informazione: Assume che le direzioni di alta varianza siano le più importanti
  3. Ortogonalità: Le componenti sono vincolate ad essere incorrelate
  4. Sensibilità alla scala: Sensibile alla scala delle variabili (considerare la standardizzazione)

Limitazioni:

  • Interpretabilità: Le PC sono combinazioni lineari di tutte le variabili; possono essere difficili da interpretare
  • Outlier: Sensibile agli outlier, che possono distorcere le direzioni principali
  • Violazione delle assunzioni: Se i dati non sono approssimativamente multivariati normali, la PCA potrebbe non catturare la struttura importante
  • Dati categorici: La PCA è progettata per dati continui; servono alternative per variabili categoriche

Quando la PCA può fallire:

  • I dati giacciono su una varietà non lineare (usare kernel PCA o manifold learning invece)
  • La variazione importante è in direzioni a bassa varianza (es., segnale vs rumore in certi contesti)
  • Le feature non sono correlate (la PCA non fornisce benefici)

Varianti ed Estensioni

Kernel PCA

Per la riduzione dimensionale non lineare, applicare la PCA in uno spazio di feature ad alta dimensionalità definito da una funzione kernel.

Kernel trick: Invece di calcolare esplicitamente le feature, usare il kernel \(k(\mathbf{x}_i, \mathbf{x}_j)\) per lavorare implicitamente nello spazio delle feature.

Kernel comuni:

  • Polinomiale: \(k(\mathbf{x}, \mathbf{y}) = (\mathbf{x}^T \mathbf{y} + c)^d\)
  • RBF (Gaussiano): \(k(\mathbf{x}, \mathbf{y}) = \exp(-\gamma \|\mathbf{x} - \mathbf{y}\|^2)\)

Sparse PCA

La PCA standard produce loadings densi (tutte le variabili contribuiscono a ciascuna PC). La Sparse PCA aggiunge una penalità di sparsità per incoraggiare i loadings ad essere esattamente zero.

Beneficio: Migliore interpretabilità — ogni PC dipende solo da un sottoinsieme di variabili.

Metodo: Aggiungere penalità \(L_1\) (lasso) all'ottimizzazione della PCA.

Robust PCA

La PCA standard è sensibile agli outlier. La Robust PCA decompone i dati come:

\[ \mathbf{X} = \mathbf{L} + \mathbf{S} \]

dove:

  • \(\mathbf{L}\): matrice a basso rango (segnale pulito)
  • \(\mathbf{S}\): matrice sparsa (outlier/rumore)

Metodo: Risolvere via ottimizzazione convessa (norma nucleare + norma \(L_1\)).

Probabilistic PCA (PPCA)

Tratta la PCA come un modello probabilistico a variabili latenti:

\[ \mathbf{x}_i = \mathbf{W} \mathbf{z}_i + \mathbf{\mu} + \mathbf{\epsilon}_i \]

dove \(\mathbf{z}_i \sim \mathcal{N}(0, \mathbf{I})\) (variabili latenti) e \(\mathbf{\epsilon}_i \sim \mathcal{N}(0, \sigma^2 \mathbf{I})\) (rumore).

Benefici:

  • Gestione principiata di dati mancanti
  • Framework probabilistico consente inferenza bayesiana
  • Connessione con l'analisi fattoriale

Stima: Algoritmo Expectation-Maximization (EM).

PCA vs Altri Metodi

PCA vs Analisi Fattoriale (FA)

  • PCA: Trova direzioni di massima varianza; deterministica
  • FA: Modella variabili osservate come funzioni lineari di fattori latenti più rumore; probabilistica

Quando usare PCA: Riduzione dimensionale, compressione dati

Quando usare FA: Modellare costrutti latenti (es., intelligenza, tratti di personalità) - FA: Modella variabili osservate come funzioni lineari di fattori latenti più rumore; probabilistica

Quando usare PCA: Riduzione dimensionale, compressione dati Quando usare FA: Modellare costrutti latenti (es., intelligenza, tratti di personalità)

PCA vs Linear Discriminant Analysis (LDA)

  • PCA: Non supervisionata; massimizza la varianza
  • LDA: Supervisionata; massimizza la separazione tra classi

Quando usare PCA: Nessuna etichetta, si vuole visualizzare o comprimere dati

Quando usare LDA: Si hanno etichette di classe, si vuole classificare o trovare feature discriminative - LDA: Supervisionata; massimizza la separazione tra classi

Quando usare PCA: Nessuna etichetta, si vuole visualizzare o comprimere dati Quando usare LDA: Si hanno etichette di classe, si vuole classificare o trovare feature discriminative

Vedi Linear-Discriminant-Analysis per dettagli.

PCA vs t-SNE / UMAP

  • PCA: Lineare, preserva la struttura globale, veloce
  • t-SNE/UMAP: Non lineare, preserva la struttura locale, più lenta

Quando usare PCA: Dataset grandi, si vuole la struttura globale, serve calcolo veloce

Quando usare t-SNE/UMAP: Si vuole visualizzare cluster in 2D, la struttura locale è importante - t-SNE/UMAP: Non lineare, preserva la struttura locale, più lenta

Quando usare PCA: Dataset grandi, si vuole la struttura globale, serve calcolo veloce Quando usare t-SNE/UMAP: Si vuole visualizzare cluster in 2D, la struttura locale è importante

PCA vs Autoencoder

  • PCA: Lineare, soluzione in forma chiusa
  • Autoencoder: Non lineare (con attivazioni non lineari), appreso via ottimizzazione

Quando usare PCA: Semplice, interpretabile, soluzione lineare ottimale garantita

Quando usare Autoencoder: Relazioni non lineari complesse, dimensioni molto alte - Autoencoder: Non lineare (con attivazioni non lineari), appreso via ottimizzazione

Quando usare PCA: Semplice, interpretabile, soluzione lineare ottimale garantita Quando usare Autoencoder: Relazioni non lineari complesse, dimensioni molto alte

Variabili e Simboli

Simbolo Nome Descrizione
\(\mathbf{X}\) Matrice dati Matrice \(n \times p\) di osservazioni
\(\mathbf{x}_i\) Osservazione \(i\)-esima riga di \(\mathbf{X}\) (un vettore \(p\)-dimensionale)
\(n\) Dimensione campionaria Numero di osservazioni
\(p\) Dimensionalità Numero di variabili originali
\(d\) Dimensione ridotta Numero di componenti principali mantenute
\(\mathbf{S}\) Matrice di covarianza Matrice di covarianza campionaria \(p \times p\)
\(\mathbf{w}_j\) Direzione PC \(j\)-esimo autovettore (direzione componente principale)
\(\lambda_j\) Autovalore Varianza spiegata dalla \(j\)-esima componente principale
\(z_{ij}\) Score PC Proiezione dell'osservazione \(i\) sulla PC \(j\)
\(\mathbf{Z}\) Matrice score Matrice \(n \times p\) degli score delle componenti principali
\(\mathbf{W}\) Matrice loadings Matrice \(p \times p\) degli autovettori

Concetti Correlati

Riferimenti Storici e Moderni

  • Pearson, K. (1901). "On lines and planes of closest fit to systems of points in space." Philosophical Magazine, 2(11), 559-572.
  • Hotelling, H. (1933). "Analysis of a complex of statistical variables into principal components." Journal of Educational Psychology, 24(6), 417-441.
  • Jolliffe, I. T. (2002). Principal Component Analysis (2nd ed.). Springer.
  • Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer. [Capitolo 14]
  • Tipping, M. E., & Bishop, C. M. (1999). "Probabilistic principal component analysis." Journal of the Royal Statistical Society: Series B, 61(3), 611-622.
  • Abdi, H., & Williams, L. J. (2010). "Principal component analysis." Wiley Interdisciplinary Reviews: Computational Statistics, 2(4), 433-459.
  • Shlens, J. (2014). "A tutorial on principal component analysis." arXiv preprint arXiv:1404.1100.