# 2. Методичні вказівки Цей розділ **самодостатній**: у ньому зібрано теорію часових рядів — компоненти, згладжування, прогнозування та метрики похибки, — потрібну для аудиторних задач ([3classroom.md](3classroom.md)) і домашньої програми ([4task.md](4task.md)). Ширше цю саму теорію викладено в [Лекції 14](../../Lectures/DA-L14.md). ## 2.1 Часовий ряд та його компоненти **Часовий ряд** (англ. *time series*) — послідовність значень $x_1, x_2, \dots, x_n$ однієї величини, виміряних у послідовні **рівновіддалені** моменти часу $t = 1, 2, \dots, n$. Дві його риси: **впорядкованість** (порядок значень змістовний, переставляти не можна) і **залежність** сусідніх спостережень (знаючи $x_{t-1}$, ми вже дещо знаємо про $x_t$). Ряд уявляють як накладання **компонент**: **тренду** $T_t$ (довгострокова тенденція), **сезонності** $S_t$ (коливання зі сталим періодом $L$), **циклічності** $C_t$ (коливання без фіксованого періоду) та **шуму** $e_t$ (випадкова частина). Їх поєднують **адитивно** ($x_t = T_t + S_t + e_t$, коли розмах коливань сталий) або **мультиплікативно** ($x_t = T_t \cdot S_t \cdot e_t$, коли розмах зростає разом із рівнем ряду). ## 2.2 Просте ковзне середнє **Просте ковзне середнє** (англ. *simple moving average, SMA*) з **вікном** $w$ — середнє $w$ останніх спостережень: $$ \mathrm{MA}_t^{(w)} = \frac{1}{w}\sum_{j=0}^{w-1} x_{t-j} = \frac{x_t + x_{t-1} + \dots + x_{t-w+1}}{w}, \qquad t \ge w. $$ Перші $w - 1$ значень не визначені (вікно ще не заповнене). Більше вікно $w$ — сильніше згладжування, але й більше **запізнення** за реальними змінами. Наведена форма спирається лише на минуле (кінцеве, *trailing*) — саме вона годиться для прогнозу. Для виділення тренду в розкладі ряду беруть **центроване** ковзне середнє (симетричне вікно навколо точки $t$). ## 2.3 Зважене ковзне середнє **Зважене ковзне середнє** (англ. *weighted moving average, WMA*) надає свіжішим точкам більшу вагу: $$ \mathrm{WMA}_t = \frac{\sum_{j=0}^{w-1} w_j\, x_{t-j}}{\sum_{j=0}^{w-1} w_j}, $$ де ваги $w_j$ спадають від найсвіжішого спостереження до найстарішого. Проти простого середнього WMA **швидше реагує** на зміни рівня ряду. ## 2.4 Просте експоненційне згладжування **Просте експоненційне згладжування** (англ. *single exponential smoothing, SES*) забуває минуле **плавно**: ваги спостережень спадають геометрично. Рекурентна формула $$ \hat{x}_t = \alpha\, x_t + (1 - \alpha)\,\hat{x}_{t-1}, \qquad 0 < \alpha < 1, $$ зі стартом $\hat{x}_1 = x_1$. Кожна оцінка — компроміс між свіжим значенням $x_t$ (вага $\alpha$) і накопиченою історією $\hat{x}_{t-1}$ (вага $1 - \alpha$). **Велике** $\alpha$ — швидка реакція, слабке згладжування; **мале** $\alpha$ — сильне згладжування, повільна реакція. Просте SES не має компоненти тренду, тож на трендовому ряді **відстає**; тоді беруть **метод Гольта** (додає згладжений нахил). ## 2.5 Прогнозування Чотири базові методи прогнозу наступного значення $\hat{x}_{n+1}$: - **Наївний прогноз:** $\hat{x}_{n+1} = x_n$ (останнє значення). Це **еталон**: корисніший метод має бути **кращим** за наївний. - **За ковзним середнім:** $\hat{x}_{n+1} = \frac{1}{w}(x_n + \dots + x_{n-w+1})$. Для ряду **без тренду**. - **За трендом (лінійна регресія на час):** будують пряму $\hat{x}_t = b_0 + b_1 t$ методом найменших квадратів ([Лекція 5](../../Lectures/DA-L05.md)), де незалежна змінна — час $t$, і **екстраполюють** її на майбутні $t$: $$ b_1 = \frac{\sum (t - \bar{t})(x_t - \bar{x})}{\sum (t - \bar{t})^2}, \qquad b_0 = \bar{x} - b_1 \bar{t}. $$ Для ряду з вираженим **трендом**. - **За експоненційним згладжуванням:** $\hat{x}_{n+1} = \hat{x}_n$ (остання згладжена оцінка). ## 2.6 Метрики похибки прогнозу Прогноз перевіряють, порівнюючи його з **фактичними** значеннями на **відкладеній** частині ряду. Для $m$ пар «факт $x_t$ — прогноз $\hat{x}_t$»: $$ \mathrm{MAE} = \frac{1}{m}\sum_{t} |x_t - \hat{x}_t|, \qquad \mathrm{RMSE} = \sqrt{\frac{1}{m}\sum_{t} (x_t - \hat{x}_t)^2}, \qquad \mathrm{MAPE} = \frac{100\%}{m}\sum_{t} \left| \frac{x_t - \hat{x}_t}{x_t} \right|. $$ - **MAE** — середній промах в одиницях ряду; усі похибки рівноправні. - **RMSE** — теж в одиницях ряду, але через квадрат **сильніше карає великі** промахи; завжди $\mathrm{RMSE} \ge \mathrm{MAE}$. - **MAPE** — **безрозмірна** (у відсотках), придатна для порівняння різномасштабних рядів; **не визначена** при $x_t = 0$ і роздувається при малих $x_t$. ## 2.7 Демонстраційний приклад (на інших даних, ніж у задачах) Розгляньмо ряд середньодобової температури ($n = 8$): $16,\ 18,\ 17,\ 19,\ 21,\ 20,\ 22,\ 24$. **(а) Просте ковзне середнє, вікно $w = 3$.** Перші два значення не визначені: | $t$ | $x_t$ | $\mathrm{MA}_t^{(3)}$ | |:--:|:--:|:--:| | 1 | 16 | — | | 2 | 18 | — | | 3 | 17 | $(16+18+17)/3 = 17.000$ | | 4 | 19 | $(18+17+19)/3 = 18.000$ | | 5 | 21 | $(17+19+21)/3 = 19.000$ | | 6 | 20 | $(19+21+20)/3 = 20.000$ | | 7 | 22 | $(21+20+22)/3 = 21.000$ | | 8 | 24 | $(20+22+24)/3 = 22.000$ | Згладжений ряд $17 \to 22$ рівномірно зростає — ковзне середнє виявило висхідний тренд, прибравши коливання. **(б) Просте експоненційне згладжування, $\alpha = 0.4$.** Старт $\hat{x}_1 = 16$; далі за формулою $\hat{x}_t = 0.4\,x_t + 0.6\,\hat{x}_{t-1}$: $$ \hat{x}_2 = 0.4 \cdot 18 + 0.6 \cdot 16 = 16.800, \qquad \hat{x}_3 = 0.4 \cdot 17 + 0.6 \cdot 16.800 = 16.880, $$ $$ \hat{x}_4 = 0.4 \cdot 19 + 0.6 \cdot 16.880 = 17.728, \qquad \hat{x}_5 = 0.4 \cdot 21 + 0.6 \cdot 17.728 = 19.037. $$ Продовживши: $\hat{x}_6 = 19.422$, $\hat{x}_7 = 20.453$, $\hat{x}_8 = 21.872$. Прогноз на наступний період — остання згладжена оцінка $\hat{x}_9 = 21.872$. **(в) Метрики похибки.** Нехай на $m = 4$ періодах маємо факт і прогноз: | $x_t$ (факт) | $\hat{x}_t$ (прогноз) | $x_t - \hat{x}_t$ | $|{\cdot}|$ | $(\cdot)^2$ | $|{\cdot}|/x_t$ | |:--:|:--:|:--:|:--:|:--:|:--:| | 21 | 20 | $+1$ | 1 | 1 | 0.04762 | | 20 | 21 | $-1$ | 1 | 1 | 0.05000 | | 22 | 21 | $+1$ | 1 | 1 | 0.04545 | | 24 | 23 | $+1$ | 1 | 1 | 0.04167 | | | | | **4** | **4** | **0.18474** | $$ \mathrm{MAE} = \frac{4}{4} = 1.000, \qquad \mathrm{RMSE} = \sqrt{\frac{4}{4}} = 1.000, \qquad \mathrm{MAPE} = \frac{100\%}{4} \cdot 0.18474 = 4.62\%. $$ Тут усі похибки однакові за модулем ($1$), тож MAE $=$ RMSE; у середньому прогноз хибить на $1$ градус, або на $\approx 4.6\%$. ## 2.8 Робочий контрольний список - **Не переставляйте** значення ряду — порядок несе інформацію. - Для ковзного середнього спершу зафіксуйте **вікно** $w$; перші $w - 1$ значень лишаються невизначеними. - Для експоненційного згладжування зазначте **сталу** $\alpha$ і старт ($\hat{x}_1 = x_1$); рахуйте **послідовно**, кожне $\hat{x}_t$ спирається на попереднє. - Прогноз обирайте **під структуру** ряду: без тренду — ковзне середнє чи SES; із трендом — регресія на час чи метод Гольта; наївний прогноз тримайте як **еталон**. - Метрики MAE / RMSE / MAPE рахуйте на **відкладеній** частині (факт проти прогнозу), а не на даних навчання; MAPE не застосовуйте до рядів із нулями.