U ovom tekstu, nastavljamo se baviti vremenskim nizovima - kronološki uređenim podacima. Razmatramo komponente vremenskih nizova, a potom detaljnije razmatramo jednu komponentu vremenskog niza: trend - preciznije, linearni trend.
Vremenski niz mora biti homogen kako bismo mogli pristupiti daljnjim analizama - osobito analizama kojima će se govoriti u ovom štivu. Osim toga, vremenski niz može biti intervalni ili trenutačan - o tome je bilo govora u prošlom štivu.
No, kad vremenske nizove prikažemo grafički, mogu se uočiti razlike u oblicima krivulja koje poprimaju, a to također sugerira da će biti potrebni različiti pristupi analizi.
Da bismo odabrali odgovarajući model, najbrži i najintuitivniji korak jest: pogledati krivulju. Već prvi pogled otkriva barem tri razine kretanja koje ćemo razdvojiti u ovom poglavlju:
Trend - sustavno, monotono, dugoročno kretanje pojave.
Ciklička kretanja - oscilacije koje se ponavljaju u višegodišnjim periodima i često su povezani s gospodarskim fazama ili šokovima.
Sezonalnost - oscilacije koje se ponavljaju u periodu kraćem od godine dana.
Komponente vremenskog niza najčešće možemo barem donekle uočiti vizualno, temeljem linijskog grafikona.
Komponenta | Što znači | Kako izgleda na grafu | Tipični period |
---|---|---|---|
Trend | Dugoročno kretanje pojave (stalni rast ili pad). | Monotona linija bez oscilacija koja prolazi kroz podatke. | \(\geq 5\) godina (često i 10+) |
Sezonska komponenta | Ponavljajući obrazac unutar godine dana | Valovi približno jednakog razmaka koji osciliraju oko trenda. | \(\leq 12\) mjeseci (rjeđe 4 mjeseca ili 6 mjeseci) |
Ciklička komponenta | Višegodišnja kretanja pojave, najčešće povezana s poslovnim ciklusom | Šire oscilacije koje nadilaze trend i sezonu. | \(2 - 8\) godina |
Ponekad sličnosti između sezonske i cikličke komponente otežavaju prepoznavanje razlika. Ova usporedba bi trebala pomoći u tome:
Sezonalnost | Cikličnost | |
---|---|---|
Period | Fiksan i poznat unaprijed (npr. 12 mj.) | Nije fiksan; duljina “vala” varira |
Uzrok | Kalendarski, klimatološki ili institucionalni raspored (blagdani, praznici) | Širi gospodarski utjecaji, agregatna potražnja, cijene sirovina |
Predvidljivost | Lako se modelira jer je gotovo deterministička | Teže; valove otkrivamo tek kad se pojave |
Grafovi u nastavku ilustriraju koliko se ove tri komponente mogu razlikovati od primjera do primjera, kako po pitanju prisutnosti, tako i po pitanju izraženosti.
Zastanite na svakom grafu i sami pokušajte odgovoriti: što je ovdje trend, uočavate li ciklus i postoji li sezona?
Izvor: DZS (2024) Dolasci i noćenja turista
Što uočavate?
Implikacije za analizu
Izvor: DZS (2024) PROSJEČNE MALOPRODAJNE CIJENE DOBARA I USLUGA U KUNAMA I U EURIMA
Što uočavate?
Krivulja je kratka - tek 15 mjesečnih opažanja
Nema vidljivu godišnju sezonu
Između prosinca 2022. i siječnja 2023. nastupa strukturni skok od oko 4 centa. Nakon toga slijedi stabilan rast od približno 0,01 € mjesečno
Za ovako kratak i “glatki” niz bit će dovoljan jednostavni linearni trend (možda uz dummy-varijablu za jednokratni skok). Sezonska ili ciklička komponenta ovdje vjerojatno nisu potrebne.
\(*\) dummy variajbla (indikatorska ili binarna varijabla) je varijabla koja poprima samo dvije vrijednosti, 0 ili 1, radi obilježavanja prisutnosti/ odsutnosti nekog svojstva u regresijskom modelu ili modelu trenda.
Izvor: DZS. Poljoprivreda, šumarstvo i ribarstvo: Kravlje mlijeko i mliječni proizvodi
Što uočavate?
Dugačak niz (više od 200 mjesečnih opažanja) s jasnim silaznim trendom - od 55-60 tisuća tona u početnim mjesecima do ~30 tisuća u posljednjima
osim izraženog opadanja vrijednosti, iz mjeseca u mjesec ponavljaju se oscilacije koje prate obrazac
ljetni minimum i jesensko‐zimski maksimum - klasična godišnja sezona.
osim sezone vidi se i višegodišnje valovito gibanje (npr. periodi privremenog oporavka 2014.-2015. i 2020.-2021.).
Implikacija za analizu
ovdje nam treba model koji istodobno može prikazati dugoročni pad (trend), ponavljajuću sezonu (12 mj.), mogući ciklus (3-5 g.).
za takvo što, potrebni su modeli koji spadaju u nešto naprednije gradivo, kao na primjer, STL-dekompozicija ili ARIMA + sezonski diferencijal.
Izvor: Kultura
Što uočavate?
trend se dijeli u dvije faze: pad do kraja 1990-ih, potom relativno stabilan rast do rekordne 2019. godine
ciklički valovi traju 4-7 godina i čini se da prate poslovne cikluse
ekstremni šok (COVID-19) - dramatičan pad na oko 1 milijun, a potom nagli povrat
sezonu ne vidimo i ne možemo vidjeti, jer je niz godišnji (a sezonalnost možemo uočiti samo za opažanja mjerena unutar godine dana)
Implikacija za analizu
Izvor: DZS (2025) Robna razmjena s inozemstvom
Što uočavate?
Pogledajte ponovo graf i razmislite:
Kako i kuda biste povukli liniju trenda? Kako bi izgledala linija trenda za period od 2011. - 2019. godine, a kako za čitav niz? Što biste mogli zaključiti temeljem toga?
Koji mjesec najčešće predstavlja lokalni minimum u oba niza?
Odaberite mjesec u 2020. ili 2021. koji biste koristili kao “breakpoint” i obrazložite zašto.
Koliko je otprilike bio prosječan jaz između najmanje i najveće vrijednosti u 2015., a koliko u 2023. godini?
U nastavku ćemo se detaljnije baviti vremenskim nizom izvoza RH i prikazati rezultate dekompozicije vremenskog niza.
Kako iščitati komponente vremenskog niza iz ovog grafa
Graf A prikazuje izvorne (sirove) mjesečne vrijednosti izvoza. Ispod njega nalaze se tri odvojene krivulje - trend, sezona i ciklus - koje zajedno “grade” izvorni niz. Najčešći oblici su aditivni i multiplikativni.
Ako je u pitanju aditivni model vremenskog niza, onda je to:
\[ \widehat{y}_t = Trend_t + Sezonalnost_t + Ciklus_t + \varepsilon_t \]
ili
\[ \widehat{y}_t = T_t + S_t + C_t + \varepsilon_t \]
gdje \(\varepsilon_t\) (“epsilon te”) označava slučajnu komponentu vremenskog niza. Odnosi se na pojave koje nisu predvidive trendom, sezonalnom komponentom ni ciklusom. U grafu je izostavljena.
Ako je u pitanju multiplikativni model, onda je to:
\[ \widehat{y}_t = T_t \times S_t \times C_t \times \varepsilon_t \]
Napomena: U praksi često radimo \(\log\)-transformaciju i tada se multiplikativni model pretvara u aditivni zapis: \(\log \widehat{y}_t = \log T_t + \log S_t + \log C_t + \varepsilon_t\).
Graf B - Trend — dugoročno kretanje pojave (graf B, plava linija na kompozit-grafu)
Što vidimo? Glatka rastuća linija od ~800 mil. € do ~2 000 mil. €.
Kako ju prepoznati? Glatka monotona linija, bez izraženih oscilacija (može, ali ne mora biti pravac).
Što znači s obzirom na kontekst? Dugoročni rast izvoza, koje može biti posljedica širenja proizvodnje, otvaranja novih tržišta, ulazak u EU itd. (sjetite se - to ne možemo vidjeti na grafu, ali poznavanje konteksta i ovi uvidi pomažu nam postaviti bolja, ciljana pitanja)
Graf C - Sezonalnost — ponavljajuće oscilacije unutar jedne godine (graf C, plava linija)
Prikazana je kao faktor (npr. 1,08 znači +8 % iznad trenda).
Vizualni trag: oštre, pravilne oscilacije s periodom ponavljanja od točno 12 mjeseci.
Ljetni i prosinački vrhovi sugeriraju sezonsku potražnju (turizam, blagdani).
Siječanjski pad sugerira zastoj u industriji i logistici tijekom zime (vjerojatno zbog neradnih dana tijekom blagdana i zimskih praznika).
Amplituda raste zajedno s razinom izvoza, pa je prikladnije reći “5 % iznad trenda” nego “+50 mil. €” i zbog toga će se u ovakvim grafovima sezonalnost prikazivati kao postotno povećanje, a ne u apsolutnoj vrijednosti.
Graf D - Ciklus — oscilacije koje se ponavljaju u višegodišnjim periodima (graf D, plava linija)
Također prikazan u relativnom odnosu prema trendu (% trenda), gdje \(>1\) označava kretanja iznad trenda (ekspanzija), a \(<1\) kretanja ispod trenda (usporavanje). Može se uočiti da, iako oscilacije postoje, vrlo su malene i slabo izražene, osobito u odnosu na sezonske utjecaje.
periodične oscilacije u periodu od 3-5 godina - primijetite dugačak val oko 2015. godine, pad 2019./20., zatim snažan uzlet 2021.-23.
ciklus odražava šire gospodarske uvjete, cijene sirovina, globalnu potražnju.
Sljedeći graf prikazuje te komponente vremenskog niza (osim slučajne komponente) svedene na istu mjernu jedinicu (mil. eura) i prikazane uz izvorne podatke. Na taj način možemo jasnije uočiti koji su dijelovi opaženih vrijednosti sadržani u kojoj komponenti.
Prepoznajte komponente vremenskog niza na ovom grafu.
Izvor: DZS (2019) Statistički ljetopis 2018
Prepoznajte komponente vremenskog niza na ovom grafu.
Izvor: DZS (2023) GODIŠNJI BRUTO DOMAĆI
PROIZVOD ZA RAZDOBLJE 1995. - 2022., revidirani podaci
Postoji općenito slaganje da je globalna prosječna temperatura 1998. bila 58,3 stupnja Fahrenheita (približno 14,6°C), prema NASA-inom Goddard institutu za istraživanja svemira. Ali, 2012. godine izmjerena je globalna prosječna temperatura od 58,2 stupnja.
Protivnici globalnog zatopljenja stoga tvrde da je globalno zatopljenje time opovrgnuto, budući da je došlo do smanjenja prosječne globalne temperature za 0,1 stupanj u razdoblju od 14 godina. U prilog tom stavu, često se koristi sljedeća slika:
Vrijedi spomenuti da je 1998. bila jedna od najtoplijih zabilježenih godina zbog nenormalno jakog vjetra El Niño. Također vrijedi napomenuti da, budući da postoji veliki stupanj varijabilnosti unutar klimatskog sustava i temperature se obično mjere s ciklusom od najmanje 30 godina.
Prvi isječak (1998 - 2012.) doista izgleda kao da se globalna temperatura ne povećava, čak malo i opada. Međutim, čim proširimo obuhvat, slika se potpuno mijenja:
Isječak niza | Što se vizualno događa | Nagib trend-linije |
---|---|---|
1998 - 2012. | Početna godina je ekstremno topla (jak El Niño); slijedi nekoliko prosječnih i hladnijih godina. | Gotovo ravan nagib → zaključak: nema zatopljenja |
1980 - 2012. | Uključene su “obične“ godine prije El Niña. | Blag, ali vidljiv porast → zaključak: zatopljenje |
1900 - 2012. | Hvata se cijelo industrijsko doba. | Jasno strma uzlazna linija → zaključak: zatopljenje |
Zašto je to tako?
Pouke za analizu vremenskih nizova
Promotrimo ulogu ishodišne godine vremenskog niza za niz dolazaka turista. Mijenjat ćemo raspon podataka koji se uzima u obzir pri utvrđivanju linearnog trenda i promatrati kako to utječe na liniju trenda i zaključke do kojih bi se na takav načim moglo doći.
Izvor: DZS (2024) Dolasci i noćenja turista
Iako se ishodišna godina vremenskog niza crta u ishodištu, ovdje je to prekršeno kako bi se ujednačili grafovi po osima i kako bi se nagibi pravaca trenda mogli vizualno usporediti. Važno je napomenuti da je to samo vizualni trik, model se svejedno računa ispravno (više o tome u narednim poglavljima). Neovisno o tome, inače nećemo kršiti to pravilo.
Promotrite prikazane grafove i razmislite:
Uočava se strmi nagib samo u grafu (d). Što se dogodilo 2020. pa tako dramatično povećava godišnji rast u idućim godinama?
Zašto se graf (b) ponaša suprotno - nagib je negativan? Koliko toga možemo pripisati lockdownu 2020. i sporom povratku 2021.?
Graf (c) ima gotovo ravan nagib. Zašto dodavanje samo dvije “normalne” godine (2018-2019) i dvije post-COVID godine (2022-2023) skoro anulira trend?
Usporedite grafove (e) i (f). Kako uključivanje pandemijskog šoka (2020-2021) utječe na prosječni godišnji rast? Koji biste od ta dva nagiba smatrali reprezentativnim za dugoročni trend i zašto?
U grafu (b), trend počinje s ~18000 dolazaka (u tisućama dolazaka - 18 milijuna), a u grafu (d) s ~9000 - oba u razmaku svega četiri godine. Što nas to uči o interpretaciji odsječka na y-osi kad je ishodišna godina ekstremna?*
Oznaka | Razdoblje | Procijenjena jednadžba trenda | Nagib (β₁) | Odsječak (β₀) |
---|---|---|---|---|
a | 2014 - 2019 | \(y = 12 890,5 + 1 391,5·t + \varepsilon_t\) | +1 391,5 | 12 890,5 |
b | 2016 - 2021 | \(y = 18 281,1 − 1 252,2·t+ \varepsilon_t\) | −1 252,2 | 18 281,1 |
c | 2018 - 2023 | \(y = 15 556 + 129,5·t+ \varepsilon_t\) | + 129,5 | 15 556 |
d | 2020 - 2024 | \(y = 8 816,8 + 3 320,7·t+ \varepsilon_t\) | +3 320,7 | 8 816,8 |
e | 2010 - 2019 | \(y = 9 600,4 + 1 059,1·t+ \varepsilon_t\) | +1 059,1 | 9 600,4 |
f | 2010 - 2024 | \(y = 11 033,4 + 528,1·t+ \varepsilon_t\) | + 528,1 | 11 033,4 |
Najzanimljiviji uvid daje usporedba nagiba. Počnimo s grafom d (2020-2024). Linija ima najstrmiji nagib, ali to nije znak iznenadnog procvata turizma - naprotiv, rast starta u pandemijskoj, 2020. godini. Kad ishodište leži u ekstremno niskoj točki, svako naknadno naglo približavanje normalnim vrijednostima napuhuje nagib. Takvu liniju stoga valja shvatiti isključivo kao priču o oporavku, a ne koristiti ju za projekciju daljnjeg rasta istim tempom.
Suprotan efekt vidimo u grafu b (2016-2021). Ovdje je trend negativan jer obuhvaća vrhunac u 2019. godini i spušta se preko pandemijskog perioda 2020-2021. Uočavamo da ovakav odabir početne godine može potpuno okrenuti znak nagiba. To je upozorenje koliko lako linija trenda može prevariti ako joj nedostaje kontekst.
Graf c (2018-2023) prikazuje gotovo ravan trend. U njemu se podjednako nalaze i rekordne i krizne godine, pa ih jednadžba - zbrajajući iznimno visoke i iznimno niske vrijednosti - prosječno poništava. Takav prosjek izravna ekstreme, ali istodobno prikriva stvarne oscilacije.
Naposljetku, graf f (2010-2024) prikazuje trend s drugim najmanjim nagibom (od pozitivnih). Što je segment duži, to se više šumova i šokova “ispegla“ u blagi nagib. Dugi vremenski period stoga služi kao konzervativna mjera - pouzdana za strateške rasprave i dugoročne prognoze, ali nedovoljno precizna za kratkoročnu prognozu.
Pouka ovih primjera:
Linearni trend nije fiksno svojstvo vremenskog niza; trend je funkcija točke u kojoj započinjemo i opažanja koje obuhvatimo. Pomakom ishodišta možemo pad pretvoriti u rast i obrnuto. Zato prije modeliranja treba:
pogledati cijeli raspoloživi niz,
isprobati trend na više početnih godina,
svjesno odlučiti o odabiru ishodišta vremenskog niza.
Pri odabiru ishodišne godine niza u praksi, prvi kriterij bit će homogenost vremenskog niza. To znači da postoji isti koncept mjerenja (pojam/ podaci), ista metodologija, jednake jedinice u jednakim vremenskim razmacima. Često se niz skraćuje na prvu godinu u kojoj sve varijable zadovoljavaju isti standard (ostatak ide u fusnotu ili se homogenizira korekcijama). Ako je, npr. mjerenje prorjeđeno, recimo, s mjesečne na kvartalnu razinu, onda se mogu iskoristiti svi podaci pod pretpostavkom svođenja na kvartalnu razinu.
Ulogu će igrati i tzv. strukturni lomovi - rat, pandemija, promjena definicije, tehnološki skok i slični disruptivni događaji. Ako analiza traži mirno razdoblje, počinjemo poslije loma; ako je lom predmet istraživanja, niz dijelimo (prije/poslije).
Također, važno je imati na umu cilj analize. Ako nas zanima trend, potreban nam je što duži niz podataka i tad, u pravilu, koristimo sve dostupne podatke niza (uz uvjet homogenosti). Ako nas zanima sezonalnost ili ciklička komponenta, uz usmjerenost na kratkoročne prognoze, onda će fokus biti na nedavnim podacima.
Domena / Primjer niza | Standardni horizont (najkraći raspon koji u praksi daje pouzdanu procjenu) |
Fokus modeliranja (Trend / Sezona / Ciklus / Šok) |
Zašto baš taj horizont? |
---|---|---|---|
Klimatologija (globalna T°) |
30-godišnji prosjek (WMO norma, npr. 1991-2020) |
Trend, sezona, (ciklus ≥ 30 god.) | Pokriva barem jedan cijeli klimatološki “vijek”: El Niño + solarni ciklus. |
BDP i inflacija (ESA-2010) | od 1995./2000. nadalje (kvartalno) | Trend, ciklus, šok | Harmonizirana metodologija EU; omogućuje promatranje recesijskih ciklusa (~8 god.) bez strukt. neslaganja. |
Cijena dionice / kripto | “od IPO-a” ili zadnjih 252 trg. dana | trend, šok, sezona (dan u tjednu) | Najdulji homogeni raspon za evaluaciju; kratki horizont za volatilnost (1 trg. godina). |
Proizvodna logistika | 3 - 5 god. dnevnih podataka | sezona (dnevna, tjedna), trend | Dulje bi uključilo zastarjelu tehnologiju i promjene potražnje; kraće ne hvata punu (multi-)sezonu. |
E-commerce / web promet | 2 - 3 god. dnevni ili satni | sezona (dnevna, tjedna, godišnja), trend, šok | Online kanali ubrzano evoluiraju; više od 3 god. umanjuje efekt novih kampanja/algoritama. |
Plaće i nezaposlenost | 20 + god. (mjesečnih/kvartalnih podataka) | Trend, ciklus (radni ciklus), šok | Prati poslovne cikluse (2-8 god.) i strukturne promjene na tržištu rada. |
Prihvaćanje tehnologija (npr. pametni telefoni) |
Cijela S-krivulja: 10-20 god. | Trend (S-curve), šok (regulatorni) | Glavni cilj je procijeniti saturaciju; sezona i kratki ciklusi manje važni. |
Energetsko opterećenje (električna mreža) |
2 - 4 god. satnih podataka | Sezona (dnevna, tjedna, godišnja), trend | Potrebno za pouzdanu procjenu dnevno-tjednih uzoraka; stariji podaci nose drukčiju strukturu potrošnje/tehnologije. |
Retail prodaja (POS) | 5 god. tjednih podataka | Sezona (tjedan, blagdani), trend | Obuhvaća dvije-tri blagdanske sezone + promjene portfelja; dulje razdoblje riskira strukturne promjene formata trgovine. |
HDI / indeks kvalitete života | 30 + godišnjih podataka | Trend, (ciklus ≥ 10 god.) | Društveno-ekonomski indikatori mijenjaju se sporo; za smislenu analizu potreban je barem (više)desetljetni niz. |
U prethodnim smo poglavljima naučili prepoznati trend, sezonalnost i ciklus na grafu, kao i uvidjeti važnost ishodišne godine niza.
Sada prelazimo na formalni opis i procjenu kad su te tri komponente — Trend, Sezona, Ciklus — aditivne (zbrajaju se).
\[ y_t \;=\; T_t \;+\; S_t \;+\; C_t \;+\; \varepsilon_t \]
log(y)
model opet postaje aditivni.Nastavljamo s primjerom izvoza RH, zabilježenog na mjesečnoj razini od siječnja 2012. godine do veljače 2025. godine i iskazanom u milijunima eura prema fiksnom tečaju. Ranije su komponente izdvojene koristeći multiplikativni model, zbog toga što se oscilacije povećavaju kako vrijeme odmiče. No, kako bi se prikazao aditivni model, ovdje će se koristiti drugačiji pristup, pa će rezultati izgledati donekle drugačije.
Svaka od ovih komponenti ima i svoju pripadajuću jednadžbu. Za trend je to:
\[T_t=597,05+8,96 \cdot t\]
Za sezonsku komponentu, to je:
\[ S_t = - 35,38 \cdot sin \Bigl( \frac{2 \cdot \pi\cdot t}{12} \Bigr) - 30,75 \cdot cos \Bigl( \frac{2\cdot \pi \cdot t}{12} \Bigr) \]
Jednadžba cikličke komponente je:
Za ilustraciju aditivnog modela ovdje smo iz pune Christiano-Fitzgerald dekompozicije (raspon 24-96 mj.) izdvojili samo periodične oscilacije s periodom od 60 mjeseci. Time dobivamo jednu, “prosječnu”, petogodišnju sinusoidu koja dovoljno dobro prikazuje dugoročne cikličke oscilacije, a izbjegavamo složenost višestrukih harmonika - upravo radi jasnoće i jednostavnosti prikaza. Ovaj je pristup koristan kada želimo istaknuti osnovnu strukturu ciklusa bez ulaska u detalje cijelog frekvencijskog spektra.
\[ C_t = 2,5716 \cdot sin \Bigl( \frac{2 \cdot \pi\cdot t}{60} \Bigr) +3,5825 \cdot cos \Bigl(\frac{2\cdot \pi \cdot t}{60} \Bigr) \]
Stoga je aditivni model vremenskog niza jednak zbroju tih komponenti, uz dodavanje slučajne pogreške:
\[ \widehat{y}_t=597,05+8,96 \cdot t - 35,38 \cdot sin \Bigl(\frac{2 \cdot \pi\cdot t}{12} \Bigr) -30,75 \cdot cos \Bigl(\frac{2\cdot \pi \cdot t}{12} \Bigr) + 2,5716 \cdot sin \Bigl(\frac{2 \cdot \pi\cdot t}{60}\Bigr) +3,5825 \cdot cos \Bigl(\frac{2\cdot \pi \cdot t}{60} \Bigr) + \varepsilon_t \]
Koeficijent | Vrijednost | Komponenta | Što nam govori |
---|---|---|---|
\(\alpha\) (odsječak) | 597,05 | Trend | Prosječna razina izvoza u prvom mjesecu niza (mil. EUR). |
\(\beta\) | + 8,96 | Trend | Dugoročni rast: ≈ 8,96 mil. EUR svaki mjesec (≈ 108 mil. EUR godišnje). |
\(A_{S\!\sin}\) | − 35,38 | Sezonalnost (12 mj) | Čini prvu polovicu godišnjeg vala. Zajedno s kosinusom daje ukupnu sezonsku amplitudu. |
\(A_{S\!\cos}\) | − 30,75 | Sezonalnost (12 mj) | Drugi dio vala. Apsolutna amplituda sezone: \(\sqrt{35,38^2 + 30,75^2} ≈ 46,88\) mil. EUR |
\(A_{C\!\sin}\) | + 2,5716 | Ciklus (60 mj) | Dijelovi petogodišnjeg vala; vrlo mala vrijednost - ciklus je tek blaga oscilacija. |
\(A_{C\!\cos}\) | + 3,5825 | Ciklus (60 mj) | Zajedno sa sinus-dijelom daje amplitudu ciklusa: \(A_C ≈ 4.4099\) mil. EUR |
Kompaktan zapis modela vremenskog niza:
\[ \widehat{y}_t=597,05+8,96 \cdot t - A_S sin \Bigl(\frac{2πt}{12}+\phi_S \Bigr) + A_C sin \Bigl(\frac{2πt}{60}+ \phi_C\Bigr) + \varepsilon_t \]
odnosno,
\[ \widehat{y}_t=597.05+8.96 \cdot t - 46.88 \cdot sin \Bigl(\frac{2πt}{12}+2.42 \Bigr) + 4.4099 \cdot sin \Bigl(\frac{2πt}{60}+ 2.23 \Bigr) + \varepsilon_t \]
Na ovom smo primjeru vidjeli kako mogu izgledati komponente vremenskog niza, ali kako ih odrediti?
Metoda | Što radi | Kada je najprikladnija | Skupina metoda |
---|---|---|---|
Linearni / polinomni trend | Utvrđuje pravac \(T_t=\alpha+\beta t\) ili polinom \(T_t=\sum\beta_k t^{\,k}\) metodom najmanjih kvadrata (OLS - Ordinary Least Squares). | Dugoročni nizovi gdje je cilj procijeniti jednadžbu trenda (npr. turizam, plaće). | parametrijska |
Pomični prosjek | Izravnava niz pomicanjem prosjeka tri, pet ili sedam godina što izravnava krivulju i daje uvid u trend. | Brza procjena trend-linije kada formalni model nije potreban ili je nelinearan. | neparametrijska |
Segmentirani trend (piece-wise OLS) | Istodobno fitira dva ili više linearnih trendova s točkama prijeloma (breakpoint) (Chow test, Bai-Perron). | Nizovi s poznatim lomom (npr. COVID-19, promjena metodologije 2015. i sl.). | parametrijska |
Monotoni (spline) trend (cubic spline, loess-trend) | Fleksibilniji način utvrđivanja trenda; čvorove bira informacijski kriterij (GCV/AIC). | Dugi niz s postupnim promjenama nagiba; ne želimo pretpostaviti pravac. | polu-parametrijska |
Klasična dekompozicija (pomični prosjek + fiksni dummy-mjeseci) |
Izravnava trend pomičnim prosjekom, potom računa sezonu kao prosjek ostataka. | Jednostavni mjesečni ili kvartalni nizovi s fiksnom sezonom i stabilnim trendom. | polu-parametrijska (trend - neparam.; sezona - param.) |
STL (Seasonal-Trend by Loess) |
Lokalno izgladi trend i sezonu; sezona ne mora biti cijeli broj i može blago klizati. | Dugi, neprekinuti nizovi do jedne sezone (12 ili 4 mjeseca) kad želimo glatku, robustnu dekompoziciju i ručnu kontrolu. | neparametrijska |
ARIMA (Box-Jenkins, AutoRegressive Integrated Moving Average) | Diferencira niz \((1-B)^d\) i \((1-B^s)^D\) da ukloni trend/sezonu, pa modelira AR (autoregresivni dio) i/ili MA (moving average - pomične prosjeke) dinamiku na stacioniranom nizu. | Kad je primarni cilj prognoza; ili kad želimo jedinstven, parametrijski opis bez dodatnih filtera. | parametrijska |
X-13ARIMA-SEATS / TRAMO-SEATS | Nadograđuju ARIMA model za sezonsku prilagodbu: uključuju kalendarske varijable, automatski pronalaze outliere i daju sezonski očišćen niz. | Službena makro- i inflacijska statistika gdje se traži standardiziran SA-output (Eurostat, IMF). | parametrijska |
State-space / Kalman (UCM, BSTS) | Latentni trend, sezona, ciklus + šokovi u Bayesian/Kalman okviru; ekvivalentno ARIMA u matrici. | Neravnomjerni ili kratki nizovi, online (real-time) filtriranje, analiza strukturnih lomova. | parametrijska |
ETS / exponential smoothing | Procjenjuje trend (N, A, Ad, M) i sezonu (N, A, M) unutar jedne optimizacije; daje i prognozu. | Kratki do srednje dugi nizovi kada primarni cilj nije samo dekompozicija nego i kratkoročna prognoza. | parametrijska (state-space) |
Multiplikativni log-STL | Log-transformacija + STL, pa komponente radimo u postotcima. | Nizovi gdje amplituda sezone raste s vrijednosti varijable (uvoz, cijene). | neparametrijska |
Harmonička regresija (Fourierova serija) |
Sezonu opisuje trigonometrijskim parovima \(\sin\)/\(\cos\); lako dodaje više harmonika. | Složene ili višestruke sezone (npr. energetsko opterećenje sa 24 h + 168 h ciklusom). | parametrijska |
HP / Baxter-King / Christiano-Fitzgerald (band-pass filtri) | Numerički odvaja ciklus određene valne duljine (2-8 g) od trenda. | Makroekonomski nizovi gdje je ciklus jednako važan kao i trend (BDP, nezaposlenost). | neparametrijska |
Piece-wise linear GAM (Generalized Additive Model) s Fourier-sezonom i indikatorima šoka (popularna implementacija: Prophet) | Trend + sezona (Fourier) + “ručni” blagdanski šokovi, optimirano za primjene u poslovanju. | E-commerce i web-promet s više sezona (godina + tjedan) i poznatim promotivnim/holiday šokovima. | polu-parametrijska (trend spline - semi; Fourier dijelovi - param.) |
Većina ovih metoda nabrojana je kao putokaz za daljnje istraživanje. U nastavku ćemo se detaljnije baviti sa samo dvije metode, jednostavnim linearnim trendom (parametrijska metoda) i metodom pomičnih prosjeka (neparametrijska metoda).
Skupine metoda označavaju sljedeće:
Parametrijska - pretpostavlja fiksan funkcionalni oblik s konačnim brojem koeficijenata (OLS-trend, ARIMA, ETS, harmonici).
Neparametrijska - koristi klizno uglađene vrijednosti/ filtere bez eksplicitne formule (STL-loess, HP-filter).
Polu-parametrijska - kombinira oba pristupa: dio se procjenjuje izglađivanjem, dio eksplicitnim koeficijentima (npr. spline-trend + Fourier-sezona, klasična dekompozicija MA-trend + dummy-sezona).
Ovo je parametrijska metoda primjerena za opisivanje kretanja dugoročno linearnih pojava u vremenu. Cilj je utvrditi parametre \(a\) i \(b\) jednadžbe trenda:
\[ \widehat{y}_c=𝑎+𝑏\cdot t+\varepsilon_t \] Metoda najmanjih kvadrata = Ordinary Least Squares (OLS)
Slično kao kod linearne regresije, metoda najmanjih kvadrata procjenjuje parametre modela tako da su udaljenosti opaženih i pravcem procijenjenih vrijednosti što manje. Manje razlike vode do boljeg pristajanja pravca opaženim vrijednostima i manjim rezidualima.
Ipak, važno je voditi računa o tome da postoje određene razlike, zbog toga što u linearnoj regresiji imamo dvije varijable, a kod vremenskih nizova zapravo imamo samo jednu varijablu dok vrijeme služi za utvrđivanje redoslijeda opažanja pojave koja se promatra.
Dakle, između linearne regresije i određivanja pravca trenda postoji konceptualna razlika, koja se dalje može razložiti:
Jednostavna linearna regresija | Trend-regresija na vremenskom nizu |
---|---|
Dvije slučajne varijable: \(Y\) i \(X\) | Jedna varijabla: \(Y_t\); druga “varijabla” je deterministički niz \(t = 0,1,2,\dots\) |
Poznata veza između dvije varijable | Nepoznat uzrok kretanja pojave |
Cilj: objašnjenje i predikcija | Cilj: prognoza |
Pogreške \(\varepsilon\) moraju biti međusobno neovisne, ali mogu korelirati s \(X\)-om | Pogreške \(\varepsilon_t\) ne smiju biti autokorelirane (što je često kršeno u vremenskim nizovima) |
Iz \(X\) možemo birati nasumične ili eksperimentalne vrijednosti | Vrijeme nije kontrolirana kovarijata, nego samo “oznaka položaja” opažanja |
Standardni OLS-testovi (t, F) oslanjaju se na neovisne i jednako distribuirane pogreške | Često moramo korigirati standardne pogreške (Newey-West) ili modelirati ARMA strukturu reziduala |
Što to praktično znači?
Pri utvrđivanju parametara modela trenda koriste se sljedeći izrazi:
\[ \widehat{y}_{ct}=a+bx_t\; \]
\[ b=\frac{\displaystyle\sum x_t\,y_t-\bar x\sum y_t}{\displaystyle\sum x_t^{2}-\bar x\sum x_t} \qquad\Longleftrightarrow\qquad b=\frac{\displaystyle\sum x_t\,y_t-n\bar x\bar y}{\displaystyle\sum x_t^{2}-n\bar x^{2}} \]
\[ a=\bar y-b\bar x \]
Tablica 1. Prikaz izračuna pomoćnih koraka pri utvrđivanju jednadžbe linearnog trenda
Godina | Dolasci turista (tis.) | \(x_t\) | \(x_t\,y_t\) | \(x_t^{2}\) | \(Y_{ct}\) |
---|---|---|---|---|---|
2010. | 10 405,00 | 0 | 0 | 0 | 9 600,44 |
2011. | 11 211,00 | 1 | 11 211 | 1 | 10 659,54 |
2012. | 11 599,00 | 2 | 23 198 | 4 | 11 718,64 |
2013. | 12 233,00 | 3 | 36 699 | 9 | 12 777,75 |
2014. | 12 914,00 | 4 | 51 656 | 16 | 13 836,85 |
2015. | 14 175,00 | 5 | 70 875 | 25 | 14 895,95 |
2016. | 15 463,00 | 6 | 92 778 | 36 | 15 955,05 |
2017. | 17 431,00 | 7 | 122 017 | 49 | 17 014,16 |
2018. | 18 667,00 | 8 | 149 336 | 64 | 18 073,26 |
2019. | 19 566,00 | 9 | 176 094 | 81 | 19 132,36 |
Ukupno | 143 664,00 | 45 | 733 864 | 285 | 143 664,00 |
Izvor: DZS (2024) Dolasci i noćenja turista
Prvi, i vrlo važan korak (jer bez njega nećemo dobiti točne parametre modela) je prekodiranje varijable vrijeme. Prva godina vremenskog niza je ishodište vremenskog niza i poprima vrijednost 0. Svaka sljedeća godina poprima sljedeću cjelobrojnu vrijednost u nizu.
\[b=\frac{\displaystyle\sum x_t\,y_t-n\bar x\bar y}{\displaystyle\sum x_t^{2}-n\bar x^{2}}= \frac{733 864 - 10 \cdot 4.5 \cdot 14366.4}{285 - 10 \cdot 4.5^2}=1059.103\]
\[a=\bar y-b\bar x= 14366.4 - 1059.103 \cdot 4.5 = 9600.4364\]
\[\widehat{y}_{ct}= 9600.4364+1059.103 \cdot x_t + \varepsilon_t\]
Obratite pozornost da su sume opaženih i teorijskih vrijednosti jednake; štoviše, moraju biti jednake. Pri ručnom izračunavanju, tolerira se odstupanje u decimalama koje nastaje zbog zaokruživanja.
Jednadžba trenda: \(\widehat{y}= 9600.4364+1059.103 \cdot x_t + \varepsilon_t\) \(\widehat{y}_{ct}\) - zavisna varijabla: dolasci turista u tisućama \(x_t\) - oznaka za vrijeme: 1 godina Ishodište: 2010. Godina
Prema trendu, u razdoblju 2010. - 2019. godine, u 2010. godini bilo je 9 600 436 turista, uz prosječno godišnje povećanje od 1 059 103 turista.
Ovo je još jedna razlika u odnosu na model linearne regresije. Model se procjenjuje koeficijentom varijacije - ali će se taj koeficijent varijacije računati malo drugačije nego što smo naučili u deskriptivnoj statistici.
Varijanca reziduala
\[ \hat{\sigma}^{2} = \frac{\displaystyle\sum_{t=1}^{n}\bigl(y_{t}-y_{ct}\bigr)^{2}}{\,n-2} \]
Standardna devijacija reziduala
\[ \hat{\sigma} = \sqrt{\frac{\displaystyle\sum_{t=1}^{n}\bigl(y_{t}-y_{ct}\bigr)^{2}}{\,n-2}} \]
Koeficijent varijacije trenda
\[ V_{yc} = \frac{\hat{\sigma}}{\bar{y}}\;\times\;100 \]
Za prikazni primjer dolazaka turista, to je:
Tablica 2. Pomoćne radnje za izračun koeficijenta varijacije
Godina | Dolasci turista (tis.) (\(y_t\)) | \(y_{ct}\) | \(y_t-y_{ct}\) | \((y_t-y_{ct})^{2}\) |
---|---|---|---|---|
2010. | 10 405 | 9 600,436 | 804,564 | 647 322,645 |
2011. | 11 211 | 10 659,539 | 551,461 | 304 108,800 |
2012. | 11 599 | 11 718,642 | −119,642 | 14 314,310 |
2013. | 12 233 | 12 777,745 | −544,745 | 296 747,610 |
2014. | 12 914 | 13 836,848 | −922,848 | 851 649,326 |
2015. | 14 175 | 14 895,952 | −720,952 | 519 771,087 |
2016. | 15 463 | 15 955,055 | −492,055 | 242 117,676 |
2017. | 17 431 | 17 014,158 | 416,842 | 173 757,607 |
2018. | 18 667 | 18 073,261 | 593,739 | 352 526,468 |
2019. | 19 566 | 19 132,364 | 433,636 | 188 040,496 |
Ukupno | 143 664 | 143 664,000 | 0,000 | 3 590 356,024 |
\[ \hat{\sigma} = \sqrt{\frac{\displaystyle\sum_{t=1}^{n}\bigl(y_{t}-y_{ct}\bigr)^{2}}{\,n-2}} = \sqrt{\frac{\displaystyle\sum_{t=1}^{n}\bigl(3 590 356,024\bigr)}{\,10-2}}= \sqrt{448794,503}=669,92127 \]
\[ V_{yc} = \frac{\hat{\sigma}}{\bar{y}}\;\times\;100 = \frac{669,92127}{14366,40}\;\times\;100 = 4,663\% \]
Koeficijent varijacije 4,663 % upućuje na visoku reprezentativnost modela trenda, te se linearni trend ocjenjuje primjerenim modelom za analiziranje ovog niza podataka.
Inače, za vrijednosti koeficijenta varijacije do 25%, uobičajeno se zaključuje da je linearni trend primjereni model za analizu tog niza podataka. U suprotnom, potrebno je odabrati neki drugi oblik analize. U uvodu u vremenske nizove, alternativa će biti jednostavne metode, kao što su pomični prosjeci.
Ekstrapolacija je stručni naziv koji podrazumijeva prognoziranje temeljem trenda i to za vrijednosti x-a izvan promatranog razdoblja. Po tome se ekstrapolacija razlikuje od predviđanja modelom jednostavne linearne regresije, gdje se u takva predviđanja pouzdamo samo ako ispitujemo vrijednosti x-a unutar izvornog raspona varijable.
Na primjer, temeljem prikazanog modela trenda, možemo se pitati koji će broj dolazaka biti ostvaren u 2020. godini ili u 2025. godini?
Na to pitanje možemo odgovoriti tako što ćemo uvrstiti odgovarajuću vrijednost x-a u izračunatu jednadžbu trenda.
Tablica 3. Prekodirane vrijednosti x-a
Godine | 2010. | 2011. | 2012. | 2013. | 2014. | 2015. | 2016. | 2017. | 2018. | 2019. | 2020. | 2021. | 2022. | 2023. | 2024. | 2025. |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\(x_t\) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
\[\widehat{y}_{2020}= 9600.4364+1059.103 \cdot 10 = 20191,467\]
\[\widehat{y}_{2025}= 9600.4364+1059.103 \cdot 15 = 25486,982\]
Ako prognozu za 2020. godinu izračunatu temeljem trenda usporedimo s pripadajućim opažanjem za tu godinu, uočit ćemo veliko odstupanje. Naime, te godine ostvareno je 7 001 000 dolazaka, a ne 20 191 467 predviđenih dolazaka.
Dakle, ovakve prognoze treba pratiti oprezno tumačenje. Prikladno tumačenje prognoze je:
Uz pretpostavku kako će svi čimbenici koji su utjecali na kretanje pojave u periodu od 2010.- 2019. godine nastaviti razvijati se u istom smjeru, istim intenzitetom uz prosječno godišnje povećanje od 1 059 103 turista, broj dolazaka turista u 2020. iznosit će 20 191 467 turista.
Zašto je ovakvo tumačenje prikladno, čak i za pandemijsku godinu?
Digresija. Na primjer, ako pomoću trenda izračunamo vrijednost za 2024. godinu, dobit ćemo 24 427 879 dolazaka turista. Ostvareni broj dolazaka u toj godini je 20 246 000. Iako postoji očita (i velika) razlika u izračunatoj i procijenjenoj vrijednosti, razlika je manja nego za vrijednosti iz 2020. godine. Možemo li govoriti o povratku “u normalu”? Odgovor ovisi o tome kakvu je vrstu loma šok uzrokovao. Na primjer, šokovi mogu biti:
Vrsta promjene | Kako izgleda na grafu | Posljedica za trend-model |
---|---|---|
Privremeni šok npr. kratki štrajk, vremenska nepogoda |
Niz se naglo spusti, a zatim se vrati na prijašnji pravac. | Dovoljno je u model ubaciti dummy-varijablu za pogođeno razdoblje. Dugoročni nagib ostaje isti. |
Strukturni lom u razini (“step shift”) |
Nakon šoka niz nastavlja paralelno starom trendu, ali s nižom (ili višom) razinom. | Model mora imati dummy za razinu ili se procjenjuje novi odsječak \(a\). |
Strukturni lom u nagibu | Šok mijenja smjer ili veličinu nagiba trenda (npr. sporiji oporavak). | Potreban je segmentirani (piece-wise) trend s različitim \(\beta\) prije i poslije loma. |
Nalik na prethodni primjer - tumačimo i izračunatu vrijednost za 2025. godinu.
Uz pretpostavku kako će svi čimbenici koji su utjecali na kretanje pojave u periodu od 2010.- 2019. godine nastaviti razvijati se u istom smjeru, istim intenzitetom uz prosječno godišnje povećanje od 1 059 103 turista, broj dolazaka turista u 2025. iznosit će 25 486 982 turista.
Uobičajeno se linearni trend koristi za prognozu 2-3 vremenske jedinice u budućnosti, jer prediktivna sposobnost slabi kako se udaljavamo od posljednje godine u nizu. Osim toga, niz je potrebno rekalibrirati po dodavanju svakog novog opažanja. U ovom slučaju, uočen je i specifična anomalija, pa će biti zanimljivo usporediti prognoziranu vrijednost s ostvarenom i temeljem toga zaključivati o “povratku na staro” ili “novo normalno”.
Ako bismo ovdje razmotrili ranije analizirani primjer s izvozom RH, koji osim trenda sadrži i druge komponente, ekstrapolacija i prognoziranje trendom iziskuju naprednije metode. Ovdje je brzi prikaz kako takvi rezultati mogu izgledati (možda vas zainteresira za daljnje istraživanje).
Crna linija prikazuje povijesne mjesečne vrijednosti izvoza: od 2012. do kraja 2024. vidimo postupno ubrzavanje rasta i sve izraženije sezonske valove. Od trenutka kada opaženi podaci završavaju, model - kombinacija STL-dekompozicije i eksponencijalnog izglađivanja ETS(M,A,N) iscrtava prognozu.
Središnja tamnoplava traka prognoziranih vrijednosti predstavlja najvjerojatniji raspon kretanja - prati dosadašnji sezonski obrazac i polagano se penje, što odražava procijenjeni rastući trend. Što idemo dalje u budućnost, traka se blago uspinje i širi - do kraja prognoziranog perioda procijenjene vrijednosti dostižu interval od 1,5 pa do preko 3 mlrd €.
Plavo sjenčanje oko središnje linije govori koliko su prognozirane vrijednosti neizvjesne. Tamniji pojas pokriva otprilike 80 %, a svjetliji 95 % očekivanih ishoda. Raspon se s vremenom širi. U prvim mjesecima prognoze interval je relativno uzak - model prognozira da će izvoz ostati u relativno uskom intervalu od 1,9-2,4 mlrd €. Nakon dvije-tri godine neizvjesnost raste: gornja granica prelazi 3 mlrd €, dok donja pada ispod 1,5 mlrd €. Drugim riječima, što dalje prognoziramo, to je veća vjerojatnost da neki neočekivani šok (promjene cijena energenata, rat, nova regulativa) odvuče niz u drugom smjeru. Dakle, ako se gospodarsko okruženje radikalno promijeni, stvarna kretanja mogu iskočiti iz prikazanog raspona. Stoga graf treba čitati kao raspon vjerojatnih ishoda pod status-quo pretpostavkama, a ne kao zadanu razinu izvoza u iduće tri godine.
Pomični prosjeci računaju se temeljem neparnog broja redoslijednih opažanja vremenskog niza, a potom se prikazuju grafički
Za trogodišnji pomični prosjek, to će biti niz računat temeljem izraza:
\[ PP3_t = \frac{y_{t-1}+y_t + y_{t+1}}{3} \]
Dakle, trogodišnji pomični prosjek za godinu (ili kvartal, mjesec i sl.) \(t\), dobiva se zbrajanjem vrijednosti pojave u promatranoj, prethodnoj i sljedećoj godini (ili kvartalu, mjesecu i sl.) podijeljen s tri. S obzirom na to da uključuje prethodnu godinu (ili kvartal, mjesec i sl.) u izračun, nije ga moguće izračunati za prvu godinu (ili kvartal, mjesec i sl.) niza. Slično, s obzirom da iziskuje sljedeću godinu (ili kvartal, mjesec i sl.), neće ga biti moguće izračunati ni za posljednju godinu (ili kvartal, mjesec i sl.) niza.
Za petogodišnji pomični prosjek, to će biti niz računat temeljem izraza:
\[ PP5_t = \frac{y_{t-2} +y_{t-1}+y_t + y_{t+1} + y_{t+2}}{5} \]
Slično kao i za trogodišnji prosjek, petogodišnji pomični prosjek za godinu \(t\), dobiva se zbrajanjem vrijednosti pojave u promatranoj, dvije prethodne i dvije sljedeće godine podijeljeno s pet. S obzirom na to da uključuje dvije prethodne godine u izračun, nije ga moguće izračunati za prve dvije godine niza. Slično, neće ga biti moguće izračunati ni za posljednja dva opažanja niza.
Brojnici pomičnih prosjeka su pomični totali.
Za primjer dolazaka turista, to izgleda ovako:
Godina | Dolasci_tis | Trogodisnji_pomicni_total | Trogodisnji_pomicni_prosjek | Petogodisnji_pomicni_total | Petogodisnji_pomicni_prosjek |
---|---|---|---|---|---|
2010 | 10405 | NA | NA | NA | NA |
2011 | 11211 | 33215 | 11071.67 | NA | NA |
2012 | 11599 | 35043 | 11681.00 | 58362 | 11672.4 |
2013 | 12233 | 36746 | 12248.67 | 62132 | 12426.4 |
2014 | 12914 | 39322 | 13107.33 | 66384 | 13276.8 |
2015 | 14175 | 42552 | 14184.00 | 72216 | 14443.2 |
2016 | 15463 | 47069 | 15689.67 | 78650 | 15730.0 |
2017 | 17431 | 51561 | 17187.00 | 85302 | 17060.4 |
2018 | 18667 | 55664 | 18554.67 | NA | NA |
2019 | 19566 | NA | NA | NA | NA |
Pomični prosjek “gleda unatrag i unaprijed” pa hvata promjenu nakon što se već dogodila. Što je raspon dulji, linija je glađa - ali i kasnije “reagira”. PP-5 će tek 2 godine nakon eventualnog zaokreta pokazati novu putanju.
Također, nastupa gubitak podataka na rubnim dijelovima niza. Kod kratkih nizova to može biti osjetan udio. Za prognoze rubnih godina morat će se posegnuti za drugim metodama.
Ako niz ima sezonske skokove, prvo ih treba ukloniti. U suprotnom, prosjek može obuhvatiti sezonu u trend i iskriviti ga. Standardna praksa je desezonirati, pa potom računati pomične prosjeke.
Kao neparametrijska metoda, ne omogućuje određivanje parametara i prvenstveno se koristi za vizualne prikaze. Ne omogućuje no ekstrapolaciju. Osim toga, pomični prosjek je osjetljiv na ogromne šokove. Jedan izvanredni podatak utječe na više uzastopnih vrijednosti niza promičnih prosjeka. Zbog svega navedenog, u praksi će se koristiti uz, a ne umjesto, parametarskog trenda ili naprednijih modela.
Ovdje ćemo se pozabaviti s dvije najjednostavnije metode desezoniranja vremenskog niza.
\[y_t=y_t−y_{t−s}\] (ili \(y_t=\frac{y_t}{y_{t−s}}\) kod multiplikativne sezone)
radi se o oduzimanju vrijednosti istog mjeseca (ili tromjesečja) godine dana ranije od promatrane vrijednosti
sezonsko razlikovanje je zapravo oblik apsolutne stope promjene, rezultira nizom godišnjih promjena. Više nemamo razinu izvoza, nego koliko se izvoz povećao / smanjio u odnosu na isti mjesec lani.
na ovaj način se utvrđuju razlike koje vjerojatno proizlaze iz sezonskih oscilacija, ali ne dobivamo promjenu u nizu trenda
ratio-to-moving-average
izračuna se centrirani pomični prosjek (npr. 12-mj)
izvorni podaci dijele se s pomičnim prosjekom ⇒ to daje sezonu+šum
računa se prosječni sezonski indeks za svaki mjesec (skaliran da prosjek bude 1)
izvorni podaci podijeljeni sa sezonskim indeksima daju desezonirani niz.
Mjesec | y_t | y_{t-12} | y_t - y_{t-12} | PP_{12} | y_t / PP_{12} | Sezonski_indeks | Desezonirani_niz |
---|---|---|---|---|---|---|---|
sij 2024 | 1741 | 1681 | 60 | 1958.9 | 0.89 | 0.86 | 2027 |
vlj 2024 | 1879 | 1777 | 102 | 1951.5 | 0.96 | 0.94 | 1997 |
ožu 2024 | 2005 | 2397 | -392 | 1960.3 | 1.02 | 1.05 | 1910 |
tra 2024 | 2019 | 1807 | 212 | 1974.7 | 1.02 | 0.95 | 2117 |
svi 2024 | 2030 | 1923 | 107 | 1980.7 | 1.02 | 1.01 | 2009 |
lip 2024 | 1891 | 1917 | -26 | 2004.6 | 0.94 | 1.00 | 1885 |
srp 2024 | 2388 | 1839 | 549 | 2021.6 | 1.18 | 1.08 | 2205 |
kol 2024 | 1577 | 1666 | -89 | 2033.8 | 0.78 | 0.88 | 1788 |
ruj 2024 | 1994 | 1888 | 106 | NA | NA | 1.06 | 1882 |
lis 2024 | 2261 | 2089 | 172 | NA | NA | 1.09 | 2071 |
stu 2024 | 2182 | 2110 | 72 | NA | NA | 1.09 | 1999 |
pro 2024 | 2088 | 1801 | 287 | NA | NA | 0.98 | 2141 |
Dva pristupa čišćenju sezone
Razlika - dobra za stacioniranje prije naprednijih modela, ali gubi mjernu jedinicu.
Omjer & indeks - vraća se na izvorne jedinice, pa je praktičnije za ekonomsku interpretaciju.
Indeksi moraju biti normirani tako da njihov prosjek u godini bude točno 1 (ili 100 %). Time ukupna razina niza ostaje nepromijenjena.
Sljedeći graf prikazuje prvi i posljednji stupac prethodne tablice.
Kad desezoniramo, ne bismo trebali očekivati potpuno ravnu liniju - dobit ćemo sve ono što u nizu nije kalendarski predvidljivo sezonom:
Trend (dugoročna putanja)
Ciklički valovi i jednokratni šokovi (npr. promjene cijena energenata, udar logističkih troškova, politički događaji)
Slučajni šum mjerenja.
U grafičkim prikazima u poglavlju Komponente vremenskog niza korišteni su linijski grafovi, a postupci su ranije prikazani u Štivu 9, pa se čitatelj upućuje na to štivo za referencu. Ostali postupci prikazat će se s obzirom na to u kojoj mjeri u kojoj su softveri prilagođeni za takve prikaze.
R i povezani paketi omogućuju sve grafičke prikaze i izračune prikazane u ovom tekstu. Ako ne koriste R, ali se snalazite u MS Excelu i JASPu, vidjet ćete da MS Excel ima više ugrađenih mogućnosti analize vremenskih nizova (bilo ručno ili putem ugrađenih funkcija) nego JASP. Naime, MS Excel je kreiran za upotrebu u poslovanju i ekonomiji, pa je smisleno da će nuditi olakšani pristup za primjenu metoda koje se u tom području intenzivnije koriste. JASP, s druge strane, iako se konstantno razvija, još uvijek nema toliko posvećenih opcija za rad s vremenskim nizovima - prikladniji je za korištenje za klasičnu i Bajezijansku statističku analizu te neke oblike strojnog učenja (dakle, prema ponuđenim naprednim paketima, više je usmjeran za korištenje u podatkovnim znanostima).
Kratka usporedba rada s vremenskim nizovima u MS Excelu i JASPu
=AVERAGE(B2:B4)
za PP3) ili odabrati ugrađene funkcije (Data → Data Analysis → Moving
Average).AVERAGEIFS
), 4) =\(y_t\)/SezIndex.Dakle, za jednostavne vizualizacije i utvrđivanje trenda, prikladniji je MS Excel (tj. brže i lakše dolazimo do rješenja).
Prethodno uređene podatke (uključujući prekodiranu varijablu vrijeme) učitajte u JASP. Za grafički prikaz trenda te izračun modela linearnog trenda slijedite ove korake:
Dakle, ovdje je izravno primijenjena metoda
najmanjih kvadrata i to će fukcionirati samo ako je varijable vrijeme
prethodno prekodirana, počevši od 0.
Na taj način koristimo postupak koji nam je poznat od ranije (jednostavna linearna regresija) i kreiramo pravac trenda.
Postoji i drugi pristup, koristeći osnovnu opciju ARIMA modela (iz Time Series paketa), koja zapravo rezultira modelom linearnog trenda. Osim toga, ovdje je omogućeno filtriranje niza po retcima opažanja (pripazite, t=0 je redak=1), što je korisno kad želimo ispitati efekte odabira različitih ishodišta vremenskog niza.
Uvoz podataka, njihovo čišćenje i transformacija te kreiranje grafova, prikazani su u prethodnom štivu te se ovdje neće detaljnije prikazati.
Komponente vremenskog niza prikazane za Izvoz RH, utvrđene su na sljedeći način.
> library(tidyverse)
> library(lubridate)
> library(forecast)
> library(mFilter)
> library(patchwork)
>
> df_wide <- df |>
+ pivot_wider(names_from = Vrsta,
+ values_from = Iznos_mil_EUR) |>
+ arrange(Datum)
>
>
> izvoz_ts <- ts(df_wide$Izvoz,
+ start = c(year(min(df_wide$Datum)),
+ month(min(df_wide$Datum))),
+ freq = 12)
>
>
> stl_izvoz <- stl(log(izvoz_ts), s.window = "periodic")
>
> seasonal_log <- stl_izvoz$time.series[, "seasonal"]
> sa_log <- log(izvoz_ts) - seasonal_log
>
> hp_sa <- hpfilter(sa_log, freq = 223, type = "lambda") # (Hodrick & Prescott, 1997)
>
> library(mFilter)
> bp_sa <- cffilter(sa_log, pl = 96, pu = 120, root = TRUE, drift = TRUE)
>
> cycle_log <- exp(bp_sa$cycle)
>
> trend_log <- hp_sa$trend
>
> comp_df <- tibble(
+ Datum = df_wide$Datum,
+ A_Izvoz_izvorni_podaci = as.numeric(izvoz_ts),
+ B_Trend_komponenta = as.numeric(exp(trend_log)),
+ C_Sezonska_komponenta = as.numeric(exp(seasonal_log)),
+ D_Ciklicka_komponenta = as.numeric(cycle_log)
+ ) %>%
+ pivot_longer(-Datum,
+ names_to = "Komponenta",
+ values_to = "Vrijednost")
>
>
> g <- ggplot(comp_df, aes(Datum, Vrijednost)) +
+ geom_line(colour = "blue", linewidth = 0.6) +
+ scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
+ scale_y_continuous(labels = scales::comma_format()) +
+ facet_wrap(~ Komponenta, ncol = 1, scales = "free_y") +
+ labs(title = "Izvoz RH - izvorni podaci i trend komponenta u mil. eura \nte sezonska i ciklička komponenta iskazane kao postotak trenda",
+ x = "Razdoblje", y = "Mil. eura po fiksnom tecaju") +
+ theme_minimal(base_size = 10) +
+ theme(
+ strip.text = element_text(face = "bold"),
+ axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)
+ )
>
> print(g)
Prikaz svih komponenti u istoj mjernoj jedinici i grafički prikaz kreirani su na sljedeći način.
> library(tidyverse)
>
> comp_wide <- comp_df %>%
+ pivot_wider(names_from = Komponenta,
+ values_from = Vrijednost)
>
> line_df <- comp_wide %>%
+ mutate(
+ Trend = B_Trend_komponenta,
+ TrendSeasonal = B_Trend_komponenta * C_Sezonska_komponenta,
+ TrendCycle = B_Trend_komponenta * D_Ciklicka_komponenta,
+ Original = A_Izvoz_izvorni_podaci
+ ) |>
+ select(Datum, Original, Trend, TrendSeasonal, TrendCycle) |>
+ pivot_longer(-Datum,
+ names_to = "Serija",
+ values_to = "Vrijednost") |>
+ mutate(
+ Serija = recode(Serija,
+ Original = "A) Izvorni podaci",
+ Trend = "B) Trend komponenta",
+ TrendSeasonal = "C) Sezonska komponenta",
+ TrendCycle = "D) Ciklička komponenta")
+ )
>
> ggplot(line_df,
+ aes(Datum, Vrijednost,
+ colour = Serija,
+ linetype = Serija)) +
+ geom_line(linewidth = 0.9) +
+ scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
+ scale_y_continuous(labels = scales::comma_format()) +
+ scale_colour_manual(values = c(
+ "A) Izvorni podaci" = "gray",
+ "B) Trend komponenta" = "red",
+ "C) Sezonska komponenta" = "green",
+ "D) Ciklička komponenta" = "blue"
+ )) +
+ scale_linetype_manual(values = c(
+ "A) Izvorni podaci" = "solid",
+ "B) Trend komponenta" = "solid",
+ "C) Sezonska komponenta" = "solid",
+ "D) Ciklička komponenta" = "solid"
+ )) +
+ labs(
+ title = "Izvoz RH - izvorni podaci i komponente vremenskog niza",
+ x = "Razdoblje",
+ y = "Mil. EUR",
+ colour = NULL,
+ linetype = NULL
+ ) +
+ theme_minimal(base_size = 11) +
+ theme(
+ axis.text.x = element_text(angle = 90, vjust = .5, hjust = 1),
+ legend.position = "bottom"
+ )
Pri ilustraciji važnosti odabira ishodišta niza, korišten je skup podataka o dolascima turista te sljedeći kod:
> library(tidyverse)
> library(glue)
> library(patchwork)
>
> tur2 <- read_excel("Dolasci_turista2.xlsx",
+ col_types = c("text", "numeric")) |>
+ rename(godina_txt = 1, # 1. stupac privremeno tekst
+ dolasci = 2) |> # 2. stupac već je numeric
+ mutate(godina = parse_number(godina_txt)) |> # "2010." → 2010
+ select(godina, dolasci)
>
>
> graf_lm <- function(df, naziv) {
+
+ df <- df |> arrange(godina) |>
+ mutate(t = 0:(n() - 1))
+
+ mod <- lm(dolasci ~ t, data = df)
+ koef <- broom::tidy(mod)$estimate # β0 , β1
+ eq <- glue("y = {round(koef[1],1)} + {round(koef[2],1)}t")
+
+ ggplot(df, aes(godina, dolasci)) +
+ geom_point() +
+ geom_smooth(method = "lm", se = FALSE, colour = "red") +
+ scale_x_continuous(limits = c(2010, 2024),
+ breaks = seq(2010, 2024, 2),
+ expand = c(0, 0)) +
+ scale_y_continuous(limits = c(5000, 21000),
+ breaks = seq(5000, 21000, 5000),
+ expand = c(0, 0),
+ labels = scales::comma_format()) +
+ labs(
+ title = naziv,
+ subtitle = eq,
+ x = NULL, y = "Dolasci (tis.)"
+ ) +
+ theme_minimal(base_size = 11)
+ }
>
>
> g1 <- graf_lm(filter(tur2, godina %in% 2014:2019), "a) 2014-2019")
> g2 <- graf_lm(filter(tur2, godina %in% 2016:2021), "b) 2016-2021")
> g3 <- graf_lm(filter(tur2, godina %in% 2018:2023), "c) 2018-2023")
> g4 <- graf_lm(filter(tur2, godina %in% 2020:2024), "d) 2020-2024")
> g5 <- graf_lm(filter(tur2, godina %in% 2010:2019), "e) 2010-2019")
> g6 <- graf_lm(filter(tur2, godina %in% 2010:2024), "f) 2010-2024")
>
>
> (g1 | g2) / (g3 | g4) / (g5 | g6)
Prikaz dekompozicije vremenskog niza koristeći neparametrijske metode:
> stl_orig <- stl(izvoz_ts, s.window = "periodic")
> T_t <- stl_orig$time.series[,"trend"]
> S_t <- stl_orig$time.series[,"seasonal"]
> R_t <- as.numeric(izvoz_ts) - T_t - S_t
>
> library(mFilter)
> bp <- cffilter(R_t, pl = 24, pu = 96, root = TRUE, drift = TRUE)
> C_t <- bp$cycle # u mil. EUR
>
> izvoz <- as.numeric(izvoz_ts)
> trend <- as.numeric(T_t)
> sezona <- as.numeric(S_t)
> ciklus <- as.numeric(C_t)
>
> # Reziduali su ono što ostaje nakon uklanjanja trenda, sezone i ciklusa
> reziduali <- izvoz - trend - sezona - ciklus
>
> comp <- tibble(
+ Datum = df_wide$Datum,
+ A_Izvorni_podaci = izvoz,
+ B_Trend = trend,
+ C_Sezona = sezona,
+ D_Ciklus = ciklus,
+ E_Reziduali = reziduali
+ )
>
> comp_long <- comp %>%
+ pivot_longer(-Datum,
+ names_to = "Komponenta",
+ values_to = "Vrijednost")
>
>
> ggplot(comp_long, aes(x = Datum, y = Vrijednost)) +
+ geom_line(colour = "steelblue") +
+ facet_wrap(~ Komponenta, ncol = 1, scales = "free_y") +
+ labs(x = NULL, y = "mil. EUR")
Izračun modela trenda:
> comp_trend <- stl_izvoz$time.series[, "trend"]
>
> t <- c(0:157)
> trend_lm <- lm(comp_trend ~ t)
> coef(trend_lm)
## (Intercept) t
## 6.57357471 0.00686759
Izračun modela sezonske komponente:
> comp_seasonal <- stl_izvoz$time.series[, "seasonal"]
> M <- 12
> s1 <- sin(2*pi*t/M); c1 <- cos(2*pi*t/M)
> seas_harm <- lm(comp_seasonal ~ 0+s1 + c1)
> seas_harm
##
## Call:
## lm(formula = comp_seasonal ~ 0 + s1 + c1)
##
## Coefficients:
## s1 c1
## -0.02873 -0.02748
Izračun modela cikličke komponente:
> t <- seq_along(C_t) - 1
> P <- 60
> sinP <- sin(2*pi*t/P); cosP <- cos(2*pi*t/P)
> fitC <- lm(C_t ~ 0 + sinP + cosP)
> coef(fitC)
## sinP cosP
## 2.571624 3.582457
> amp <- sqrt(coef(fitC)[1]^2 + coef(fitC)[2]^2)
> amp
## sinP
## 4.409903
Ekstrapolacija i prognoza:
> fit <- stlm(izvoz_ts, s.window = "periodic", method = "ets")
> fc <- forecast(fit, h = 36)
> autoplot(fc)
Izračun modela trenda za dolaske turista:
> tur <- data.frame(Godina = c(2010:2019),
+ Dolasci_tis = c(10405, 11211, 11599, 12233, 12914, 14175, 15463, 17431, 18667, 19566))
> tur$Prekod_god <- c(0:9)
>
> trend <- lm(Dolasci_tis~Prekod_god, tur)
> trend
##
## Call:
## lm(formula = Dolasci_tis ~ Prekod_god, data = tur)
##
## Coefficients:
## (Intercept) Prekod_god
## 9600 1059
Izračun koeficijenta varijacije:
> sd(trend$residuals)/mean(tur$Dolasci_tis)*100
## [1] 4.396424
Izračun pomičnih prosjeka:
> library(zoo)
> tur <- tur %>%
+ mutate(
+ T3_total = rollapply(
+ Dolasci_tis,
+ width = 3,
+ FUN = sum,
+ fill = NA,
+ align = "center"
+ ),
+ T3_avg = ifelse(
+ is.na(T3_total),
+ NA,
+ T3_total / 3
+ ),
+ T5_total = rollapply(
+ Dolasci_tis,
+ width = 5,
+ FUN = sum,
+ fill = NA,
+ align = "center"
+ ),
+ T5_avg = ifelse(
+ is.na(T5_total),
+ NA,
+ T5_total / 5
+ )
+ )
>
> knitr::kable(tur)
Godina | Dolasci_tis | Prekod_god | T3_total | T3_avg | T5_total | T5_avg |
---|---|---|---|---|---|---|
2010 | 10405 | 0 | NA | NA | NA | NA |
2011 | 11211 | 1 | 33215 | 11071.67 | NA | NA |
2012 | 11599 | 2 | 35043 | 11681.00 | 58362 | 11672.4 |
2013 | 12233 | 3 | 36746 | 12248.67 | 62132 | 12426.4 |
2014 | 12914 | 4 | 39322 | 13107.33 | 66384 | 13276.8 |
2015 | 14175 | 5 | 42552 | 14184.00 | 72216 | 14443.2 |
2016 | 15463 | 6 | 47069 | 15689.67 | 78650 | 15730.0 |
2017 | 17431 | 7 | 51561 | 17187.00 | 85302 | 17060.4 |
2018 | 18667 | 8 | 55664 | 18554.67 | NA | NA |
2019 | 19566 | 9 | NA | NA | NA | NA |
Prikaz izvornih podataka i pomičnih prosjeka:
> long_df <- tur %>%
+ select(Godina,
+ Izvorni = Dolasci_tis,
+ `PP3` = T3_avg,
+ `PP5` = T5_avg) %>%
+ pivot_longer(-Godina,
+ names_to = "Niz",
+ values_to = "Vrijednost") %>%
+ drop_na(Vrijednost)
>
>
> ggplot(long_df,
+ aes(x = Godina, y = Vrijednost, colour = Niz)) +
+ geom_line(size = 1) +
+ geom_point(size = 2) +
+ scale_colour_manual(values = c(
+ "Izvorni" = "black",
+ "PP3" = "steelblue",
+ "PP5" = "firebrick"
+ )) +
+ scale_y_continuous(labels = scales::comma_format(suffix = " tis.")) +
+ labs(title = "Dolazak turista - izvorni niz i pomični prosjeci",
+ x = "Godina",
+ y = "Broj dolazaka",
+ colour = NULL) +
+ theme_minimal(base_size = 11)
Prikaz dva postupka desezoniranja:
> library(dplyr)
> library(lubridate)
> library(zoo)
> library(knitr)
>
> # originalni mjesečni niz (df_wide$Datum, df_wide$Izvoz)
> serija <- df_wide %>%
+ arrange(Datum) %>%
+ mutate(Izvoz = as.numeric(Izvoz))
>
> # 12-mj. centrirani pomični prosjek:
> serija <- serija %>%
+ mutate(
+ PP12 = rollmean(Izvoz, 12, fill = NA, align = "center"), # centred
+ Ratio = Izvoz / PP12
+ )
>
> # prosječni sezonski indeks za svaki mjesec (skaliran da prosjek bude 1):
> SI <- serija %>%
+ mutate(Mjesec = month(Datum)) %>%
+ group_by(Mjesec) %>%
+ summarise(SI = mean(Ratio, na.rm = TRUE)) %>%
+ mutate(SI = SI / mean(SI, na.rm = TRUE)) # skaliranje
>
> # spajanje natrag i izračun desezoniranog iznosa + sezonskih razlika
> serija <- serija %>%
+ mutate(Mjesec = month(Datum)) %>%
+ left_join(SI, by = "Mjesec") %>%
+ mutate(
+ Desez = Izvoz / SI,
+ Lag12 = lag(Izvoz, 12),
+ SeasDiff = Izvoz - Lag12
+ )
>
> # tablica samo za 2024. godinu
> tab24 <- serija %>%
+ filter(year(Datum) == 2024) %>%
+ transmute(
+ Mjesec = format(Datum, "%b %Y"),
+ `y_t` = round(Izvoz , 0),
+ `y_{t-12}`= round(Lag12 , 0),
+ `y_t - y_{t-12}` = round(SeasDiff , 0),
+ `PP_{12}`= round(PP12 , 1),
+ `y_t / PP_{12}`= round(Ratio , 2),
+ `Sezonski_indeks` = round(SI , 2),
+ `Desezonirani_niz` = round(Desez , 0)
+ )
>
> kable(tab24, align = "r", caption =
+ "Desezoniranje mjesečnog izvoza - prikaz pomoćnih stupaca za 2024.")
Mjesec | y_t | y_{t-12} | y_t - y_{t-12} | PP_{12} | y_t / PP_{12} | Sezonski_indeks | Desezonirani_niz |
---|---|---|---|---|---|---|---|
sij 2024 | 1741 | 1681 | 60 | 1958.9 | 0.89 | 0.86 | 2027 |
vlj 2024 | 1879 | 1777 | 102 | 1951.5 | 0.96 | 0.94 | 1997 |
ožu 2024 | 2005 | 2397 | -392 | 1960.3 | 1.02 | 1.05 | 1910 |
tra 2024 | 2019 | 1807 | 212 | 1974.7 | 1.02 | 0.95 | 2117 |
svi 2024 | 2030 | 1923 | 107 | 1980.7 | 1.02 | 1.01 | 2009 |
lip 2024 | 1891 | 1917 | -26 | 2004.6 | 0.94 | 1.00 | 1885 |
srp 2024 | 2388 | 1839 | 549 | 2021.6 | 1.18 | 1.08 | 2205 |
kol 2024 | 1577 | 1666 | -89 | 2033.8 | 0.78 | 0.88 | 1788 |
ruj 2024 | 1994 | 1888 | 106 | NA | NA | 1.06 | 1882 |
lis 2024 | 2261 | 2089 | 172 | NA | NA | 1.09 | 2071 |
stu 2024 | 2182 | 2110 | 72 | NA | NA | 1.09 | 1999 |
pro 2024 | 2088 | 1801 | 287 | NA | NA | 0.98 | 2141 |
Grafički prikaz izvornih i desezoniranih podataka:
> library(dplyr)
> library(tidyr)
> library(ggplot2)
> library(lubridate)
> library(scales)
>
>
> tab24 <- tab24 |>
+ mutate(
+ # pretvaramo "sij 2024", "vlj 2024" … u Date (1. dan u mjesecu)
+ Datum = dmy(paste0("01 ", Mjesec)),
+ # za ljepši prikaz x-osi
+ MjesecLab = month(Datum, label = TRUE, abbr = TRUE)
+ )
>
> line_df <- tab24 %>%
+ select(
+ Datum,
+ Izvorni_podaci = y_t,
+ Desezonirani_niz = Desezonirani_niz
+ ) %>%
+ pivot_longer(-Datum, names_to = "Serija", values_to = "Vrijednost") %>%
+ drop_na(Vrijednost)
>
>
> ggplot(line_df, aes(Datum, Vrijednost, colour = Serija)) +
+ geom_line(size = 1) +
+ geom_point(size = 2) +
+ scale_colour_manual(values = c(
+ "Izvorni_podaci" = "black",
+ "Desezonirani_niz" = "steelblue"
+ ),
+ labels = c("Desezonirani niz",
+ "Izvorni podaci"
+ )) +
+ scale_x_date(date_breaks = "1 month",
+ date_labels = "%b",
+ expand = c(.01, .01)) +
+ scale_y_continuous(labels = comma) +
+ labs(title = "Izvoz - izvorni i deseazonirani niz (2024.)",
+ x = NULL, y = "mil. EUR", colour = NULL) +
+ theme_minimal(base_size = 11)
Za kreiranje grafova s dolascima turista prikazanim u poglavlju Ishodište vremenskog niza u MS Excelu prvo moramo pripremiti podatke, a potom umetnuti graf. Priprema podataka podrazumijeva izdvajanje podataka za svaki graf, a potom prekodiranje vremena.
Ovdje je prikazan postupak za kreiranje dva grafa. Ostale grafove možete kreirati samostalno slijedeći isti postupak.
Slijedi postupak primjene metode najmanjih kvadrata pri izračunu trenda. Iako, mogli ste uočiti da jednadžbu trenda možete dobiti i pri kreiranju grafa.
Rezultati:
alternativni pristup je
Alternativni pristup za prognoziranje pomoću vremenskog niza je
korištenje ugrađene funkcije TREND()
što daje rezultat:
Dodatni primjeri/mogućnosti:
Metoda pomičnih prosjeka:
što daje rezultat:
Postupak desezoniranja i rezultati:
Državni zavod za statistiku. (2019). Statistički ljetopis 2018 PDF
Državni zavod za statistiku. (2023a). Godišnji bruto domaći proizvod za razdoblje 1995. - 2022., revidirani podaci Excel datoteka
Državni zavod za statistiku. (2023b). Kultura: Broj posjeta kinima po godinama Excel datoteka
Državni zavod za statistiku. (2024a). Dolasci i noćenja turista Excel datoteka
Državni zavod za statistiku. (2024b). Prosječne maloprodajne cijene dobara i usluga u kunama i u eurima Excel datoteka
Državni zavod za statistiku. (2024c). Poljoprivreda, šumarstvo i ribarstvo: Kravlje mlijeko i mliječni proizvodi Excel datoteka
Državni zavod za statistiku. (2025). Robna razmjena s inozemstvom Excel datoteka
Excel, M. S. (2007). Microsoft Excel. Denver Co., USA.
Grolemund, G., & Wickham, H. (2011). lubridate: Make Dealing with Dates Easier
Hadley, W. (2020). glue: Interpreted String Literals
Holmes, A., Illowsky, B., & Dean, S. (2017). Introductory Business Statistics 2e. OpenStax.https://openstax.org/books/introductory-business-statistics/pages/preface
Hornik, K. (2012). The comprehensive R archive network. Wiley interdisciplinary reviews: Computational statistics, 4(4), 394-398.
Horvat, J., & Mijoč, J. (2018). Osnove statistike, treće dopunjeno izdanje. Zagreb: Ljevak.
Hyndman, R. J., & Athanasopoulos, G. (2018). mFilter: Miscellaneous Time Series Filters
Hyndman, R. J., & Khandakar, Y. (2008). forecast: Forecasting Functions for Time Series and Linear Models
Illowsky, B., & Dean, S. (2018). Introductory statistics. https://openstax.org/books/introductory-statistics-2e/pages/preface
JASP Team (2024). JASP (Version 0.19.3)[Computer software].
Kostelić, K. & Etinger, D. (2024). Uvod u R i RStudio. Sveučilište Jurja Dobrile u Puli. https://bookdown.org/kakoste/Uvod_u_R_i_RStudio/
Moore, D. S., McCabe, G. P., and Craig, B. A. (2012). Introduction to the Practice of Statistics (7th ed.). New York: Freeman
Müller, K., & Wickham, H. (2020). scales: Scale Functions for Visualization
NASA Goddard Institute for Space Studies. GISS Surface Temperature Analysis (GISTEMP), global mean surface temperature data
Pedersen, T. L. (2020). patchwork: The Composer of Plots
Robinson, D., & Hayes, A. (2021). broom: Convert Statistical Objects into Tidy Tibbles
Smyth, G. (2021). knitr: A General-Purpose Package for Dynamic Report Generation in R
Šošic, I. (2004). Primijenjena statistika. Skolska knjiga, Zagreb.
Wickham, H., & Wickham, M. H. (2017). Package ‘tidyr’. Easily Tidy Data with’spread’and’gather ()’Functions.
Wickham, H., & Wickham, M. H. (2019). Package ‘stringr’. Website: http://stringr. tidyverse. org, https://github. com/tidyverse/stringr.
Wickham, H., & Wickham, M. H. (2023). Package ‘httr’.
Wickham, H., Bryan, J., Kalicinski, M., Valery, K., Leitienne, C., Colbert, B., … & Bryan, M. J. (2019). Package ‘readxl’. Version, 13, 1.
Wickham, H., Chang, W., & Wickham, M. H. (2016). Package ‘ggplot2’. Create elegant data visualisations using the grammar of graphics. Version, 2(1), 1-189.
Wickham, H., Francois, R., Henry, L., & Müller, K. (2014). dplyr. A Grammar of Data Manipulation 2020 [Last accessed on 2020 Aug 12] Available from, Rproject.
Yarberry, W., & Yarberry, W. (2021). Dplyr. CRAN recipes: DPLYR, stringr, lubridate, and regex in R, 1-58.
Zeileis, A., & Grothendieck, G. (2005). zoo: S3 Infrastructure for Regular and Irregular Time Series