Backtesting

di Joannès Vermorel, ultima modifica: Agosto 2013

Nell'ambito della previsione di serie temporali, il concetto di backtesting fa riferimento al procedimento usato per stabilire l'accuratezza di un metodo di previsione a partire dai dati storici esistenti. È un procedimento iterativo, che viene ripetuto per più date presenti tra i dati storici. Il backtesting è usato per prevedere l'accuratezza futura di un metodo di previsione, ed è quindi utile a stabilire quale modello può essere considerato il più accurato.

Come funziona il backtesting

Nel backtesting, il primo passo consiste nel selezionare le date soglia all'interno di un periodo di tempo coperto dai dati storici. Nell'immagine qui sotto, le date soglia sono indicate come T1, T2, T3 e T4.

Il backtesting è un procedimento che consente di valutare l'accuratezza previsionale di un modello statistico dipendente dal tempo, utilizzando dei dati storici


Quindi, per ogni data soglia,

  • i dati storici vengono troncati alla soglia,
  • il modello di previsione è addestrato e applicato ai dati troncati,
  • le previsioni così ottenute sono messe a confronto con i dati originali completi.

Infine, viene stabilito un errore medio di previsione per tutte le soglie.

Questo errore può essere interpretato come una stima dell'errore che sarà associato al modello durante l'elaborazione di previsioni vere e proprie (relative a dati futuri). Scegliere le date soglia più adeguate richiede un minimo di conoscenze in materia. Di norma, aumentare il numero delle date soglia migliora la resistenza ai problemi di overfitting.

Nel caso dell'ottimizzazione delle scorte, poiché le SKU da analizzare sono centinaia, bastano poche date soglia per decidere, con certezza quasi assoluta, se un metodo di previsione è migliore degli altri.

Un errore comune: un solo addestramento per molte previsioni

Il backtesting è generalmente un procedimento piuttosto intenso in termini di potenza di calcolo, poiché un nuovo modello di previsione deve essere addestrato per ogni soglia. Un errore che osserviamo di frequente, quindi, è addestrare il modello di previsione una volta sola, sfruttando di solito tutti i dati storici a disposizione, per poi passare direttamente al backtesting. In questo modo, si ha l'impressione di velocizzare l'intero procedimento di backtesting.

Sottolineiamo si ha l'impressione, perché in realtà un approccio del genere può causare seri problemi di overfitting. Facciamo un ragionamento implicito: se i dati futuri sono messi a disposizione del modello di previsione, il modello, indipendentemente dalla variabile da prevedere durante la fase di addestramento, includerà inevitabilmente alcune informazioni su questo futuro. Di conseguenza, l'accuratezza misurata con il backtesting non rifletterà le capacità di generalizzazione del modello, ma le capacità di memorizzazione del modello, ossia la capacità di riprodurre situazioni identiche a quelle trovate nel set di dati usato per l'addestramento.

Cosa propone Lokad

Il backtesting è una delle chiavi di volta dell'intera tecnologia di previsione di Lokad. Ricorriamo al backtesting per ogni serie temporale, al fine di selezionare il modello da utilizzare nella previsione finale. Ricordiamo, però, che in questo articolo abbiamo presentato il concetto di backtesting in un modo semplificato, non adatto a tutte le situazioni che si presentano nel settore del retail o della produzione industriale. Ad esempio, nel caso di promozioni o di lanci, è necessario adottare un approccio specifico: in particolare, per i prodotti lanciati da poco sul mercato, le serie temporali sono troppo brevi per poter essere di qualche utilità durante un backtesting.