Differenziazione stagionale e auto.arima

Aug 16 2020

Ho iniziato a studiare diversi algoritmi di previsione, usando R. Ad esempio, forse non il migliore (per mancanza di stagionalità), sto usando azioni di Facebook.

Set di allenamento:

SYMBOL <- getSymbols("FB", from = "2015-01-01", to = "2019-12-31")
Stocks_FB_day <- get(SYMBOL[1])
Stocks_FB_day_Cl <- Cl(Stocks_FB_day)

Set di prova:

SYMBOL <- getSymbols("FB", from = "2020-01-01", to = "2020-01-21")
Stocks_FB_day <- get(SYMBOL[1])

Ho costruito diversi modelli, tra cui ARIMA. So che questo non è il più adatto per i dati di borsa giornalieri, tuttavia, ho deciso di provarlo. Tenendo conto che ci sono circa 252 osservazioni all'anno, ho creato grafici di decomposizione, utilizzando la stl()funzione e impostando frequenze pari a 126 ( sei mesi) e 252 (un anno intero). Entrambi i grafici mostrano che i segnali stagionali non sono realmente essenziali. Eccone uno:

Si può anche concludere dai grafici ACF e PACF (forse mi sbaglio?):

Questi sono i miei esperimenti con la auto.arimafunzione:

Ogni volta che scrivevo "D = 1" (sia che la frequenza fosse 252 o 126), forzando la differenziazione stagionale, ottenevo valori AIC più alti, tuttavia previsioni più accurate. Non sto dicendo che ottenere linee piatte / quasi piatte non sia appropriato, tuttavia, a volte vuoi sapere più di una semplice direzione generale delle tue previsioni future, se possibile.

Presumo di aver fatto molti errori ed è altamente possibile che l'intero approccio non sia affatto appropriato.

La domanda principale è:

"Ha senso forzare la differenziazione stagionale (D = 1) nei casi in cui fornisce valori di previsione migliori (li confronto con un set di controllo, calcolando MAPE, ad esempio) anche se sembra non essere necessario, a causa di il fatto che la stagionalità sia debole? "

Risposte

3 ChrisHaug Aug 16 2020 at 21:41

Come consiglio generale, puoi respingere ciò che i dati che hai di fronte ti dicono se hai una conoscenza del dominio precedente affidabile . In questo caso, si tratterebbe della conoscenza del mercato azionario in generale, o della conoscenza dell'attività di Facebook in particolare, che hai acquisito in precedenza indipendentemente dalla serie di prezzi delle azioni che stai guardando.

Ma se la conoscenza del dominio non dice che dovrebbe essere stagionale, e i dati non sembrano davvero stagionali e dici a caso "ehi, e se provassi a forzare la stagionalità?" e ottieni risultati migliori dai risultati del campione, dovresti assolutamente essere scettico sul fatto che hai veramente migliorato il tuo modello in un modo che sarà utile in futuro. È ovviamente possibile che la conoscenza del dominio sia imperfetta o che l'aggiunta della differenza stagionale abbia risolto un problema reale ma non correlato con il tuo modello che potresti giustificare meglio risolvere direttamente.

Vedo molte persone qui che stanno imparando a fare previsioni che sembrano gravitare sui prezzi delle azioni come primo progetto. Sfortunatamente, la natura del dominio è che, all'interno della classe dei modelli ARIMA, i prezzi delle azioni sono quasi sempre meglio modellati come passeggiate aleatorie, quindi non molto interessanti dal punto di vista dell'apprendimento. Questa è una proprietà fondamentale del dominio ed è dovuta al modo in cui le aspettative aggregate sui prezzi futuri influenzano gli investitori a modificare il percorso futuro del prezzo acquistando o vendendo l'asset. Questo meccanismo di feedback tende ad attenuare qualsiasi movimento facilmente anticipato, quindi tutto ciò che puoi facilmente osservare è il rumore.

I prezzi delle azioni in genere non hanno un andamento fortemente stagionale per questo motivo. Se fosse possibile realizzare profitti affidabili acquistando in bassa stagione e vendendo in alta stagione, lo farebbero tutti. Ciò causerebbe un aumento del prezzo in bassa stagione e una diminuzione di quello in alta stagione, facendo scomparire questo vantaggio. La conoscenza del dominio precedente in questo caso dice che i prezzi delle azioni probabilmente non sono stagionali in questo modo.

Quindi, in questo caso sarei scettico di aggiungere la differenza stagionale e vorrei indagare ulteriormente sul motivo per cui il livello della tua previsione non stagionale sembra essere molto più lontano (non posso dirlo dalle informazioni che hai pubblicato finora ).