Obliczanie błędu prognozy przy krzyżowej weryfikacji szeregów czasowych

13

Mam model prognozowania dla szeregów czasowych i chcę obliczyć jego błąd prognozowania poza próbą. W tej chwili strategię, którą stosuję, jest ta sugerowana na blogu Roba Hyndmana (w dolnej części strony), która wygląda następująco (zakładając szereg czasowy i zestaw treningowy o rozmiarze k )y1,,ynk

  1. Dopasować model do danych i niech y t + k jest prognoza dla następnego obserwacji.yt,,yt+k-1y^t+k
  2. Obliczenia prognozowanych błąd jako .mit=y^t+k-yt+k
  3. Powtórz dla t=1,,n-k
  4. Oblicz średni błąd kwadratowy jako MSE=1n-kt=1n-kmit2)

Moje pytanie brzmi: jak bardzo muszę się martwić o korelacje z powodu moich nakładających się zestawów treningowych. W szczególności, że chcę prognozować nie tylko kolejną wartość, ale następny wartości, tak że mam przewidywania y t + k , ... , y t + k + m - 1 i błędy e t , 1 , ... , e t , m i chcę zbudować strukturę terminów błędów prognozowania.my^t+k,,y^t+k+m-1mit,1,,mit,m

Czy mogę za każdym razem obrócić okno zestawu treningowego o 1, czy też powinienem obrócić go do przodu o ? Jak zmieniają się odpowiedzi na te pytania, jeśli w przewidywanej przeze mnie serii występuje znaczna autokorelacja (możliwe, że jest to proces o długiej pamięci, tj. Funkcja autokorelacji rozpada się raczej jako prawo mocy niż wykładniczo).m

Byłbym wdzięczny za wyjaśnienie tutaj lub linki do miejsca, w którym mogę znaleźć teoretyczne wyniki dotyczące przedziałów ufności wokół MSE (lub innych miar błędów).

Chris Taylor
źródło

Odpowiedzi:

11

Wygląda na to, że bardziej interesuje Cię oszacowanie błędów przy użyciu bootstrapu z maksymalną entropią , a nie weryfikacji krzyżowej. Umożliwi to wygenerowanie wielu danych początkowych, które można następnie podzielić na tyle zestawów pociągów / testów, ile chcesz, aby obliczyć przedziały ufności dla swoich prognoz.

Rob Hyndman ma dalsze dyskusje na temat walidacji krzyżowej szeregów czasowych na swoim blogu , gdzie wdraża kilka różnych metod „walcowania” i prognozowania, ale głównie koncentruje się na implementacji. Mam także kilka innych implementacji na moim blogu . Być może najprostszym podejściem byłoby uśrednienie błędu we wszystkich oknach czasowych, a zatem zignorowanie i potencjalne korelacje błędów.

O ile mogę stwierdzić, teoretyczny stan walidacji krzyżowej dla danych szeregów czasowych jest nieco za teoretycznym stanem ogólnej walidacji krzyżowej. Intuicyjnie spodziewam się wzrostu błędu wraz ze wzrostem horyzontu, co sugeruje, że należy spodziewać się skorelowanych błędów w różnych horyzontach prognozy. Dlaczego to Cię martwi?

Zach
źródło