Dáta

Na uvedenej stránke s dátami si stiahnite tieto (dolu na stránke):

Načítajte ich do R-ka:

load("NLucic_SIHTD_Continuous_Foreign_Trade_series_1900-2021-14032024.Rdata")

Vytvorí sa objekt x:

class(x) 
## [1] "data.frame"

Môžeme si vybrať stĺpec na analyzovanie, napríklad:

data1 <- x[, 10]
data2 <- x[, "Bermuda"]
data3 <- x$BritishVirginIslands

Aké ostrovy sú k dispozícii na modelovanie:

colnames(x)
##  [1] "Years"                   "AmericanSamoa"          
##  [3] "Bermuda"                 "BritishVirginIslands"   
##  [5] "CaymanIslands"           "CookIslands"            
##  [7] "FalklandIslands"         "FaroeIslands"           
##  [9] "FrenchGuiana"            "FrenchPolynesia"        
## [11] "Greenland"               "Guadeloupe"             
## [13] "Guam"                    "Hawaii"                 
## [15] "Martinique"              "Montserrat"             
## [17] "NetherlandsAntilles"     "NewCaledonia"           
## [19] "Niue"                    "PuertoRico"             
## [21] "Reunion"                 "SaintPierreetMiquelon"  
## [23] "TurksandCaicos"          "USVirginIslands"        
## [25] "AntiguaandBarbuda"       "Bahamas"                
## [27] "Barbados"                "Belize"                 
## [29] "Cuba"                    "Cyprus"                 
## [31] "Dominica"                "DominicanRepublic"      
## [33] "Fiji"                    "Grenada"                
## [35] "GuineaBissau"            "Guyana"                 
## [37] "Haïti"                   "Iceland"                
## [39] "Jamaica"                 "Malta"                  
## [41] "Mauritius"               "SaintKitts.Nevis"       
## [43] "SaintLucia"              "SaintVincent.Grenadines"
## [45] "Samoa"                   "Seychelles"             
## [47] "SriLanka"                "Suriname"               
## [49] "TrinidadandTobago"

Vyberte si jeden z ostrovov okrem nasledovných (kvôli porovnanteľným výsledkom):

Kaaždý pracuje s inými dátami, rezervácia tu: http://bit.ly/4en5NZW v hárku ČR mINF - projekt.

Zadanie projektu

(A) Popis dát a ich príprava na modelovanie (5 bodov)

Stručne popíšte, čo vyjadrujú dáta, ktoré modelujete a ostrov, ktorý ste si vybrali. Charakteristika má byť stručná - nejde o projekt z ekonómie ani z geografie, cieľom je mať nejaké predstavu o tom, čo modelujeme (lepšiu ako “tie dáta, pre ktoré mám nájsť model”).

Skontrolujte, či sú v dátach nejaké NA hodnoty na konci - ak áno, treba ich vynechať. Z vektora hodnôt spravte časový rad pomocou funkcie ts a informácie o dátach v prvom stĺpci. Vykreslite ich priebeh, priebeh ich logaritmov a diferencií logaritmov.

Dáta na hľadanie modelu

Zobrazme si niektorý stĺpec s dátami:

plot(data)

S rastúcimi hodnotami rastie disperzia dát, preto dáta zlogaritmujeme:

plot(log(data))

V týchto dátach je rastúci trend, preto nie sú stacionárne a kvôli tomu ich zdiferencujeme:

plot(diff(log(data)))

Pre tieto dáta budeme hľadať ARMA model, bude však formulovaný ako ARIMA model pre logaritmy. Hľadáme teda model v tvare

sarima(log(data), p, 1, q) # + treba premysliet, co musi platit pre konstantu

O tom, že tieto dáta už ďalej netreba diferencovať, sa budeme môcť presvedčiť až po prebratí témy o jednotkovom koreni. Aby však bolo možné na projekte robiť už skôr, vopred je daná informácia, že toto jedno diferencovanie stačí.

(B) Testovanie bieleho šumu (10 bodov)

Zistite, či môžeme diferencie logaritmov považovať za biely šum. Zobrazte autokorelačnú funkciu a p-hodnoty Ljung Boxovho testu a skomentujte výsledky.

Presne napíšte, aká hypotéza sa pre každú jednotlivú hypotézu pri hodnotách ACF a pri každom zbehnutom Ljung-Boxovom teste. Teda namiesto “Je to biely šum, lebo všetky p-hodnoty Ljung-Boxovho testu sú väčšie ako 0,05” napíšte (vo vlastnej formulácii) “Jednotlivé Ljung-Boxove testy testujú hypotézy… Keďže p-hodnoty vyšli…, tieto hypotézy… To znamená, že …”

(C) Funkcia auto.arima (10 bodov)

Nájdite model pre logaritmy pomocou funkcie auto.arima (teda auto.arima(log(data), ...)), pričom

  • zadáte ako vstupnú informáciu, že sa dáta majú raz diferencovať
  • nemá sa použiť aproximácia
  • pri hľadaní modelu sa majú prejsť všetky možné modely s prípustným počtom parametrov
  • uvažované kombinácie počtu AR a MA členov nechajte defaultné
  • ako kritérium výberu modelu použite Bayesovo informačné kritérium

Odhadnite získaný model pomocou funkcie sarima (z balíka astsa) a zhodnoťte rezíduá. Podobne ako v predchádzajúcej časti, aj tu píšte zdôvodnenia svojich tvrdení. Zapíšte rovnicu vyjadrujúcu odhadnutý model. Skomentujte prítomnosť, resp. neprítomnosť konštantného člena v modeli pre diferencie a súvislosť s priebehom nediferencovaných dát.

(D) ARIMA modely (10 bodov)

Prejdeme znova všetky modely uvažované pri použití funkcie auto.arima. Explicitne vypíšte všetky, ktoré sú to.

Skomentujte zaradenie, resp. nezaradenie konštantného člena do modelu - rozhodnúť sa musíte na základe priebehu nediferencovaných dát.

Za “dobrý model” budeme považovať taký, pre ktorý sú p-hodnoty Ljung-Boxovho testu pre všetky počty korelácií - od minimálneho po maximálny uvažovaný pri použití funkcie sarima - väčšie ako 0,05. Ktoré modely vyšli ako dobré?

Spravte tabuľku, v ktorej dobré modely zoradíte podľa Bayesovho informačného kritéria od najlepšieho po najhorší.

Zhoduje sa najlepší model s tým, ktorý vrátila funkcia auto.arima. Ak vyšiel iný, zapíšte jeho rovnicu a ukážte výsledky testovania rezíduí.

(E) Unit root test (10 bodov)

Ukážte, že diferencie logaritmov už nebolo potrebné ďalej diferencovať. Vysvetlite parametre použitého testu, testovanú hypotézu a záver.

(F) Predikcie (5 bodov)

Spravte predikcie na niekoľko nasledujúcich rokov a skomentujte ich priebeh (vzhľadom na doterajší priebeh dát).