Cvičenie 5¶
Almonovej model¶
Ako prvé potrebujeme pero a papier :)
Načítame si dáta USMacroG a vytvoríme model pre predikovanie dpi podľa atribútu consumption s časovým oknom M=3 a veľkosťou polynómu K=2. Najprv skonvertujeme časové rady na číselné vektory.
install.packages("AER", repos='http://cran.us.r-project.org') # after restart kernel
data("USMacroG", package="AER")
y = as.numeric(USMacroG[,"dpi"])
x = as.numeric(USMacroG[,"consumption"])
Vytvoríme si vektory pre posunuté atribúty $x_t$, $x_{t-1}$, $x_{t-2}$, $x_{t-3}$ a $y_t$:
N = length(x)
x_t3 = x[1:(N-3)]
x_t2 = x[2:(N-2)]
x_t1 = x[3:(N-1)]
x_t = x[4:N]
y_t = y[4:N]
Vypočítame si transformované atribúty $z_0$, $z_1$, $z_2$:
z0 = x_t + x_t1 + x_t2 + x_t3
z1 = x_t1 + (2*x_t2) + (3*x_t3)
z2 = x_t1 + (4*x_t2) + (9*x_t3)
Pomocou funkcie lm si vypočítame parametre $a_0$, $a_1$, $a_2$. Pre model bez posunu je potrebné
vo výraze lm
zadať medzi závislé parametre 0.
td = data.frame(y_t, z0, z1, z2)
td_lm = lm(y_t ~ 0 + z0 + z1 + z2, td)
td_lm
alfa = as.numeric(coefficients(td_lm))
alfa
Z parametrov $a_0$, $a_1$, $a_2$ spätne vypočítame $\beta_0$, $\beta_1$, $\beta_2$, $\beta_3$:
beta0 = alfa[1]
beta1 = alfa[1] + alfa[2] + alfa[3]
beta2 = alfa[1] + 2*alfa[2] + 4*alfa[3]
beta3 = alfa[1] + 3*alfa[2] + 9*alfa[3]
beta0
beta1
beta2
beta3
Koyckov model¶
install.packages("dynlm")
library("dynlm")
model = dynlm(dpi ~ consumption + L(dpi,1), USMacroG)
model
Úlohy¶
- Vytvorte Almonovej model s časovým oknom M=5 a polynómom stupňa K=3 pre
predikovanie časového radu dpi
na základe radu consumption
. Vypočítajte
predikciu modelu na trénovacích dátach a zobrazte skutočnú hodnotu dpi
a
predikovanú hodnotu na spoločnom grafe.
- Vypočítajte korelačnú maticu medzi atribútmi $x_t$, $x_{t-1}$, $x_{t-2}$, $x_{t-3}$, $x_{t-4}$, $x_{t-5}$ z
predchádzajúceho príkladu a vyhodnoťte, ktoré dvojice sú silno korelované.
- Vytvorte štandardný autoregresný model pre predikovanie časového radu
dpi
na
základe consumption
s časovým oknom M=5:
𝑦𝑡 = 𝛽0𝑥𝑡 + 𝛽1𝑥𝑡−1 + 𝛽2𝑥𝑡−2 + 𝛽3𝑥𝑡−3 + 𝛽4𝑥𝑡−4 + 𝛽5𝑥𝑡−5
Porovnajte presnosť modelu s Almonovej modelom. Porovnajte vypočítané koeficienty podľa štandardného modelu a po Almonovej transformácii.
- Vytvorte Koyckov model pre predikciu časového radu
gdp
od hodnotyinvest
.
Vypočítajte predikciu modelu na trénovacích dátach a zobrazte ich na spoločnom
grafe s priebehom gdp
.