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.
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.
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čí.
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 …”
Nájdite model pre logaritmy pomocou funkcie auto.arima (teda
auto.arima(log(data), ...)
), pričom
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.
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í.
Ukážte, že diferencie logaritmov už nebolo potrebné ďalej diferencovať. Vysvetlite parametre použitého testu, testovanú hypotézu a záver.
Spravte predikcie na niekoľko nasledujúcich rokov a skomentujte ich priebeh (vzhľadom na doterajší priebeh dát).