poniedziałek, 13 lutego 2017

Optymalizacja wstępnych parametrów modelu log-periodycznego

Jeżeli mamy trudności z uzyskaniem wartości krytycznej w modelu log-periodycznym, wtedy możemy spróbować użyć pewnego przekształcenia, które pokazali Filiminov i Sornette [1]. W pierwotnym modelu występowały 3 parametry liniowe: A, B, C oraz 4 parametry nieliniowe a, w, tc, d. Można model przekształcić do takiej postaci, aby uzyskać 4 parametry liniowe i 3 nieliniowe. Nieliniowość powoduje, że obliczenia są bardzo skomplikowane i program komputerowy może nie dać rady rozwiązać problemu numerycznego. Dodatkowo nieliniowość tych parametrów wywołuje quasi-periodyczność, przez co funkcja może mieć wiele punktów optymalnych.

Przypomnę, że pierwotna wersja była następująca:

(1)

Przekształcenie modelu (1) da postać:

(2)

Wzór (2) można zapisać także jako:

(3)

Taka postać jest nawet łatwa do zapamiętania, bo jest to suma funkcji liniowej (A+Bx) oraz funkcji cosinus i sinus ((C1cos + C2sin)x).
Kod w Gretlu na nls (NMNK) dla modelu (3) - nie uwzględniając jeszcze parametrów wstępnych - byłby następujący:
 
...................................
l_Zamkniecie = A+B*(tc-time)^a+C1*(tc-time)^a*cos(w*ln(tc-time))+C2*(tc-time)^a*sin(w*ln(tc-time))

deriv A = 1
deriv B = (tc - time)^a
deriv C1 = cos(w*ln(tc - time))*(tc - time)^a
deriv C2 = sin(w*ln(tc - time))*(tc - time)^a

deriv a = B*ln(tc - time)*(tc - time)^a + C1*ln(tc - time)*cos(w*ln(tc - time))*(tc - time)^a + C2*ln(tc - time)*sin(w*ln(tc - time))*(tc - time)^a

deriv w = C2*ln(tc - time)*cos(w*ln(tc - time))*(tc - time)^a - C1*ln(tc - time)*sin(w*ln(tc - time))*(tc - time)^a

deriv tc = B*a*(tc - time)^(a - 1) + C1*a*cos(w*ln(tc - time))*(tc - time)^(a - 1) + C2*a*sin(w*ln(tc - time))*(tc - time)^(a - 1) + (C2*w*cos(w*ln(tc - time))*(tc - time)^a)/(tc - time) - (C1*w*sin(w*ln(tc - time))*(tc - time)^a)/(tc - time)
..................................


Jednak ciągle pozostaje pytanie jakie przyjąć wstępne parametry. Poprzednio zawsze przyjmowałem A = 1, B = -1, C = 0.5, a = 0.5, a także często w = 9.06, d = -1, tc zaczynałem od tc = T+1, gdzie T jest to liczba obserwacji. Trzeba znaleźć dodatkowo C1 i C2. Zgodnie ze wzorem podanym w [1] wiemy, że zachodzi:


Natomiast dotychczas stosowałem wstępne C = 0,5, a d = -1. Wobec tego wstępne C1 i C2 może wynieść odpowiednio 0,5 oraz -0.0087.

W przytoczonej publikacji [1] pokazany jest także dość skomplikowany algorytm na utworzenie wstępnych optymalnych parametrów liniowych. Należy rozwiązać następujące równanie macierzowe:


Aby nie powielać grafiki, wkleiłem bezpośredni obraz z tej publikacji. Zmienna m to nasza zmienna a, zmienna t(i) to t, indeks i to u nas też t, N to T. Wstępne liniowe parametry A, B, C1 i C2 są de facto funkcją pozostałych nieliniowych parametrów.


Literatura:
[1] Sornette, D., Filimonov, V. - A Stable and Robust Calibration Scheme of the Log-Periodic Power Law Model, 2013.

2 komentarze: