Guida introduttiva al Machine Learning Statistico

Machine Learning Statistico

In questa lezione del corso “Introduzione al Machine Learning per il Trading” introduciamo i formalismi matematici che costituiscono le basi del machine learning statistico, cioè dell’apprendimento statistico.

Nel trading moderno il machine learning statistico rappresenta una componente fondamentale nel toolkit di ogni trader quantitativo. Per questo motivo, esploriamo l’argomento partendo dai suoi principi fondamentali.

Nelle lezioni successive descriviamo con precisione come applichiamo questo approccio ai problemi della finanza quantitativa, ad esempio nella progettazione di una strategia di trading algoritmico.

Il Machine Learning Statistico

Prima di affrontare gli aspetti teorici del machine learning statistico, esaminiamo uno scenario di finanza quantitativa dove possiamo applicare efficacemente queste tecniche. Immaginiamo un fondo d’investimento che voglia prevedere l’andamento a lungo termine dell’indice azionario S&P500. Questo fondo raccoglie una grande quantità di dati fondamentali relativi alle società che compongono l’indice. I dati includono indicatori come il rapporto prezzo-utili o il valore contabile. Come può il fondo sfruttare queste informazioni per fare previsioni sull’indice e costruire uno strumento di trading? Il machine learning statistico offre una risposta concreta.

Dal punto di vista quantitativo, cerchiamo di modellare il comportamento di un risultato o di una risposta a partire da un insieme di predittori o caratteristiche che riteniamo correlati con essa. Nell’esempio precedente, il valore dell’indice azionario rappresenta la risposta, mentre i dati fondamentali delle aziende costituiscono i predittori.

Formalizziamo questa relazione considerando una risposta Y con p diverse caratteristiche x1, x2, …, xp. Se adottiamo la notazione vettoriale, definiamo X = (x1, x2, …, xp), ovvero un vettore di lunghezza p. In questo modo otteniamo il modello:

\(\begin{eqnarray}
Y = f(X) + \epsilon
\end{eqnarray}\)

La funzione f descrive la relazione sconosciuta.

Predizione ed Inferenza

Nel machine learning statistico, ci concentriamo su due processi fondamentali: la predizione e l’inferenza. Con la predizione affrontiamo situazioni in cui raccogliamo facilmente informazioni sulle caratteristiche o predittori, ma risulta difficile (o impossibile) ottenere le risposte.

Predizione

Quando ci occupiamo di predizione, ci proponiamo di stimare una risposta Y basandoci su un nuovo predittore osservato, X. Una volta identificato un modello di relazione, utilizziamo una stima di f per generare una stima della risposta:

\(\begin{eqnarray}\hat{Y} = \hat{f}(X)\end{eqnarray}\)

Nel contesto predittivo, non ci interessa particolarmente la forma esatta della funzione f(), purché le stime si avvicinino alle risposte reali. Diverse stime di f generano diverse stime di Y. Chiamiamo errore reducible quello che deriva da una stima imprecisa di \(\hat{f}\). Consideriamo inoltre la presenza costante di un errore non reducible, causato dal termine di errore ε incluso nella formulazione iniziale del problema. Questo termine rappresenta fattori non osservabili che influenzano Y. Il nostro obiettivo consiste nel ridurre al minimo l’errore reducible, sapendo che l’errore ε impone un limite superiore all’accuratezza.

Inferenza

Con l’inferenza ci impegniamo a comprendere la relazione tra X e Y, cercando di definire con precisione la funzione f(). Vogliamo identificare i predittori più rilevanti o esplorare il legame tra ciascun predittore e la risposta. Inoltre, possiamo verificare se la relazione sia lineare o non lineare. I modelli lineari risultano più facili da interpretare, ma spesso sacrificano la capacità predittiva. Al contrario, i modelli non lineari offrono maggiore precisione nelle previsioni, a discapito però dell’interpretabilità. Dobbiamo quindi gestire un equilibrio tra accuratezza predittiva e comprensibilità del modello.

Su TradingQuant concentriamo la nostra attenzione principalmente sui modelli predittivi, poiché ci interessa soprattutto la capacità del modello di fornire previsioni affidabili, più che comprenderne la struttura interna. In questa lezione e in molte altre su questo sito, ci basiamo su approcci orientati alla predizione. Nella prossima sezione mostriamo come costruire una stima \(\hat{f}\) della funzione f.

Modelli Parametrici e Non Parametrici

In un contesto di machine learning statistico, costruiamo spesso un insieme di tuple di predittori e risposte nella forma {(X1, Y1), (X2, Y2), …, (Xn, Yn)}, dove Xi rappresenta il vettore del predittore i-esimo e non la componente i-esima di un vettore specifico (che indichiamo con xi).

Chiamiamo questo set di dati “dati di addestramento” perché lo usiamo per addestrare un metodo di machine learning statistico a generare \(\hat{f}\). Per stimare f in modo efficace, cerchiamo una \(\hat{f}\) che approssimi bene una determinata Y dato un certo predittore X. Usiamo due grandi categorie di modelli statistici per raggiungere questo scopo: modelli parametrici e modelli non parametrici.

Modelli Parametrici

Con i modelli parametrici decidiamo o ipotizziamo una forma per f. Questo rappresenta un processo di modellazione. La prima scelta riguarda la natura del modello: lineare o non lineare. Consideriamo il caso più semplice di un modello lineare. In questo modo, trasformiamo il problema di stimare una funzione sconosciuta di dimensione p in quello di stimare un vettore di coefficienti \(\beta=(\beta_0, \beta_1, … , \beta_p)\) lungo p+1 elementi.

Includiamo p+1 termini, e non solo p, perché i modelli lineari possono essere affini, cioè non attraversare l’origine quando tracciamo la “line of best fit“. In questi casi, inseriamo un coefficiente per definire l’intercetta. Nei modelli lineari unidimensionali (regressione), rappresentiamo spesso questo coefficiente come α. Nel nostro modello lineare multidimensionale, dove abbiamo p predittori, usiamo la notazione β0 per indicare l’intercetta tra X e Y. Quindi la stima \(\hat{\beta}\) di β contiene p+1 componenti.

Una volta scelta la forma lineare di f, procediamo con l’addestramento. Addestrare significa trovare una stima per β tale che:

\(\begin{eqnarray}
Y \approx \hat{\beta}^T X = \beta_0 + \beta_1 x_1 + … + \beta_p x_p
\end{eqnarray}\)

dove il vettore \(X=(1,x_1,x_2,…,x_p)\) include un’unità aggiuntiva per ottenere un vettore di dimensione p+1.

Nel modello lineare, possiamo usare un algoritmo come i minimi quadrati ordinari (OLS) per determinare i coefficienti, ma abbiamo a disposizione anche altri metodi. Stimare β risulta molto più semplice che adattare direttamente una f (potenzialmente non lineare). Tuttavia, scegliendo un modello parametrico lineare, difficilmente otteniamo una stima che replichi fedelmente la vera forma di f. Di conseguenza, rischiamo di generare stime poco accurate a causa della scarsa flessibilità del modello.

Per migliorare la flessibilità, possiamo aggiungere ulteriori parametri o adottare forme alternative per \(\hat{f}\). Tuttavia, un modello eccessivamente flessibile rischia di portare a un fenomeno pericoloso chiamato overfitting, tema che approfondiremo in molte lezioni future. In pratica, il modello segue troppo il rumore invece del segnale!

Modelli Non Parametrici

In alternativa, possiamo usare una forma non parametrica per \(\hat{f}\). I modelli non parametrici si adattano potenzialmente a una gamma più ampia di forme possibili per f, offrendo così maggiore flessibilità. Tuttavia, necessitiamo di molti più dati osservati rispetto ai modelli parametrici. Inoltre, se non prestiamo attenzione, anche questi metodi rischiano l’overfitting.

Nel trading quantitativo, i modelli non parametrici possono sembrare una scelta naturale per i modelli di trading quantitativa in quanto vi è apparentemente un’abbondanza di dati (storici) su cui applicare i modelli. Tuttavia, i metodi non sono sempre ottimali. Nonostante la maggiore flessibilità è molto utile per modellare le non-linearità dei dati finanziari, è molto facile l’overfit dei dati a causa dello scadente rapporto segnale / rumore che si trova nelle serie temporali finanziarie.

Si preferisce quindi una “via di mezzo” nel considerare i modelli con un certo grado di flessibilità. Discuteremo di questi problemi negli articoli relativi all’ottimizzazione.

Apprendimento supervisionato e non supervisionato

Nel machine learning statistico distinguiamo spesso tra metodi supervisionati e non supervisionati. Su TradingQuant, descriviamo quasi esclusivamente strategie basate su tecniche supervisionate, anche se applichiamo efficacemente anche le tecniche senza supervisione ai mercati finanziari.
In un modello supervisionato, associamo a ogni vettore predittore Xi una risposta Yi. Supervisioniamo la procedura addestrando il modello f su questi dati. Ad esempio, quando costruiamo un modello di regressione lineare, utilizziamo l’algoritmo OLS per addestrarlo e otteniamo una stima \(\hat{\beta}\) per il vettore dei coefficienti di regressione, β.

Nel modello non supervisionato, non associamo alcuna risposta Yi a uno specifico predittore Xi. Non possiamo quindi supervisionare l’addestramento del modello. Questo rende più difficile ottenere risultati affidabili, poiché non disponiamo di una “funzione fitness” per valutare l’accuratezza. Tuttavia, apprezziamo la potenza delle tecniche senza supervisione, soprattutto nel clustering.

Quando lavoriamo con un modello di cluster parametrizzato, e forniamo un parametro che indica il numero di cluster da individuare, possiamo spesso scoprire relazioni inattese all’interno dei dati, che altrimenti risulterebbero difficili da identificare. Anche se questi modelli trovano ampio impiego nell’analisi aziendale e nel marketing al consumo, li utilizziamo anche in ambito finanziario, ad esempio nella valutazione del clustering della volatilità.

Conclusioni

Nella prossima lezione, esploreremo varie categorie di tecniche di apprendimento automatico e analizzeremo come valutare la qualità di un modello.

Torna in alto