Search
\[ \def\_#1{\mathbf{#1}} \def\x{\times} \def\R{\mathbb{R}} \def\mat#1{\begin{bmatrix}#1\end{bmatrix}} \def\matr#1{\begin{bmatrix*}[r]#1\end{bmatrix*}} \]
(V.Franc, upravili O.Drbohlav, T.Werner, V.Voráček)
Časová řada je posloupnost reálných čísel $y_0,y_1,\ldots$, která popisuje signál vzorkovaný v (ekvidistantních) časech $t=0,1,\ldots,T$. Naším cílem je odhadnout parametry autoregresního modelu \[ \hat{y}_t = a_0 + \sum_{i=1}^{p} a_i y_{t-i}, \qquad t \geq p, \] časové řady, ve kterém každý prvek posloupnosti je lineární kombinace (se stejnými koeficienty) $p$ předcházejících prvků a absolutního členu 1. Číslo $p\in\mathbb{N}$ je řád modelu a $\_a=(a_0, a_1,\ldots,a_p)\in\R^{p+1}$ jsou parametry. Odhadnutí parametrů z naměřeného vzorku \[ \_y=(y_0,y_1,\ldots,y_T)\in\R^{T+1} \] časové řady se nazývá identifikace modelu. Jedna metoda identifikace hledá takové parametry, které odpovídají naměřenému vzorku ve smyslu nejmenšího součtu čtverců odchylek hodnot modelu od nameřených dat. Tj. optimální parametry minimalizují číslo \[ \sum_{t=p}^T (\hat{y}_t-y_t)^2 . \]
Získaný model se dá použít například pro kompresi časové řady. V tomto případě postačí uchovat podposloupnost $y_1,\ldots,y_p$ a odhadnuté parametry. Zbývající členy poslopnosti $y_{p+1},\ldots, y_T$ vygenerujeme rekurentním použitím modelu. Koeficient komprese je tedy $T/(2p+1).$ Na podobné myšlence je postavena komprese řečového signálu v reálném čase, která se používá například v mobilních telefonech.
Úkoly k vypracování:
a = ar_fit_model(y,p)
y
p
a
y_pred = ar_predict(a,y0,N)
y0
N
y_pred
Templaty, včetně skriptu pro testování si stáhněte zde: template pro matlab, template pro python. Pro python spouštějte skript gong.py, pro matlab du2.m. Výsledný graf pro gong by měl vypadat jako níže. Pro další testování vymyslete jednoduché případy, u kterých umíte najít řešení i jinak. Například konstatní a lineární regrese (p = 0,1).
gong.py
du2.m
p = 0,1