niedziela, 20 sierpnia 2017

Nieprawda, że dla ARIMA najlepszym kryterium jest BIC. Nowy sprawdzian i prognoza WIG-u

Nawet jeśli BIC prawidłowo informuje o tym, że błądzenie przypadkowe jest faktycznie błądzeniem przypadkowym, to wcale nie oznacza jeszcze, że prawidłowo informuje czy proces ARMA jest procesem ARMA - i w dodatku odpowiedniego rzędu. Żeby się o tym przekonać, musimy wygenerować taki proces i wtedy poddać go testowi. Jednak zanim to zrobię, zrzucę dzienne dane WIG ze stooq.pl -  od 1.06.2006 do 18.08.2017 (1300 obserwacji, tyle samo co poprzednio ruchu Browna):



Testuję standardowo AR(1)-MA(1) w gretlu i dostaję:




Model sugeruje zastosowanie samego modelu MA, bo parametr AR(1) = phi_1 = -0,33 jest nieistotny, ale istotny pozostaje MA(1) = 0,41.


Aby sprawdzić czy ten model powinien zostać wybrany, wchodzę do dodatku armax w Gretlu (opisywanego w tym artykule), ustawiam np. max rząd = 12 (choć tak duża wartość sprawia, że trzeba długo czekać) dla części AR i MA i otrzymuję:




W tym zapisie p to rząd AR, zaś q to rząd MA. Jedynie BIC wskazuje, że najlepszym wyborem jest AR(0)-MA(1). Dla HQC najlepszy okazuje się AR(4)-MA(2), a dla AIC AR(8)-MA(6).

Jeszcze raz więc estymujemy ARIMA zgodnie z BIC, tym razem tylko MA(1). Dostaję:


theta_1 = 0,086.

Teraz wróćmy do wygenerowania procesu ARMA. Jak to zrobić? Na razie nie da się w Gretlu, więc skorzystamy z języka programowania R. Skoro zastosowany dla WIG model MA(1) dostarczył parametru 0,086, to również chcielibyśmy stworzyć taki proces dla tej samej liczby danych. Wygenerujmy 1300 losowej próby procesu MA(1). Aby to zrobić, można w panelu R wpisać przykładowo:

przyklad = arima.sim(n = 1300, list(ar = 0.0000001, ma = 0.086))

Aby zapisać te dane w formie kolumny w pliku csv wpiszemy:

przyklad = data.frame(przyklad)
write.csv(przyklad, file="przyklad.csv")

Plik zostanie zapisany najpewniej w folderze Dokumenty. Jeśli chcielibyśmy zmienić folder, np. na D:\ to przed kodem należy wpisać
setwd("D:/")
Ukośnik, który jest w drugą stronę, może być mylący.

Sam proces MA(1) jest to proces stacjonarny (tutaj skorelowany szum), więc żeby zobaczyć proces niestacjonarny, trzeba dodać do siebie obserwacje. Tak przekształcony proces ma w tym przypadku postać: 



Trzeba przyznać, że idealnie symuluje proces giełdowy.

Co mówi o nim dodatek armax? Znowu ustawiłem max p = 12 i q = 12.


Zaskoczenie. BIC błędnie wskazuje, że proces jest czysto losowy. Tym razem to HQC okazuje się najlepszy. AIC z kolei pokazuje jak zwykle dziwactwo - na grafice tego nie widać, bo jest zbyt duża do wklejenia - wyznacza p = 11 i q = 11.

Prawda okazuje się niejednoznaczna. O ile w pierwszej części testu BIC bezbłędnie sygnalizował błądzenie przypadkowe, o tyle tym razem przeszarżował. Wygląda na to, że to kryterium trochę zbyt restrykcyjnie ocenia proces jako nielosowy. Przypomnę, że mamy tu do czynienia z 1300-ma danymi, czyli nie powinno być już problemu długości próbki. Z drugiej strony wcześniej HQC rzadko, ale czasami mylnie sugerował, że ruch jest skorelowany. W tym teście prawidłowo się zachowuje.

W takim razie sprawdźmy model, który został wybrany przez HQC, tj. AR(4)-MA(2). Wyniki dla WIG są następujące:


Wszystkie współczynniki są istotne na poziomie 1%, co sugeruje, że rzeczywiście jest to dobry model.
Wykonajmy prognozę na następny tydzień, tj. na 21.08-25.08.2017:


Wg tej prognozy w poniedziałek będzie lekki wzrost, we wtorek zachmurzenie, a od środy nastąpi przejaśnienie.

wtorek, 8 sierpnia 2017

Dla ARIMA najlepszym kryterium jest BIC?

Wrócę jeszcze na moment do kwestii wyboru kryterium, względem którego należy wybrać najlepszy model ARIMA. Ostatnio pisałem o dodatku armax w gretlu, gdzie stosuje się 3 kryteria: AIC, BIC i HQC. Do praktycznej analizy używałem HQC, zgodnie z rekomendacją Hannana i Quinna [1]. Teraz jednak doszedłem do wniosku, że BIC jest nieco lepszy. Wygenerowałem 1380 danych zwykłego ruchu Browna:


Ta próba posłużyła do dalszych testów oceny kryteriów w ARMA. Wiadomo, że najlepsze będzie to kryterium, które dla ruchu Browna wskaże AR(0)-MA(0), co oznacza nic innego jak błądzenie losowe. Ustawiłem maksymalny rząd = 7 zarówno dla części AR jak i MA. Testowałem powyższą próbę na różne sposoby: zarówno stosując metodę exact ML jak conditional ML, a także dzieląc próbę na różne podpróby (po 230, 500, 1000 obserwacji). I tak np. dla głównej próby stosując exact ML, otrzymałem dla AIC AR(2)-MA(3), a dla BIC i HQC AR(0)-MA(0). Dla wszystkich podprób BIC zawsze wskazywał prawdę: że najlepszym modelem jest błądzenie przypadkowe. Dla większości prób HQC wskazywał to samo co BIC, ale zdarzały się odstępstwa, tak że HQC wskazywał, że najlepszym modelem jest ARMA jakiegoś rzędu. Z kolei AIC prawie zawsze błędnie pokazywał ARMA jakiegoś rzędu. W metodzie conditional ML BIC i HQC zawsze prawidłowo wskazywały błądzenie losowe, a AIC często dawał mylne wyniki.

Mój wniosek byłby taki, że BIC okazuje się najlepszy dla ARMA. AIC, mimo iż jest najczęstszym kryterium wyboru w modelach ekonometrycznych, to tutaj okazuje się najgorszy. Wynika to z faktu, że zakłada, że nie znamy postaci prawdziwego modelu i jedynie minimalizujemy błąd dopasowania na podstawie danych empirycznych. Dlatego AIC idealnie spisuje się tam (biologii, psychologii, ekonomii), gdzie wiadomo, że jakaś relacja między zmienną zależną a niezależną istnieje, ale dokładnie nie wiadomo jaka oraz że mogą istnieć inne zmienne niezależne, których nie znamy. Jednakże w finansach powinniśmy z góry raczej założyć, że przeszłość nie wpływa na przyszłość i dopiero sprawdzić czy to prawda. To umożliwiają BIC i HQC, które zakładają, że można otrzymać prawdziwy model i że im większa próba, tym większe prawdopodobieństwo, że tak się stanie - za sprawą prawa wielkich liczb.

Logik szybko zauważyłby nieścisłość lub błąd w jednoznacznym stwierdzeniu, że BIC to kryterium najlepsze dla ARMA. Z faktu, iż najlepiej wykrywa błądzenie przypadkowe, nie wynika przecież, że najlepiej wykrywa inny proces. Kolejny artykuł wykaże, że rzeczywiście BIC nie można do końca ufać.


Literatura:
[1] Hannan, E. J., Quinn, B. G., The Determination of the Order of an Autoregression, 1979;
[2]  Aho K., Derryberry D., Peterson T., Model selection for ecologists: the worldviews of AIC and BIC, March 2014.