08 Time Series
🆕 Նոր գլուխ։ Երկու դասախոսության սլայդերը պատրաստ են (ներքևում)։ Տեսանյութերը դեռ ձայնագրված չեն — TBD։ Դասերն անցնելուց հետո կավելացվեն YouTube-ի հղումները և նշումներով (_notes) PDF-երը։
🎲 Random
Շաբաթվա պատահական հղումը՝ TBD։ (Գլխի պատահական նկարը՝ ../00_random_image/08_*.jpg — TBD։)
Ժամանակային շարքեր — այն դեպքը, երբ տողերի հերթականությունը հենց ինքը ինֆորմացիա է 📈
📚 Նյութը
Երկու դասախոսություն․ առաջինը՝ դասական վիճակագրական մեթոդներ, երկրորդը՝ նույն խնդիրը որպես մեքենայական ուսուցում։ Սլայդերը ml/08_time_series/ պանակում։
- [30] Ժամանակային շարքեր — դասական մեթոդներ — ի՞նչն է ժամանակային շարքը տարբերում մնացած խնդիրներից, տրենդ / սեզոնայնություն / աղմուկ, STL դեկոմպոզիցիա, ստացիոնարություն և դիֆերենցում (ADF և KPSS), ACF/PACF՝ նաև հենց մեր շարքի վրա, AR/MA/ARMA/ARIMA/SARIMA (և ինչու MA-ն նույնը չէ, ինչ rolling mean-ը), էքսպոնենցիալ հարթեցում (Holt-Winters), baseline-ներ և գնահատում՝ MASE-ը ձեռքով հաշված։ 🎞️ Սլայդեր · 📝 Նշումներով
TBD· 📺 ՏեսանյութTBD - [31] Ժամանակային շարքեր — մեքենայական ուսուցման մոտեցում — կանխատեսումը որպես supervised learning, leakage և ժամանակ-գիտակ բաժանում, lag / rolling / օրացուցային ֆիչերներ,
TimeSeriesSplit(gap,max_train_size), gradient boosting և տրենդի էքստրապոլյացիայի թակարդը, ազնիվ համեմատություն նույն հորիզոնի վրա, prediction interval-ներ ML-ի համար (conformal), M4/M5 և հիբրիդները, deep learning ու foundation մոդելներ։ 🎞️ Սլայդեր · 📝 ՆշումներովTBD· 📺 ՏեսանյութTBD
📝 Թեմայի վերաբերյալ հարցաշար (Google Form): TBD
Սլայդերը հիմնված են Hyndman & Athanasopoulos, Forecasting: Principles and Practice (3rd ed.) բաց դասագրքի վրա, ինչպես նաև scikit-learn / statsmodels / Nixtla-ի փաստաթղթերի։ Foundation-մոդելների մասը՝ 2025–2026 թթ. աղբյուրներից (TimesFM, Chronos-2, Moirai-2, TimeGPT, Time-MoE)։
🏡 Տնային
Assignment — Build a leakage-safe forecaster 🧀🧀
Take a real seasonal series (suggested: a daily or monthly one you can download once — e.g. energy demand, retail sales, or a currency series). Forecast it end to end and respect the arrow of time at every step.
- EDA + decomposition. Plot the series. Run an STL decomposition and describe the trend and seasonality. Is it additive or multiplicative?
- Stationarity. Run the ADF test on the raw series and after 1st (and, if needed, seasonal) differencing. Report the p-values.
- Baselines first. Implement naive and seasonal-naive forecasts on a time-ordered holdout. These are the numbers everything else must beat.
- Classical model. Fit a SARIMA (or Holt-Winters) — use
auto_arima/AutoARIMAif you like. Report a forecast with a prediction interval. - ML model. Reframe the series as a supervised table: build lag, (shifted) rolling, and calendar features. Train a gradient-boosting regressor. Remember the extrapolation trap: if the series trends, predict the difference, not the level.
- Honest validation. Use
TimeSeriesSplitfor any tuning. Nevershuffle=True. Fit every scaler/encoder on the training part only. - Compare with MASE. Put all models on one table (MAE + MASE vs seasonal naive). Which wins on your series, and why? Tie the answer back to the “when ML vs classical wins” slide.
Additional
- Try a foundation model (e.g. TimesFM or Chronos via its Python package) zero-shot, and compare it to your tuned baseline.
- Produce a multi-step forecast (horizon > 1) both recursively and directly; discuss the error growth.
Գլխի նախագիծ — Հայաստանի էլեկտրաէներգիայի արտադրության կանխատեսում 🧀🧀
Վերևի առաջադրանքի ամբողջական worked walkthrough-ը՝ իրական տվյալների վրա։ Դուք ձեր շարքն եք ընտրում, իսկ այս notebook-ը ցույց է տալիս նույն յոթ քայլը սկզբից մինչև վերջ մեկ կոնկրետ շարքի վրա — ուստի սա օրինակ է, ոչ թե պատասխան։
Տվյալները․ ՀՀ վիճակագրական կոմիտեի ամսական շարքը (ArmStatBank, IC-ind-m-01.px, «35. Էլեկտրականություն, գազ, գոլորշի»), 2010-01 – 2026-06, 198 ամիս։ Ներբեռնվում է py_src/fetch_armstat_electricity.py-ով, այնպես որ ամեն բան վերարտադրելի է։
Հարցը․ ունենալով տվյալները մինչև 2024-ի դեկտեմբեր, կանխատեսել 2025-ի ամեն ամիսը (հորիզոնը՝ 12 ամիս)։
Երեք բան, որ արժե նշել․
- Մոդելավորումից առաջ՝ աուդիտ։ 2011–2013-ին տարեկան աճը +43.8%, +28.7%, +18.3% է, հետո՝ միանիշ։ Էլեկտրաէներգիայի արտադրությունը մեկ տարում 44%-ով չի աճում — շարքը անվանական դրամով է, ուստի սա սակագնի կամ հաշվառման փոփոխություն է, ոչ թե պահանջարկ։ Կտրում ենք մինչև 2014-ը։ Ավելի շատ տվյալը ավելի լավ տվյալ չէ։
- Baseline-ը հենց ինքը արդյունք է։ Seasonal naive-ը զրո պարամետրով տալիս է MASE 1.16։ Ամեն հաջորդ մոդել պետք է դա հաղթի։
- Դիագնոստիկան վարկած է, ոչ թե դատավճիռ։ Notebook-ը երկու անգամ անում է նույն բանը՝ դիագնոստիկա, հետո ստուգում held-out տարվա վրա — և արդյունքները հակառակ են․ Part 2b-ի ստուգումը ճիշտ է կանխագուշակում multiplicative սեզոնայնությունը (հաստատվում է), իսկ Part 3-ի ADF/KPSS-ը խորհուրդ է տալիս
d=0, և հենց այդ մոդելը վերջին տեղն է զբաղեցնում։ Եզրակացությունը «դիագնոստիկան անօգուտ է» չէ, այլ՝ ստուգելը արժե երկու տող կոդ, չստուգելը՝ notebook-ի ամենավատ մոդելը։
Հաղթում է ամենապարզ մոդելը՝ Holt-Winters (multiplicative), MASE 0.578 ընդդեմ baseline-ի 1.159-ի։ Այն ինքն է իր beta-ն և gamma-ն դնում 0.000 — այսինքն մնում է «դանդաղ շարժվող մակարդակ × ֆիքսված սեզոնային պրոֆիլ», մեկ ակտիվ պարամետրով։
Notebook-ը կատարվում է ամբողջությամբ ~45 վայրկյանում, CPU-ի վրա (104 cell, 13 գրաֆիկ, 0 սխալ)։
Լուծումը (ամբողջական walkthrough): 32_electricity_forecast_solution.ipynb (download) · view on GitHub
🎥 Practical walkthrough: TBD