Operacijos su laiko eilutėmis
Šiame puslapyje
- Kaip pridėti operaciją
- Praeities reikšmių keitimas ir ateities reikšmių pridėjimas
- Dažnio keitimas
- Svertinis vidurkis
- Vėlinimas ir ankstinimas
- Tos pačios eilutės skirtingų laikotarpių palyginimas
- Agregavimas
- Pokyčiai
- Konvertavimas į indeksus
- Trendo išskyrimas
- Ciklo komponento išskyrimas
- Sezono įtakos pašalinimas
- Glodinimas
- Aritmetiniai veiksmai
- Kiti pertvarkymai
- Dažniausios klaidos
Šiame skyriuje aprašytos visos MacroLens operacijos su laiko eilutėmis (Techninės specifikacijos 2.11 p.) ir pateikta pavyzdžių. Kiekvieną operaciją galima atlikti trimis būdais:
- analizės lange pasirinkus eilutę ir operaciją iš meniu (parametrai įvedami formoje);
- formulių kalba – kiekviena operacija turi funkcijos pavadinimą (pvz.,
yoy(s)); - per Excel priedą, įkeliant duomenis su pertvarkymu.
Visų operacijų rezultatus galima išsaugoti, vaizduoti diagramose ir lentelėse bei naudoti ataskaitose ir pateiktyse. Tikslūs parametrų sąrašai ir numatytosios reikšmės pateikti funkcijų žinyne.
Kaip pridėti operaciją
- Analizėje pasirinkite eilutę ir spauskite Pridėti operaciją.
- Pasirinkite operaciją iš grupių sąrašo arba suraskite ją pagal pavadinimą.
- Patikrinkite ar pakeiskite parametrus (numatytosios reikšmės tinka daugeliu atvejų) ir patvirtinkite.
Operacija pridedama eilutės operacijų sekos pabaigoje; eilutės aprašyme nurodoma, kokie žingsniai atlikti (pvz., „dažnis → Q (vidurkis); metinis pokytis, %“). Bet kurį žingsnį galite pakeisti ar pašalinti. Operacijos atliekamos iš eilės, todėl jų tvarka svarbi.
Laikotarpiai visur žymimi taip: metai 2024, pusmetis 2024-S2, ketvirtis 2024-Q3, mėnuo 2024-07, savaitė 2024-W27, diena 2024-07-15. Dažniai: A – metinis, S – pusmetinis, Q – ketvirtinis, M – mėnesinis, W – savaitinis, D – dieninis.
Praeities reikšmių keitimas ir ateities reikšmių pridėjimas
TS 2.11.1. Pasirinkę eilutės veiksmą Keisti reikšmes, pakeiskite bet kurią reikšmę arba įrašykite reikšmes laikotarpiams po paskutinio stebinio (pvz., savo prognozę 2026–2027 m.). Ištrinta reikšmė tampa trūkstama. Pakeitimai galioja tik analizėje, duomenų bazė nesikeičia, o operacijų seka taikoma jau pakeistiems duomenims. Daugiau – Analizės.
Dažnio keitimas
TS 2.11.2. Funkcija convert(s, dažnis, metodas).
Dažnio mažinimas (pvz., mėnesinis → ketvirtinis → metinis):
| Metodas | Rezultatas | Tinka |
|---|---|---|
average |
laikotarpio vidurkis | lygiams ir santykiniams rodikliams: nedarbo lygiui, kainų indeksams, palūkanų normoms |
sum |
laikotarpio suma | srautams: eksportui, BVP (mln. EUR), biudžeto pajamoms |
last |
paskutinė laikotarpio reikšmė | laikotarpio pabaigos būklės rodikliams: skolai, gyventojų skaičiui metų pabaigoje |
first |
pirmoji laikotarpio reikšmė | laikotarpio pradžios būklės rodikliams |
max, min |
didžiausia ar mažiausia reikšmė | pvz., didžiausiam mėnesio kursui per metus |
Dažnio didinimas (pvz., metinis → ketvirtinis):
| Metodas | Rezultatas |
|---|---|
linear |
tiesinė interpoliacija; metų reikšmė priskiriama paskutiniam naujo dažnio laikotarpiui (IV ketvirčiui) |
cubic |
glodi (kubinė) interpoliacija |
constant |
ta pati reikšmė kartojama kiekviename laikotarpyje |
distribute |
metų suma padalijama po lygiai (pvz., metinis srautas į ketvirtinius) |
auto (numatytasis) – būdas parenkamas pagal rodiklio pobūdį (matavimo vienetą, pavadinimą ir duomenų rinkinį): srauto rodikliai (pvz., BVP, eksportas) mažinant dažnį sumuojami, didinant – paskirstomi po lygiai; laikotarpio pabaigos būklės rodikliams (pvz., skolai, indėliams) imama paskutinė reikšmė (laikotarpio pradžios būklės rodikliams, pvz., gyventojų skaičiui mėnesio pradžioje, – pirmoji), didinant dažnį jie interpoliuojami tiesiškai; normos, indeksai, kainos, valiutų kursai ir neaiškūs atvejai mažinant dažnį vidurkinami, didinant – interpoliuojami tiesiškai. Taikytas būdas nurodomas laiko eilutės istorijoje (pvz., „suma; automatiškai: srauto rodiklis“); aiškiai pasirinktas būdas niekada nekeičiamas. Nepilni laikotarpiai (pvz., ketvirtis, kurio turimi tik du mėnesiai) atmetami, nebent pasirenkate partial (tuomet skaičiuojama iš turimų reikšmių).
Pavyzdžiai:
- Mėnesinis nedarbo lygis: 2025-01 – 6,8; 2025-02 – 7,0; 2025-03 – 7,2.
convert(s, "Q", "average")→ 2025-Q1 = 7,0. - Mėnesinis eksportas: 100; 110; 120 mln. EUR.
convert(s, "Q", "sum")→ 2025-Q1 = 330. - Metinė vertė 2024 m. – 400.
convert(s, "Q", "distribute")→ kiekvienas 2024 m. ketvirtis = 100. - Metinės reikšmės: 2023 m. – 100, 2024 m. – 104.
convert(s, "Q", "linear")→ 2024-Q1 = 101, Q2 = 102, Q3 = 103, Q4 = 104.
convert(s1, "A", "sum")
convert(s1, "Q", "last")
Svertinis vidurkis
TS 2.11.3. Funkcija wavg(s1, s2, …, weights=[w1, w2, …]) sudaro kelių eilučių svertinio vidurkio eilutę. Eilutės turi būti vienodo dažnio (jei ne – pirmiau pakeiskite dažnį). Kai normalize įjungta (numatytasis), svoriai padalijami iš jų sumos, todėl svoriai [3, 1] reiškia 75 % ir 25 %. Svoriai yra pastovūs skaičiai. Jei kurios nors eilutės reikšmės tam laikotarpiui nėra, rezultato reikšmės tam laikotarpiui taip pat nėra (kitų eilučių svoriai neperskaičiuojami). Laikui bėgant kintančius svorius (pvz., BVP dalis) pritaikysite formule: (lt*bvp_lt + lv*bvp_lv) / (bvp_lt + bvp_lv).
Pavyzdys: s1 = 2,0, s2 = 5,0, svoriai 0,6 ir 0,4 → 0,6 × 2,0 + 0,4 × 5,0 = 3,2. Su svoriais [3, 1]: (3 × 2,0 + 1 × 5,0) / 4 = 2,75.
wavg(lv, ee, pl, weights=[0.5, 0.3, 0.2])
Taip galima apskaičiuoti, pavyzdžiui, pagrindinių prekybos partnerių BVP augimą, pasvertą eksporto dalimis.
Vėlinimas ir ankstinimas
TS 2.11.4. lag(s, n) – vėlinimo operatorius: reikšmė laikotarpiu t lygi pradinei reikšmei laikotarpiu t − n. lead(s, n) – ankstinimo operatorius: reikšmė laikotarpiu t lygi pradinei reikšmei laikotarpiu t + n. n matuojamas eilutės laikotarpiais (ketvirtinei eilutei lag(s, 4) – vieneri metai).
| Laikotarpis | s | lag(s, 1) | lead(s, 1) |
|---|---|---|---|
| 2024-Q1 | 100 | – | 102 |
| 2024-Q2 | 102 | 100 | 105 |
| 2024-Q3 | 105 | 102 | – |
Vėlinimai dažnai naudojami formulėse:
s - lag(s, 4)– metinis absoliutus pokytis ketvirtiniams duomenims;lead(pmi, 3)– rodiklio reikšmė po 3 mėnesių (patogu tikrinant, ar rodiklis pirmauja).
Tos pačios eilutės skirtingų laikotarpių palyginimas
TS 2.11.5. Yra keli būdai:
shiftyears(s, 1)– perkelia eilutę vieneriais metais pirmyn laiko ašyje. Diagramoje pridėjus ir pradinę, ir perkeltą eilutę, matysite, kaip šių metų mėnesiai atrodo praėjusių metų fone.window(s, "2008-Q1", "2012-Q4")– apriboja eilutę pasirinktu laikotarpiu. Kelios tos pačios eilutės kopijos su skirtingais laikotarpiais leidžia palyginti, pvz., dvi krizes.- Palyginti laikotarpių formą patogu juos perskaičiavus į indeksus nuo laikotarpio pradžios:
rebase(window(bvp, "2008-Q1", "2012-Q4"), "2008-Q1")
rebase(window(bvp, "2020-Q1", "2024-Q4"), "2020-Q1")
- Statistinė analizė Laikotarpių palyginimas pateikia pasirinktų laikotarpių vidurkius, standartinius nuokrypius ir vidutinį augimą greta – žr. Statistinė analizė.
Agregavimas
TS 2.11.6.
| Funkcija | Aprašymas | Pavyzdys |
|---|---|---|
rolling(s, langas, funkcija) |
slankioji suma, vidurkis, minimumas, maksimumas, mediana arba standartinis nuokrypis per paskutinius langas laikotarpių | rolling(s, 12, "sum") – 12 mėnesių suma |
cumulative(s, funkcija, "year") |
kaupiamoji suma (ar kt.) nuo eilutės pradžios arba nuo kiekvienų metų pradžios | cumulative(s, "sum", "year") |
ytd(s, "sum") |
suma ar vidurkis nuo metų pradžios | ytd(biudzetas, "sum") |
sum(s1, s2, …), mean(…), min(…), max(…) |
kelių eilučių suma, vidurkis, minimumas ar maksimumas kiekvienu laikotarpiu | sum(eksp_prek, eksp_pasl) |
Pavyzdys: mėnesio biudžeto pajamos sausį–kovą – 10, 12, 11. cumulative(s, "sum", "year") → 10, 22, 33; kitų metų sausį kaupimas prasideda iš naujo.
Kelių eilučių funkcijose, trūkstant bet kurios eilutės reikšmės, pagal numatytuosius nustatymus trūksta ir rezultato reikšmės; parinktis skipna leidžia skaičiuoti iš turimų reikšmių. Laikotarpio sumą ar vidurkį (pvz., ketvirčio sumą iš mėnesių) gausite dažnio keitimu.
Pokyčiai
TS 2.11.7.
| Funkcija | Skaičiuoja |
|---|---|
mom(s) |
mėnesinį pokytį, % (tik mėnesiniams duomenims) |
qoq(s) |
ketvirtinį pokytį, % (ketvirtiniams duomenims; mėnesiniams – pokytį per 3 mėnesius); annualize=true – perskaičiuotą metiniu tempu |
yoy(s) |
metinį pokytį, % – palyginti su tuo pačiu praėjusių metų laikotarpiu (bet kokio dažnio duomenims) |
diff(s, n) |
absoliutų pokytį per n laikotarpių |
logdiff(s, n) |
logaritminį pokytį: 100 × (ln s(t) − ln s(t − n)) |
changeref(s, "2019-Q4", "pct") |
pokytį pasirinkto atskaitos taško atžvilgiu (%, absoliutų, santykį ar logaritminį) |
change(s, rūšis, horizontas, n, annualize) |
bendrą pokyčio funkciją: rūšis abs, pct, log, log_pct, ratio; horizontas period, month, quarter, year arba custom (n laikotarpių) |
Pavyzdys (ketvirtinis indeksas):
| Laikotarpis | Reikšmė |
|---|---|
| 2019-Q4 | 95,0 |
| 2023-Q1 | 98,0 |
| 2023-Q4 | 100,0 |
| 2024-Q1 | 101,5 |
2024-Q1 rezultatai:
- ketvirtinis pokytis
qoq(s): (101,5 / 100,0 − 1) × 100 = 1,50 %; - ketvirtinis pokytis metiniu tempu
qoq(s, annualize=true): ((101,5 / 100,0)⁴ − 1) × 100 = 6,14 %; - metinis pokytis
yoy(s): (101,5 / 98,0 − 1) × 100 = 3,57 %; - absoliutus pokytis
diff(s, 1): 101,5 − 100,0 = 1,5; - logaritminis pokytis
logdiff(s, 1): 100 × ln(101,5 / 100,0) = 1,49; - pokytis atskaitos taško 2019-Q4 atžvilgiu
changeref(s, "2019-Q4", "pct"): (101,5 / 95,0 − 1) × 100 = 6,84 %.
mom(s) taikant ne mėnesinei eilutei rodoma klaida – tokiu atveju naudokite qoq, yoy arba change.
Konvertavimas į indeksus
TS 2.11.8. rebase(s, bazės_pradžia, bazės_pabaiga, reikšmė) apskaičiuoja indeksą: reikšmė × s(t) / (eilutės vidurkis baziniu laikotarpiu). Numatytoji bazinė reikšmė – 100. Jei bazinio laikotarpio pabaiga nenurodyta, bazė – vienas laikotarpis.
Pavyzdys: ketvirtinės reikšmės 2015 m. – 78, 79, 81, 82 (vidurkis 80). Kai 2024-Q1 reikšmė yra 100, rebase(s, "2015-Q1", "2015-Q4") duoda 100 × 100 / 80 = 125,0.
rebase(s, "2015")– metiniams duomenims: 2015 = 100;rebase(s, "2015-Q1", "2015-Q4")– ketvirtiniams duomenims: 2015 m. vidurkis = 100;rebase(s, "2021-12", "", 1)– mėnesiniams duomenims: 2021 m. gruodis = 1.
Trendo išskyrimas
TS 2.11.9. trend(s, metodas):
| Metodas | Trendas |
|---|---|
linear |
tiesinis trendas (mažiausių kvadratų metodu) |
quadratic |
kvadratinis trendas |
loglinear |
eksponentinis (pastovaus augimo tempo) trendas |
hp |
Hodriko ir Preskoto filtro trendas (numatytasis) |
moving_average |
centruotas slankusis vidurkis (window laikotarpių) |
Hodriko ir Preskoto parametras λ, jei nenurodytas, parenkamas pagal dažnį: metiniams duomenims – 100, ketvirtiniams – 1600, mėnesiniams – 129 600. Didesnis λ – glodesnis trendas.
Hodriko ir Preskoto trendas paskutiniuose eilutės taškuose yra mažiau patikimas („galų problema“) ir gali keistis atsiradus naujiems duomenims.
Ciklo komponento išskyrimas
TS 2.11.10. cycle(s, metodas) grąžina ciklo komponentą – eilutės nuokrypį nuo trendo:
| Metodas | Aprašymas |
|---|---|
hp |
Hodriko ir Preskoto filtras (numatytasis) |
bk |
Baxterio ir Kingo juostinis filtras: išskiria svyravimus, kurių trukmė nuo low iki high metų (numatytoji 1,5–8 m.); eilutės pradžioje ir pabaigoje prarandama po k stebinių |
cf |
Christiano ir Fitzgeraldo juostinis filtras (tie patys low/high), apima visą laikotarpį |
hamilton |
Hamiltono (2018) regresinis filtras – alternatyva HP filtrui be galų problemos |
linear |
nuokrypis nuo tiesinio trendo |
output="pct" – nuokrypis procentais nuo trendo (logaritmais); output="abs" (numatytasis) – absoliutus nuokrypis.
Pavyzdys – BVP atotrūkis: realaus (palyginamosiomis kainomis), sezoniškai koreguoto BVP nuokrypis nuo potencialo, %:
cycle(bvp_real, "hp", output="pct")
Ciklo analizei naudokite sezoniškai koreguotas realias eilutes.
Sezono įtakos pašalinimas
TS 2.11.11. sa(s, metodas):
x13(numatytasis) – X-13ARIMA-SEATS – JAV surašymų biuro programa, kurią naudoja daugelis statistikos institucijų. MacroLens leidžia programai automatiškai parinkti regARIMA modelį ir nustatyti išskirtis ir taiko jos X-11 išskaidymą (be koregavimo dėl darbo dienų skaičiaus); SEATS išskaidymas ir X-13 diagnostinės lentelės (parinktas ARIMA modelis, išskirtys, M ir Q statistikos) nepateikiami;stl– sezoninis ir trendo išskaidymas LOESS metodu (STL);classical– klasikinis išskaidymas slankiaisiais vidurkiais.
Jei X-13ARIMA-SEATS skaičiavimas konkrečiai eilutei neįmanomas (pvz., eilutė per trumpa), naudojamas STL metodas ir tai aiškiai nurodoma eilutės žingsnių aprašyme.
mode – multiplicative (sezoniniai svyravimai proporcingi lygiui; tik teigiamoms reikšmėms), additive arba auto (parenkama automatiškai). output – sa (sezoniškai koreguota eilutė, numatytoji), seasonal (sezoninis komponentas), trend (trendo ir ciklo komponentas) arba irregular (atsitiktinis komponentas).
Taikoma mėnesiniams ir ketvirtiniams duomenims. X-13ARIMA-SEATS reikia bent trejų pilnų metų duomenų; visais atvejais reikia bent dvejų pilnų metų duomenų be spragų.
sa(s1)
sa(s1, "stl", output="seasonal")
Jei šaltinis skelbia oficialią sezoniškai koreguotą eilutę (metaduomenyse – SA ar SCA), paprastai geriau naudoti ją. Atsiradus naujiems duomenims sezoniniai veiksniai perskaičiuojami, todėl ankstesnės koreguotos reikšmės gali šiek tiek pasikeisti.
Glodinimas
TS 2.11.12. smooth(s, metodas, …):
| Metodas | Aprašymas | Parametrai |
|---|---|---|
ma |
slankusis vidurkis iš paskutinių window laikotarpių | window (numatytasis 3) |
centered_ma |
centruotas slankusis vidurkis | window |
ewma |
eksponentinis glodinimas | alpha (0–1; didesnis – mažiau glodina) |
loess |
lokalioji regresija (LOESS) | frac – naudojamų stebinių dalis (0–1) |
hp |
Hodriko ir Preskoto filtras | lam |
henderson |
Hendersono slankusis vidurkis (naudojamas sezoninio koregavimo programose) | window (nelyginis, pvz., 13 mėnesiniams) |
Hodriko ir Preskoto filtras atskirai: hp(s, λ, "trend") arba hp(s, λ, "cycle"). Dažniausios λ reikšmės: metiniams duomenims 100 (arba 6,25), ketvirtiniams – 1600, mėnesiniams – 129 600 (arba 14 400).
Pavyzdys: reikšmės 4, 6, 8, 10. smooth(s, "ma", 3) → trečiasis laikotarpis (4 + 6 + 8) / 3 = 6, ketvirtasis (6 + 8 + 10) / 3 = 8. Centruotas vidurkis smooth(s, "centered_ma", 3) antrajam laikotarpiui = 6, trečiajam = 8.
Aritmetiniai veiksmai
TS 2.11.13. Su viena eilute ir skaičiumi:
| Funkcija | Veiksmas | Formulėje |
|---|---|---|
add(s, 5), subtract(s, 5) |
pridėti, atimti | s + 5, s - 5 |
multiply(s, 2), divide(s, 2) |
padauginti, padalyti | s * 2, s / 2 |
power(s, 2) |
kelti laipsniu | s ** 2 |
log(s), log10(s), exp(s) |
natūrinis, dešimtainis logaritmas, eksponentė | |
abs(s), sqrt(s), negate(s), reciprocal(s) |
modulis, kvadratinė šaknis, priešingas ženklas, 1/s | -s, 1 / s |
round(s, 1) |
apvalinti iki nurodyto skaitmenų po kablelio skaičiaus | |
scale(s, 0.001, "mlrd. EUR") |
padauginti iš daugiklio ir pakeisti matavimo vienetą |
Veiksmai tarp kelių eilučių atliekami formulėmis, pvz., eksportas - importas arba skola / bvp * 100. Veiksmai atliekami su to paties laikotarpio reikšmėmis.
Kiti pertvarkymai
fill(s, metodas)– užpildo trūkstamas reikšmes:linear(tiesine interpoliacija),ffill(ankstesne reikšme),bfill(kita reikšme),zero(nuliu);limit– kiek daugiausia iš eilės trūkstamų reikšmių užpildyti.annualize(s, būdas)– išreiškia laikotarpio reikšmes metiniu tempu:sum(numatytasis) – padaugina iš laikotarpių skaičiaus per metus (pvz., ketvirčio srautas × 4),compound– procentinį augimo tempą perskaičiuoja metams sudėtiniu principu, pvz.,annualize(qoq(s), "compound").
Dažniausios klaidos
| Pranešimas | Ką daryti |
|---|---|
| Eilutės yra skirtingo dažnio | Pakeiskite vienos eilutės dažnį (convert) arba nustatykite analizės bendrą dažnį |
| Operacija netinka šio dažnio duomenims | Pvz., mom – tik mėnesiniams duomenims, sezoninis koregavimas – mėnesiniams ir ketvirtiniams |
| Per mažai stebinių | Pailginkite laikotarpį arba pasirinkite kitą metodą |
| Neteisinga laikotarpio reikšmė | Naudokite formatą 2024, 2024-Q3, 2024-07 ir pan. |