Modele dynamiczne 1 Laboratoria komputerowe

Podobne dokumenty
Stanisław Cichocki Natalia Neherbecka

Stanisław Cichocki. Natalia Neherbecka. Zajęcia 13

Stanisław Cihcocki. Natalia Nehrebecka

1 Modele ADL - interpretacja współczynników

7.4 Automatyczne stawianie prognoz

3. Analiza własności szeregu czasowego i wybór typu modelu

Autoregresyjne modele o rozłożonych opóźnieniach - Autoregressive Distributed Lags models

4. Średnia i autoregresja zmiennej prognozowanej

Wprowadzenie Model ARMA Sezonowość Prognozowanie Model regresji z błędami ARMA. Modele ARMA

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

Przyczynowość Kointegracja. Kointegracja. Kointegracja

Analiza Szeregów Czasowych. Egzamin

Szeregi czasowe, analiza zależności krótkoi długozasięgowych

Stanisław Cichocki. Natalia Nehrebecka. Zajęcia 15-16

EKONOMETRIA STOSOWANA PRZYKŁADOWE ZADANIA EGZAMINACYJNE

Prognozowanie i Symulacje. Wykład I. Matematyczne metody prognozowania

Ekonometria Ćwiczenia 19/01/05

3. Modele tendencji czasowej w prognozowaniu

5. Model sezonowości i autoregresji zmiennej prognozowanej

Stacjonarność Integracja. Integracja. Integracja

Estymacja parametrów modeli liniowych oraz ocena jakości dopasowania modeli do danych empirycznych

Etapy modelowania ekonometrycznego

Wprowadzenie Modele o opóźnieniach rozłożonych Modele autoregresyjne o opóźnieniach rozłożonych. Modele dynamiczne.

Statystyka opisowa. Wykład V. Regresja liniowa wieloraka

Co trzeba wiedzieć korzystając z modelu ARIMA i które parametry są kluczowe?

Natalia Neherbecka. 11 czerwca 2010

Egzamin z ekonometrii wersja IiE, MSEMAT

Ekonometria. Zajęcia

Niestacjonarne zmienne czasowe własności i testowanie

Modele dynamiczne. Rozdział 2

Model 1: Estymacja KMNK z wykorzystaniem 32 obserwacji Zmienna zależna: st_g

Stanisław Cichocki. Natalia Nehrebecka. Wykład 12

1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.

Zadanie 1 1. Czy wykresy zmiennych sugerują, że zmienne są stacjonarne. Czy występuje sezonowość?

Ekonometria. Prognozowanie ekonometryczne, ocena stabilności oszacowań parametrów strukturalnych. Jakub Mućk. Katedra Ekonomii Ilościowej

Stanisław Cichocki. Natalia Nehrebecka

Estymacja modeli ARIMA przy uŝyciu Staty oraz Integracja i kointegracja. Grzegorz Ogonek KSiE WNE UW

Wykład 5: Analiza dynamiki szeregów czasowych

Modele ARIMA prognoza, specykacja

parametrów strukturalnych modelu = Y zmienna objaśniana, X 1,X 2,,X k zmienne objaśniające, k zmiennych objaśniających,

Stanisław Cichocki. Natalia Nehrebecka

Egzamin z ekonometrii wersja IiE, MSEMat Pytania teoretyczne

PROGNOZOWANIE SPRZEDAŻY STUDIUM PRZYPADKU

Ekonometria. Modelowanie szeregów czasowych. Stacjonarność. Testy pierwiastka jednostkowego. Modele ARDL. Kointegracja. Jakub Mućk

Mikroekonometria 13. Mikołaj Czajkowski Wiktor Budziński

Ekonometria. Metodologia budowy modelu. Jerzy Mycielski. Luty, 2011 WNE, UW. Jerzy Mycielski (WNE, UW) Ekonometria Luty, / 18

Regresja linearyzowalna

Wprowadzenie do teorii prognozowania

Przykład 2. Stopa bezrobocia

Analiza autokorelacji

Prognozowanie cen surowców w rolnych na podstawie szeregów w czasowych

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Statystyka w przykładach

Kolokwium ze statystyki matematycznej

Zagadnienie 1: Prognozowanie za pomocą modeli liniowych i kwadratowych przy wykorzystaniu Analizy regresji wielorakiej w programie STATISTICA

Analiza regresji - weryfikacja założeń

FUNKCJA LINIOWA - WYKRES

0 + 0 = 0, = 1, = 1, = 0.

1. Pokaż, że estymator MNW parametru β ma postać β = nieobciążony. Znajdź estymator parametru σ 2.

Zadanie 1. a) Przeprowadzono test RESET. Czy model ma poprawną formę funkcyjną? 1

Metoda największej wiarogodności

Ekonometria egzamin 02/02/ W trakcie egzaminu wolno używać jedynie długopisu o innym kolorze atramentu niż czerwony oraz kalkulatora.

Ekonometria Wykład 5. Procesy stochastyczne, stacjonarność, integracja. Dr Michał Gradzewicz Katedra Ekonomii I KAE

Mikroekonometria 3. Mikołaj Czajkowski Wiktor Budziński

Wykład 6: Analiza danych czasowych Wykresy, indeksy dynamiki

Analiza sezonowości. Sezonowość może mieć charakter addytywny lub multiplikatywny

Ekonometria. Modelowanie szeregów czasowych. Stacjonarność. Testy pierwiastka jednostkowego. Modele ARDL. Kointegracja. Jakub Mućk

STATYSTYKA. Rafał Kucharski. Uniwersytet Ekonomiczny w Katowicach 2015/16 ROND, Finanse i Rachunkowość, rok 2

MODEL AS-AD. Dotąd zakładaliśmy (w modelu IS-LM oraz w krzyżu keynesowskim), że ceny w gospodarce są stałe. Model AS-AD uchyla to założenie.

Estymacja modeli ARIMA przy uŝyciu Staty oraz Integracja i kointegracja. Grzegorz Ogonek KSiE WNE UW

Estymacja modeli ARDL przy u»yciu Staty

Rozdział 8. Regresja. Definiowanie modelu

Matematyka ubezpieczeń majątkowych r.

Indeksy dynamiki (o stałej i zmiennej podstawie)

Ćwiczenia IV

Wiadomości ogólne o ekonometrii

Stanisław Cichocki. Natalia Nehrebecka Katarzyna Rosiak-Lada

Stanisław Cichocki Natalia Nehrebecka. Wykład 7

Diagnostyka w Pakiecie Stata

Motto. Czy to nie zabawne, że ci sami ludzie, którzy śmieją się z science fiction, słuchają prognoz pogody oraz ekonomistów? (K.

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

Prognozowanie cen surowców w rolnych na podstawie szeregów w czasowych - uwarunkowania i metody. Sylwia Grudkowska NBP Mariusz Hamulczuk IERIGś-PIB

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

1.1 Opis danych Dekompozycja szeregu ARIMA Prognoza Podsumowanie Opis danych...

Statystyka matematyczna i ekonometria

Stosowana Analiza Regresji

MODELE AUTOREGRESYJNE W PROGNOZOWANIU CEN ZBÓŻ W POLSCE

Zmienne zależne i niezależne

Diagnostyka w Pakiecie Stata

Dopasowywanie modelu do danych

3a. Wstęp: Elementarne równania i nierówności

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Zawansowane modele wyborów dyskretnych

t y x y'y x'x y'x x-x śr (x-x śr)^2

WYKŁAD: Szeregi czasowe I. Zaawansowane Metody Uczenia Maszynowego

Analiza szeregów czasowych bezrobocia i inflacji w Danii

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

Zmienne Binarne w Pakiecie Stata

Metody Ilościowe w Socjologii

Transkrypt:

Modele dynamiczne 1 Laboratoria komputerowe Proszę uruchomić Statę i standardowo wykonać: set mat 800 set mem 200m Zbiór danych, którym się zajmiemy w pierwszej kolejności, to synt.dta. Proszę go otworzyć i zobaczyć w edytorze danych jak wyglądają poszczególne zmienne. Mamy w zbiorze danych kilka szeregów czasowych oraz zmienną okres, która wskazuje na okres pochodzenia poszczególnych obserwacji (łatwo się zorientować, że są to dane miesięczne: od stycznia 1980 do sierpnia 1996). Po wykonaniu komendy: describe okazuje się, że o ile wartości zmiennych szereg1 - szereg4 traktowane są jako wartości liczbowe, o tyle zmienna okres jest traktowana jako tekstowa. Innymi słowy, my patrząc na jej wartości widzimy jaką datę reprezentują, nie widzi jednak tego Stata. Żeby nauczyć Statę odkodowywać datę zapisaną za pomocą zmiennej string, możemy posłużyć się jednym z poleceń z rodziny komend dlyfcns. Wpiszmy najpierw: help dlyfcns Wyświetla się pomoc Staty, po której analizie (pamiętając, że nasze dane są danymi miesięcznymi) wykonamy: gen data=monthly(okres,"ym") Po podejrzeniu w edytorze danych wyniku działania tej komendy, widać, że format w jakim Stata zapisuje datę jest wygodny dla komputera (kolejne cyfry oznaczają kolejne miesiące; licznik Staty rozpoczyna się w styczniu 1960), ale niespecjalnie komfortowy dla osoby pracującej z tymi danymi. Format, w jakim Stata wyświetla datę może być łatwo zmieniony na przyjemniejszy w użyciu za pomocą komendy: format data %tm Zanim przystąpimy do analizowania szeregów czasowych, pozostaje do ustalenia jeszcze jedna kwestia. Otóż znowu tylko my wiemy, że zbiór danych jest szeregiem czasowym, gdzie kolejne okresy wyznaczane są przez zmienną data. Stata cały czas widzi zbiór danych jako próbę przekrojową. Zdefiniowanie zmiennej wskazującej na kolejne okresy czasu, a tym samym nauczenie Staty, że zbiór danych jest zbiorem szeregów czasowych odbywa się przy użyciu komendy: tsset data

Narysujmy szereg1 : scatter szereg1 data scatter szereg1 data, c(l) s(i) Widzimy, że jedną z charakterystyk tego szeregu jest tendencja rozwojowa (trend). Spróbujmy zdetrendyzować ten szereg obliczając jego pierwsze różnice. W Stacie operatorów opóźnień i operatorów różnicowych używa się następująco: 1. operator l opóźnia zmienną, czyli: la. zmiennat = zmiennat a, czyli jeśli chcemy wygenerować zmienną l1szereg1, która stanowić ma pierwsze opóźnienie zmiennej szereg1, to użyjemy komendy: gen l1szereg1=l1.szereg1 lub w przypadku pierwszego opóźnienia, po prostu: gen l1szereg1=l.szereg1 Odpowiednio, komenda: gen l3szereg1=l3.szereg1 stworzy zmienną l3szereg1, która stanowiła będzie 3 opóźnienie zmiennej szereg1. 2. operator s operator różnic sezonowych: sa. zmiennat = zmiennat zmiennat a, czyli jeśli znamy okresowość danych, to w razie potrzeby, możemy je odsezonować właśnie przy użyciu tego operatora. Na przykład, sezonowe różnice zmiennej szereg1 (których wyznaczanie w jej przypadku nie jest specjalnie zasadne, gdyż zmienna ta nie posiada wyraźnych wzorców sezonowych) można uzyskać: gen s12szereg1=s12.szereg1 3. operator d operator różnicowy: a da. zmienna = ( zmienna ) t t 2 t t t [ t t 1 ] [ ] [ ] 2 d 2. zmienna = ( zmienna ) = ( zmienna ) = zmienna zmienna = = zmienna zmienna zmienna zmienna = zmienna zmienna + zmienna t t 1 t 1 t 2 t t 1 t 2 Przykładowo, pierwsze różnice (szukane zresztą przez nas) zmiennej szereg1 uzyskamy: gen d1szereg1=d1.szereg1 Oczywiście wiele zmiennych możemy uzyskać na różne sposoby, przykładowo: x l. x s1. x d1. x Operatory można również zagnieżdżać, czy jak przykładowo potrzebna jest nam pierwsza różnica sezonowej różnicy zmiennej szereg1, to możemy ją uzyskać poprzez komendę:

gen ds12szereg1=d1.s12.szereg1 Wracając do analizy naszego szeregu1, chcieliśmy go zdetrendyzować poprzez obliczenie pierwszych różnic. Wynikiem jest zmienna d1szereg1 narysujmy jej wykres: scatter d1szereg1 data, c(l) s(i) Zajmijmy się teraz szeregiem3 : scatter szereg3 data, c(l) s(i) Widać, że oprócz trendu (który wygląda na liniowy), charakteryzuje się on również dość wyraźną sezonowością w cykliczny sposób wartości szeregu są determinowane przez jeden z okresów. Spróbujmy odsezonować i zdetrendyzować szereg. Operacja obliczenia pierwszych różnic: gen d1szereg3=d1.szereg3 scatter d1szereg3 data, c(l) s(i) scatter d1szereg3 data in 1/36, c(l) s(i) co prawda usuwa trend, ale zupełnie nie radzi sobie z sezonowością. Okazuje się, że przy liniowym trendzie i sezonowości, wystarczające do oczyszczenia szeregu jest wyznaczenie różnic sezonowych: gen s12szereg3=s12.szereg3 scatter s12szereg3 data, c(l) s(i) Proszę spojrzeć na szereg2. Czym różni się on od szeregu3? Proszę postarać się go oczyścić. Ostatnim szeregiem jest szereg4. Po narysowaniu jest wykresu: scatter szereg4 data, c(l) s(i) widać, że na jego wartości wpływa zarówno tendencja rozwojowa, jak i wahania sezonowe. Można by więc próbować oczyścić ten szereg wyznaczając różnice sezonowe: gen s12szereg4=s12.szereg4 scatter s12szereg4 data, c(l) s(i) Daje to jednak połowiczny sukces. Dlaczego? Otóż zaobserwowany trend nie był liniowy należy dodatkowo zróżnicować szereg: gen d1s12szereg4=d1.s12szereg4 albo za pomocą jednej, zagnieżdżonej komendy: gen d1s12szereg4_2=d1.s12.szereg4

Wykres: scatter d1s12szereg4 data, c(l) s(i) Warto jeszcze wspomnieć, że nie trzeba koniecznie generować dodatkowych zmiennych, żeby narysować ich wykres. Przykładowo, ostatni wykres mogliśmy uzyskać od razu przy użyciu operatorów różnicowych bezpośrednio w komendzie scatter : scatter d.s12.szereg4 data, c(l) s(i) Warto również wspomnieć, że jest wiele metod na detrendyzację i odsezonowanie szeregu. Przykładowo James Hamilton, jeden ze światowych autorytetów w dziedzinie analizy szeregów czasowych, do oczyszczenia szeregu proponuje (tam gdzie to możliwe, oczywiście) używać formuły: szereg1_ 2t = 100(ln( szereg1 t ) ln( szereg1 t a )) gdzie a wynika z sezonowości szeregu (w przypadku jej braku (lub szeregów wcześniej odsezonowanych), a=1). W Stacie formuła ta, przykładowo dla szeregu2 wyglądałaby: gen szereg2_2=100*(ln(szereg2)-ln(l12.szereg2)) scatter szereg2_2 data, c(l) s(i) Z materiałów do modeli ADL (autorstwa M. Kurcewicza): Mamy oszacować model długookresowego popytu na pieniądz, na niemieckich odsezonowanych kwartalnych danych z okresów: 1975:01-1994:4. Plik z danymi to adl_mk. Proszę posługując się komendą z rodziny dlyfcns (help dlyfcns) nauczyć Statę rozumienia dat zakodowanych przez tekstową zmienną obs. Proszę również zadeklarować, że typem danych są szeregi czasowe. Zmienne, którymi dysponujemy, to: Szacowany będzie model postaci: k k k k k mr = µ + α mr + β y + β rl + β rs + β infl + ε t i t i yi t i rli t i rsi t i infli t i t i= 1 i= 0 i= 0 i= 0 i= 0

gdzie dodatkowo: mr logarytm realnej podaży pieniądza infl inflacja Zobaczmy jak wyglądają poszczególne szeregi czasowe: scatter y data, c(l) s(i) scatter p data, c(l) s(i) scatter rs data, c(l) s(i) scatter rl data, c(l) s(i) scatter m data, c(l) s(i) Z wykresów tych dość jasno wynika, że część zmiennych nie jest stacjonarna, co (jak się już na wykładach okazało, albo okaże się niebawem) utrudnia naszą analizę, jako że rozkłady niektórych statystyk testowych będą się różniły od spodziewanych. Póki co jednak, podążając za przykładem z materiałów, zapomnimy chwilowo o tym problemie, ale przypomnimy sobie o nim już wkrótce. (Alternatywą jest doprowadzenie niestacjonarnych zmiennych do stacjonarności stosując operatory różnicowe). Zmienne zerojedynkowe dla szeregów czasowych Niektórych zmian kształtowania się zmiennej objaśnianej modelu nie można wyjaśniać zmiennością zmiennych objaśniających. Szoki, których nie są uwzględniane przez zmienne objaśniające można do modelu inkorporować przy użyciu zmiennych zerojedynkowych. Użycie takich zmiennych musi być dobrze uzasadnione teorią lub znajomością historii szeregu! W naszym przypadku, wyróżnione są dwa okresy: a. pierwszy kwartał 1990 roku, w którym nastąpił bardzo szybki wzrost stóp procentowych (po upadku muru berlińskiego pod koniec 1989 roku) oraz b. pierwszy kwartał 1991 roku od tego momentu szeregi podaży pieniądza (m) oraz GDP (y) obejmują Niemcy wschodnie i zachodnie. Zasady wprowadzania zmiennych zerojedynkowych dla okresów: Wprowadzając do modelu zerojedynkową zmienną wskazującą na konkretny okres ( moment szoku, niewytłumaczalnego w ramach modelu), dobrze uzasadnioną przez historię szeregu powinno się kierować przesłankami literaturowymi: 1. jeśli zmienna objaśniana jest stacjonarna, to zerojedynkowa zmienna dla okresu szoku powinna przyjmować wartości 0 przed nim oraz 1 w nim i we wszystkich kolejnych okresach. 2. dla zróżnicowanej zmiennej objaśnianej, zmienna zerojedynkowa powinna przyjmować wartości 0 we wszystkich innych okresach, niż ten, na który wskazuje (no i oczywiści wartość 1 w tym, na który wskazuje). 3. jeśli zmienna objaśniana jest niestacjonarna, to aplikuje się do niej podejście analogiczne jak do zmiennych zróżnicowanych. W bazie danych są zmienne d19901 i d19911, wskazujące na odpowiednie okresy zgodnie z przyjętymi zasadami. Gdybyśmy tych zmiennych nie mieli w bazie oraz chcieli wygenerować je sami, można by użyć do tego komendy:

gen d19901_a=(obs=="1990p1") gen d19911_a=(obs=="1991p1") Gdyby, z kolei zmienna objaśniana była stacjonarna i chcielibyśmy wygenerować adekwatne zmienne zerojedynkowe, to można by to zrobić w sposób następujący: gen d19901_b = 0 gen d19911_b = 0 replace d19901_b=1 if quarterly(obs,"yq")>=quarterly("1990p1","yq") replace d19911_b=1 if quarterly(obs,"yq")>=quarterly("1991p1","yq") Model popytu na pieniądz wykorzystuje realną podaż pieniądza. Żeby taką uzyskać, należy podzielić podaż nominalną przez poziom cen. Jednak w naszym przypadku zmienne są zlogarytmowane, więc żeby uzyskać realną podaż pieniądza, wystarczy odjąć od zmiennej m zmienną p (różnica logarytmów (o tych samych podstawach) = logarytm ilorazu). Wygenerujmy więc realną podaż: gen mr = m-p scatter mr data, c(l) s(i) Zobaczmy jeszcze jak na moglibyśmy się pozbyć trendu w tym szeregu: gen dmr=d.mr scatter dmr data, c(l) s(i) W modelu tym jedną ze zmiennych objaśniających jest też inflacja. Przyjmując standardową definicję, że inflacja to stosunek poziomu cen w jednym okresie do poziomu cen w analogicznym okresie poprzedniego roku oraz pamiętając, że dysponujemy danymi kwartalnymi, mamy: gen infl = p-l4.p gen infl1 = s4.p gen infl2 = d4.p edit infl infl1 infl2 Pokazane są tu trzy formuły na stworzenie zmiennej infl. Jedna z nich, w oczywisty sposób, nie jest formułą poprawną i pokazana tu jest dla kontrastu (a przede wszystkim dlatego, że w materiałach na sieci jest błąd polegający na niepoprawnym użyciu właśnie tej formuły do stworzenia inflacji!) Szacowanie modelu ADL Oszacujmy więc model ADL postaci: k k k k k mr = µ + α mr + β y + β rl + β rs + β infl + ε t i t i yi t i rli t i rsi t i infli t i t i= 1 i= 0 i= 0 i= 0 i= 0 Dobrze jest znać jeszcze jedną małą sztuczkę w Stacie, która pozwala ułatwić sobie trochę pracę w programie. Wyrażenie l( a / b). zmienna t produkuje zestaw zmiennych które są opóźnieniami zmiennej zmienna od opóźnienia a do b. A więc:

l( a / b). zmienna = [ zmienna zmienna... zmienna ] t t a t ( a+ 1) t b Załóżmy, że ogólna postać modelu będzie uwzględniała 5 opóźnienia (k=5). Do oszacowania tego modelu możemy więc posłużyć się komendą: reg mr l(1/5).mr l(0/5).y l(0/5).rl l(0/5).rs l(0/5).infl Wygenerujmy reszty dla tego modelu: predict reszty, r scatter reszty data Na podstawie wykresu czystych reszt czasami trudno jest wnioskować. Wygenerujmy reszty standaryzowane, które jeśli wyraźnie przekraczają wartość 2 (co do wartości bezwzględnej), to mogą wskazywać na obserwacje odstające. predict resztysd, rstudent scatter resztysd data Widać, że jedna z obserwacji wyraźnie odstaje. Uwzględnijmy więc w modelu opisywane zmienne zerojedynkowe: reg mr l(1/5).mr l(0/5).y l(0/5).rl l(0/5).rs l(0/5).infl d19901 d19911 predict resztysd1, rstudent scatter resztysd1 data Analiza składnika losowego Sporo już było mówione (również na ćwiczeniach), jak ważną jest rzeczą, żeby składnik losowy modelu ADL był nieskorelowany. Jeśli ma on taką własność, to oszacowania modelu, pomimo występowania jego części AR są zgodne. Są jednak niezgodne w przeciwnym przypadku, co sprawia, że sensowna interpretacja wyników modelu jest niemożliwa. Testem, którego możemy użyć do sprawdzenie, czy składnik losowy charakteryzuje się autokorelacją, jest test Breuscha-Godfreya: bgodfrey, lags(1/4) Okazuje się, że nasza postać modelu nie zapewnia braku autokorelacji składnika losowego, co czyni estymatory niezgodnymi! Przyczyną tego może być, przykładowo, zbyt krótka część AR modelu. Smutna prawda jest taka, że często chcą dopasować model do teorii ekonomii, dostajemy niezadowalające własności składnika losowego. Modelowanie od ogólnego do szczegółowego Gdyby własności składnika losowego były zadowalające, moglibyśmy spróbować uszczegółowić nasz model. Modelowanie od ogólnego do szczegółowego polega na rekurencyjnej procedurze testowania łącznej istotności najwyższych opóźnień zmiennych modelu. Jeśli okazują się one być łącznie istotne, to procedura się kończy, gdyż oznacza to, że nie można ich z modelu usunąć i to one stanowią prawidłowy rząd opóźnienia zmiennych.

Jeśli jednak okaże się, że są one łącznie nieistotne, to możemy oszacować nowy model bez nich i przejść do testowania łącznej istotności najwyższych opóźnień w kolejnym modelu. Każdorazowo powinniśmy badać własności składnika losowego, gdyż ich poprawność pozwala nam ufać wynikom testów. W naszym przypadku, testowalibyśmy istotność 5-tych opóźnień, a więc: test l5.mr l5.y l5.rl l5.rs l5.infl Opóźnienia te można usunąć (choć nie powinniśmy zbyt optymistycznie podchodzić do wyniku tego testu ze względu na wykazaną wcześniej autokorelację składnika losowego). Szczegółowszym modelem, do którego moglibyśmy przejść od modelu ogólnego byłby: reg mr l(1/4).mr l(0/4).y l(0/4).rl l(0/4).rs l(0/4).infl d19901 d19911 Trzeba by się jednak zastanowić, czy model ogólny można uprościć jeszcze bardziej. W tym celu, na model ogólny narzucamy poprzednie ograniczenia oraz ograniczenia nowe (o nieistotności 4-tych opóźnień). Nowy zestaw ograniczeń (dla modelu ogólnego) można więc przetestować w następujący sposób: test l5.mr l5.y l5.rl l5.rs l5.infl l4.mr l4.y l4.rl l4.rs l4.infl Równowaga długookresowa Po ustaleniu odpowiedniej liczby opóźnień, nikt nie powinien mieć trudności z wyznaczeniem rozwiązania długookresowego. Przyczynowość w sensie Grangera Przypomnijmy definicję: Zmienna x jest przyczyną w sensie Grangera zmiennej y, jeśli bieżące wartości zmiennej y możemy lepiej prognozować przy użyciu przeszłych wartości zmiennej x, niż bez ich użycia. Testowanie przyczynowości w sensie Grangera sprowadza się więc do zbudowania odpowiedniego modelu, np.: 5 5 5 5 5 mr = µ + α mr + β y + β rl + β rs + β infl + ε t i t i yi t i rli t i rsi t i infli t i t i= 1 i= 1 i= 1 i= 1 i= 1 i przetestowaniu, czy opóźnienia którejś ze zmiennych objaśnijących (którą podejrzewamy o bycie przyczyną w sensie Grangera popytu na pieniądz) są w nim łącznie istotne. Sprawdźmy, czy inflacja jest przyczyną w sensie Grangera popytu na pieniądz: reg mr l(1/5).mr l(1/5).y l(1/5).rl l(1/5).rs l(1/5).infl d19901 d19911 test l1.infl l2.infl l3.infl l4.infl l5.infl Jaki jest wynik tego testu?

UWAGA (o istotności zmiennych w modelach ADL) Ogólnie na zmienną w modelach ADL patrzymy blokowo na wszystkie jej opóźnienia oraz bieżącą wartość (jeśli taka występuje). Jeśli więc chcemy ocenić istotność zmiennej w modelu, to nie robimy tego patrząc na poszczególne jej opóźnienia i wyrzucając te, które zgodnie ze standardowym testem okazują się być nieistotne. Zmienna jest w modelu istotna, jeśli jej bieżąca i przeszłe wartości są w modelu łącznie istotne. ZADANIE Wykorzystując dane adl_konsumpcja (kwartalne dane dla Kanady), zbuduj model konsumpcji w zależności od dochodu. Przyjmij, że model ogólny ma 4 opóźnienia: 4 4 konsum = µ + α konsum + β dochod + ε t i t i i t i i i= 1 i= 0 O ile to możliwe (własności składnika losowego), zastosuj metodologię od ogólnego do szczegółowego, wyznacz rozwiązanie długookresowe oraz zbadaj, czy dochód jest przyczyną konsumpcji w sensie Grangera. Procesy ARIMA O tych procesach dość dużo mówiliśmy na zajęciach, dlatego przykład empiryczny będzie w minimalnym stopniu przypominał teorię bardziej będzie skupiał się na praktycznym jej wykorzystaniu. Problem, który przed sobą stawiamy, to próba wyprognozowania kolejnej wartości zmiennej, którą jest stosunek wielkości pożyczki hipotecznej do wartości domu (dane l2p_r.dta wycinek Federal Housing Finance Board (mortgages)). Zakładamy, że wartości zmiennej t15c09 podążają za jakimś teoretycznym procesem generującym dane z rodziny ARMA. Nasze zadanie to ustalenie parametrów tego procesu (czyli rzędu autoregresji i średniej ruchomej). Po ustaleniu struktury danych: gen t=monthly(czas,"ym") format t %tm tsset t i obejrzeniu wykresu zmiennej: scatter t15c09 t, c(l) s(i) przechodzimy do analizy wykresów funkcji ACF i PACF dla badanej zmiennej: ac t15c09 pac t15c09 Z wykresów wynika, że o ile możemy przyjąć, że rząd AR nie będzie większy niż 3, to nie mamy jasnych przesłanek odnośnie rzędu MA. Załóżmy, że rząd ten będzie nie większy niż 8.

Przeprowadźmy więc modelowanie procesu ARMA od ogólnego (ARMA(3,8)=ARIMA(3,0,8)) do szczegółowego. Kryteriami wyboru odpowiedniego procesu niech będą równolegle kryteria informacyjne oraz test LR. UWAGA! W celu możliwości wykorzystania kryteriów informacyjnych, do Staty powinna być doinstalowana komenda arimafit. Można to zrobić np. tak: w oknie Staty naciskamy Crtl+3 Search (zaznaczamy Search net resources ) (wpisujemy arimafit w Keyword) OK. Teraz należy wybrać odpowiedni plik i go zainstalować (z tym już sobie Stata poradzi sama). Prawidłowo zainstalowana komenda powinna wyświetlić opis jej składni po wpisaniu komendy help arimafit. Może się zdarzyć, że w czasie doinstalowywania komponentów do Staty będą się pojawiały drobne problemy, ale łatwo sobie z nimi poradzić, odpowiednio reagując na komentarze Staty o błędach. Zaczynamy modelowanie: quietly arima t15c09, ar(1 2 3) ma(1 2 3 4 5 6 7 8) lrtest, saving(0) arimafit Opcja quietly nie wyświetli wyników oszacowania parametrów oraz procesu znajdowania maksimum funkcji wiarogodności. saving(0) po lrtest ustali, że modelem ogólnym będzie ostatnio oszacowany, a więc ARMA(3,8). W końcu arimafit wyświetli wartości kryteriów informacyjnych i maksimum logarytmu funkcji wiarogodności. Będziemy teraz wprowadzać do modelu ogólnego kolejne ograniczenia, patrząc czy pozwala na nie wynik testu LR oraz patrząc jak reagują na nie kryteria informacyjne. quietly arima t15c09, ar(1 2 3) ma(1 2 3 4 5 6 7) lrtest arimafit quietly arima t15c09, ar(1 2 3) ma(1 2 3 4 5 6) lrtest arimafit (itd.) Postępując w ten sposób, dochodzimy do ARMA(3,3), potem do ARMA(3,2), ARMA(2,2), ARMA(2,1), ARMA(1,1) i okazuje się, że nie jesteśmy w stanie już bardziej ograniczyć wyjściowego modelu, gdyż zarówno wartości kryteriów informacyjnych, jak i wynik testu LR na to nie pozwalają. Prawidłowym modelem jest więc ARMA(1,1). Przypomnijmy sobie jeszcze co model taki musiał spełniać otóż wymagało się, żeby dla prawidłowych wartości p i q nie zachodziła autokorelacja błędu losowego badana testem Ljunga-Boxa. Sprawdźmy: arima t15c09, ar(1) ma(1) predict reszty, re

wntestq reszty, l(13) Jeśli kogoś dziwi, że analizowany przez nas szereg czasowy nalepiej naśladuje proces ARMA(1,1), to obejrzyjmy raz jeszcze wykres tego szeregu oraz wykresy jego ACF i PACF:

I przypomnijmy sobie jak wyglądały te wykresy dla przykładowego, wygenerowanego przy użyciu komputera procesu ARMA(1,1) (te wykresy widzieliśmy na zajęciach): Wykres szeregu czasowego: ACF i PACF:

O możliwościach prognostycznych procesów ARMA proszę doczytać w materiałach przygotowanych przez G. Ogonka, które znaleźć można w zakładce Materiały znajdującej się na wydziałowej stronie przedmiotu ekonometria (a konkretnie tu: http://www.ekonometria.wne.uw.edu.pl/index.php?n=main.materialy).