Forecastability
Hai ragione sul fatto che questa è una questione di previsioni. Ci sono stati alcuni articoli sulla previsione nella rivista Foresight orientata ai praticanti della IIF . (Informativa completa: sono un editore associato.)
Il problema è che la previsione è già difficile da valutare in casi "semplici".
Alcuni esempi
Supponiamo che tu abbia una serie temporale come questa ma non parli tedesco:
Come modelleresti il picco di aprile e come includeresti queste informazioni in qualsiasi previsione?
Se non sapessi che questa serie storica è la vendita di uova in una catena di supermercati svizzera, che raggiunge il picco proprio prima del calendario occidentale di Pasqua , non avresti alcuna possibilità. Inoltre, con la Pasqua che si sposta nel calendario di almeno sei settimane, tutte le previsioni che non includono la data specifica della Pasqua (supponendo, diciamo, che questo fosse solo un picco stagionale che si sarebbe ripetuto in una settimana specifica l'anno prossimo) probabilmente sarebbe molto spento.
Allo stesso modo, supponiamo di avere la linea blu in basso e di voler modellare tutto ciò che è accaduto il 28/02/2010 in modo così diverso dai modelli "normali" del 27/02/2010:
Ancora una volta, senza sapere cosa succede quando un'intera città piena di canadesi guarda una partita di finali di hockey su ghiaccio olimpico in TV, non hai alcuna possibilità di capire cosa è successo qui e non sarai in grado di prevedere quando si ripeterà qualcosa di simile.
Infine, guarda questo:
Questa è una serie temporale di vendite giornaliere in un negozio cash and carry . (A destra, hai una tabella semplice: 282 giorni hanno avuto vendite zero, 42 giorni hanno visto vendite di 1 ... e un giorno ho visto vendite di 500.) Non so di che articolo si tratta.
Fino ad oggi, non so cosa sia successo in quel giorno con vendite di 500. La mia ipotesi migliore è che alcuni clienti abbiano preordinato una grande quantità di qualsiasi prodotto fosse e lo hanno raccolto. Ora, senza saperlo, qualsiasi previsione per questo particolare giorno sarà lontana. Al contrario, supponiamo che ciò sia accaduto poco prima di Pasqua e abbiamo un algoritmo stupido che crede che questo potrebbe essere un effetto pasquale (forse queste sono uova?) E prevede felicemente 500 unità per la prossima Pasqua. Oh mio, poteva che andare storto.
Sommario
In tutti i casi, vediamo come la previsionalità può essere ben compresa solo quando abbiamo una comprensione sufficientemente profonda dei probabili fattori che influenzano i nostri dati. Il problema è che se non conosciamo questi fattori, non sappiamo che potremmo non conoscerli. Secondo Donald Rumsfeld :
[T] qui sono noti noti; ci sono cose che sappiamo di sapere. Sappiamo anche che ci sono sconosciuti noti; vale a dire sappiamo che ci sono alcune cose che non sappiamo. Ma ci sono anche incognite sconosciute - quelle che non sappiamo non lo sappiamo.
Se la predilezione della Pasqua o dei canadesi per l'hockey è per noi sconosciute, siamo bloccati - e non abbiamo nemmeno una strada da percorrere, perché non sappiamo quali domande dobbiamo porre.
L'unico modo per ottenere una gestione su questi è quello di raccogliere la conoscenza del dominio.
conclusioni
Ne traggo tre conclusioni:
- Devi sempre includere la conoscenza del dominio nella modellazione e nella previsione.
- Anche con la conoscenza del dominio, non è garantito che si ottengano informazioni sufficienti affinché le previsioni e le previsioni siano accettabili per l'utente. Vedi quello anomalo sopra.
- Se "i tuoi risultati sono miserabili", potresti sperare in più di quello che puoi ottenere. Se si prevede un lancio corretto della moneta, non è possibile ottenere una precisione superiore al 50%. Non fidatevi neanche dei benchmark di accuratezza delle previsioni esterne.
La linea di fondo
Ecco come consiglierei di costruire modelli - e notare quando fermarsi:
- Parla con qualcuno con conoscenza del dominio se non lo possiedi già da solo.
- Identifica i principali driver dei dati che desideri prevedere, comprese le interazioni probabili, in base al passaggio 1.
- Costruisci i modelli in modo iterativo, includendo i driver in ordine decrescente di forza secondo il passaggio 2. Valuta i modelli usando la validazione incrociata o un campione di controllo.
- Se la precisione delle tue previsioni non aumenta ulteriormente, torna al passaggio 1 (ad es. Identificando errate predizioni errate che non puoi spiegare e discutendole con l'esperto di dominio) oppure accetta di aver raggiunto la fine del tuo capacità dei modelli. Il time-boxing della tua analisi in anticipo aiuta.
Nota che non sto sostenendo di provare diverse classi di modelli se i tuoi plateau originali. In genere, se si è iniziato con un modello ragionevole, l'utilizzo di qualcosa di più sofisticato non produrrà un grande vantaggio e potrebbe semplicemente "adattarsi eccessivamente al set di test". L'ho visto spesso e altre persone sono d'accordo .