Staniamo lo spirito delle Borse con la PCA

Analizzando i dati storici di una vasta porzione di indici azionari di tutto il mondo si può individuare il “fattore di mercato”. Una sorta di “spirito delle Borse”, di cui si è parlato sul blog di AdviseOnly.com.

Qui vorrei dare qualche dettaglio in più sulla metodologia utilizzata per scovare il “fattore di mercato”. Ho utilizzato un attrezzo di uso comune in statistica: l’Analisi delle Componenti Principali, o Principal Component Analysis, in breve PCA.

Il discorso che segue è a beneficio di chi non ne sa nulla, ma ha una certa curiosità di natura analitica (chi invece ne sa non ne ha bisogno, perché la PCA è super-conosciuta da chiunque abbia un decente bagaglio statistico). Vorrei quindi fornire l’intuizione sottostante a questa potente tecnica d’analisi dei dati, utilizzata in moltissimi campi, dalla data science, alla finanza, all’ingegneria, alla biologia, e via dicendo.

L’Analisi delle Componenti Principali fa proprio quello che dice il suo nome: trova le componenti principali del fenomeno in esame, cioè i suoi driver. Più nello specifico, va ad individuare le direzioni nei quali i dati esprimono maggiore variabilità: intuitivamente, proprio lì risiede l’informazione in grado di spiegare il fenomeno.

Per afferrare il concetto, immaginate un caso semplice e rude, due variabili il cui grafico a dispersione si presenta così:

Dove vedete maggiore variabilità? In lungo o in largo?

Risposta giusta: in lungo.

La variabilità maggiore è lungo l’asse orizzontale, che senza molta originalità etichetteremo come “asse x”. Quella è la direzione lungo la quale si esprime la massima variabilità, variabilità che per semplicità misureremo con la varianza del campione in esame. Dunque la linea orizzontale è la prima componente principale, per gli amici PC1.

La variabilità espressa lungo l’asse y, quello verticale (perpendicolare al primo, dettaglio importante), è invece assai minore. Quella sarà la seconda componente principale, o PC2.

Nella realtà, però, il classico grafico a dispersione, o scatter plot, non è bello orizzontale come quello mostrato precedentemente. Ha tipicamente un aspetto simile a questo:

Come trovare le componenti principali in questo caso?

Ed ecco in arrivo il Banaloma di grado 1: ruotiamo gli assi della figura. Più precisamente, ruotiamo il sistema di assi cartesiani di riferimento, passando dall’originale sistema di assi cartesiani (x, y) a quello nuovo, diciamo così un po’ taroccato, basato su x’ e y’; e così torniamo sostanzialmente nelle condizioni del primo esempietto, trovando PC1 e PC2…

Questa è l’intuizione dietro la PCA: cambiare l’angolazione con la quale si studia il fenomeno. Non mi soffermo sulla matematica che c’è dietro, che non è invero difficile, ma al primo colpo d’occhio non è manco così intuitiva. Dico solo che per applicare la PCA occorre considerare una metrica che descriva la dispersione del fenomeno in esame, legato a più d’una variabile, diciamo n variabili: si parte quindi dalla covarianza o dalla correlazione, in ogni caso una matrice quadrata n x n che chiameremo S. Per trovare la PC1 del nostro sistema n-dimensionale occorre trovare un vettore di numeri v (si chiama autovettore) e un singolo numero k (si chiama autovalore) che soddisfino la relazione:

Sv = kv

con k il più grande possibile. Una volta trovata la PC1, si trova PC2 con procedimento analogo, dopo aver però rimosso dai dati l’effetto della PC1.

Lo so, è abbastanza incomprensibile. Un po’ di luce arriva dal fatto che v in pratica è un vettore di pesi, con cui costruire una media ponderata delle variabili originali (e questa media è la PC1 ed è data da rv, essendo v il primo autovettore, mentre r è il dataset, raccolto in una matrice che ha tante righe quante sono le osservazioni e tante colonne quante sono le variabili, cioè n), mentre k è una misura di quanto la PC1 spiega il fenomeno. E così via con la seconda componente.

Detto ancora diversamente: ogni autovettore v individua un nuovo asse cartesiano in funzione della sua capacità di “spiegare” i dati, e l’autovalore v ne determina la lunghezza. Tutti questi assi sono perpendicolari tra loro e PC1, PC2, PC3, ecc hanno correlazione 0 tra loro. Ripensando all’esempio iniziale: l’asse orizzontale (PC1) è bello lungo, quello verticale (PC2) è perpendicolare al primo, corto e non conta quasi nulla; ergo il fenomeno è spiegato quasi interamente dalla variabilità lungo l’asse orizzontale, cioè dalla PC1.

Insomma, la PC1 non è nient’altro che una variabile artificiale creata con un’astuta combinazione delle n variabili originarie, quella che spiega massimamente il fenomeno (nel caso del post di AdviseOnly.com, il fenomeno è la dinamica storica delle Borse), la PC2 è un’altra combinazione, che spiega ciò che resta, e così via. Ci sono tante componenti principali quanti sono le variabili (nel caso del post di AdviseOnly.com, le Borse sono n=20, quindi si arriva fino alla PC20). Non tutte le componenti principali spiegano molto del fenomeno. Anzi, spesso le prime 1, 2, massimo 3 dicono quasi tutto. Nel caso delle Borse, variando il campione (via bootstrap, ma lasciamo perdere ‘sto dettaglio), la PC1 spiega sempre tra il 70% e il 75% della dinamica delle Borse — si veda il brutto grafico seguente. Per la cronaca la seconda componente spiega circa il 12%, la terza il 5% e le altre sono peanuts. Not too bad, PCA.

Quindi, facendo un riassuntino, con la PCA:

  • dopo breve tortura dei dati, si scovano i driver importanti del fenomeno, mettendo a nudo i fattori latenti;
  • si riduce la dimensione dei dati — cosa molto gradita ad esempio con i Big Data — dato che un basso numero di componenti principali spesso rappresenta egregiamente il fenomeno esaminato (i.e. il dataset), mentre le altre componenti possono essere trascurate;
  • tutto grazie a variabili artificiali, ovvero le componenti principali o PC, che altro non sono che intelligenti combinazioni lineari delle variabili originali capaci di condensare le informazioni contenute nel dataset ;
  • queste variabili artificiali a volte hanno un’interpretazione intuitiva, altre volte assolutamente no, almeno per noi umani;
  • nel caso delle Borse (e di numerose altre variabili finanziarie, ad esempio i tassi d’interesse, e molte variabili economiche) siamo fortunati, perché l’interpretazione c’è - è lo “spirito del mercato”, che ha questo aspetto:

Ci vediamo. Meglio in un altro sistema cartesiano. Ruotato.

Show your support

Clapping shows how much you appreciated raffaele zenti’s story.