Cursus
Een tijdreeks is een meting, of een metriek, die op regelmatige tijdstippen wordt gemeten. Voorbeelden van tijdreeksanalyse zijn financiële data, aandelenkoersen, weerdata, verbruiksstudies en veel meer.
Het tijdreeksmodel kan worden opgesteld door:
- Inzicht te krijgen in de onderliggende krachten en structuren die de geobserveerde data hebben voortgebracht.
- Een model te fitten en te starten met voorspellen, monitoren of zelfs feedback- en feedforward-sturing toe te passen.
In deze tutorial krijg je een overzicht van stationaire en niet-stationaire tijdreeksmodellen. Je ziet hoe je een tijdreeks herkent door de ACF en PACF te berekenen. De grafieken van deze functies maken het mogelijk om de stationariteit van een tijdreeks te beoordelen. We kunnen een niet-stationaire reeks stationair maken door te differentiëren. Als je de aard van een reeks kent, is het makkelijker om toekomstige waarden te voorspellen met een model dat bij die reeks past. We laten ook een voorbeeld zien met echte data uit het TSA-pakket van R.
Stationaire processen
Laat $X$ een toevalsvariabele zijn geïndexeerd naar tijd (meestal aangeduid met $t$); de observaties $\left\{x_t,\,t\in \textbf{N}\right\}$ noemen we een tijdreeks. $\textbf{N}$ is de verzameling gehele getallen en wordt hier beschouwd als de tijdindex. $N$ kan ook een tijdstempel zijn. Stationariteit is een cruciale aanname in tijdreeksmodellen en impliceert homogeniteit in de reeks: de reeks gedraagt zich op vergelijkbare wijze ongeacht de tijd, wat betekent dat de statistische eigenschappen in de tijd niet veranderen. Er zijn twee vormen van stationariteit: sterke en zwakke vormen.
Definitie 1
Een stationair proces $\left\{x_t,\,t\in \textbf{N}\right\}$ heet strikt of sterk stationair als de statistische verdelingen onveranderd blijven na een verschuiving op de tijdschaal. Aangezien de verdelingen van een stochastisch proces worden gedefinieerd door de eindig-dimensionale verdelingsfuncties, kunnen we een alternatieve definitie van strikte stationariteit formuleren. Als voor elk $n$, elke keuze van tijden $t_1, t_2, \ldots, t_n\in \textbf{N}$ en elke tijdsvertraging $k$ zodanig dat $t_{i+k}\in\textbf{N}$, de $n$-dimensionale toevalsvector $(X_{t_1+k}, X_{t_2+k}, \ldots, X_{t_n+k})$ dezelfde verdeling heeft als de vector $(X_{t_1}, X_{t_2}, \ldots, X_{t_n})$, dan is het proces strikt stationair. Dat wil zeggen voor $h$ en $x_i$
\begin{align*} P(X_{t_1}\leq x_1, X_{t_2}\leq x_2, \ldots, X_{t_k}\leq x_k) &= F(x_{t_1}, x_{t_2}, \ldots, x_{t_k})\\ &= F(x_{h+t_1}, x_{h+t_2}, \ldots, x_{h+t_k})\\ &= P(X_{h+t-1}\leq x_1, X_{h+t_2}\leq x_2, \ldots, X_{h+t_k}\leq x_k) \end{align*}
voor elke tijdsverschuiving $h$ en observatie $x_j$. Als $\left\{X-t,\,t\in\textbf{N}\right\}$ strikt stationair is, dan is de marginale verdeling van $X_t$ onafhankelijk van $t$. Ook zijn de tweedimensionale verdelingen van $(X_{t_1}, X_{t_2})$ onafhankelijk van de absolute positie van $t_1$ en $t_2$; alleen het verschil $t_1-t_2$ is van belang. Als gevolg hiervan is de verwachtingsfunctie $E(X)$ constant, en is de covariantie $Cov(X_t,X_{t-k})$ alleen een functie van $k$, niet van de absolute positie van $k$ en $t$. Bij hogere-orde-momenten, zoals het derde-orde-moment, blijft $E[X_uX_tX_v]$ onveranderd als men een constante tijdsverschuiving toevoegt aan $s, t, u$.
Definitie 2
Een univariate tijdreeks $X_t$ is stationair als het gemiddelde, de variantie en de covariantie onafhankelijk zijn van de tijd. Als $X_t$ een tijdreeks (of stochastisch proces, d.w.z. toevalsvariabelen geordend in de tijd) is gedefinieerd voor $t=1,2,3,\ldots, n$ en voor $t=0, -1, -2, -3, \ldots$, dan is $X_t$ wiskundig zwak stationair als
\begin{align} (i) & E[X_t] = \mu\\ (ii) & E\left[(X-\mu)^2\right] = Var(X_t) = \gamma(0) = \sigma^2\\ (iii) & E\left[(X_t-\mu)(X_{t-k}-\mu)\right] = Cov(X_t, X_{t-k}) = \gamma(k) \end{align}
De eerste twee voorwaarden ($(i)$ en $(ii)$) vereisen respectievelijk een constant gemiddelde en een constante variantie, terwijl $(iii)$ vereist dat de covariantie tussen twee waarden (formeel de covariantiefunctie) alleen afhangt van het tijdsinterval $k$ tussen deze twee waarden en niet van het tijdstip $t$.
Als een proces Gaussiaans is met eindige tweede momenten, dan is zwakke stationariteit equivalent aan sterke stationariteit. Strikte stationariteit impliceert zwakke stationariteit alleen als de benodigde momenten bestaan. Sterke stationariteit vereist ook aannames over de verdeling. De sterke vorm wordt over het algemeen als te streng beschouwd; daarom richten we ons vooral op zwakke stationariteit, ook wel covariantiestationariteit, wide-sense stationarity of second-order stationarity genoemd.
Stationariteit en willekeurige tijdreeks (stochastisch proces)
Een tijdreeks waarbij de observaties fluctueren rond een constant gemiddelde, een constante variantie hebben en stochastisch onafhankelijk zijn, is een willekeurige tijdreeks. Zulke reeksen vertonen geen patroon:
- Observaties neigen niet omhoog of omlaag
- De variantie neemt niet toe of af in de tijd
- Observaties zijn in sommige perioden niet systematisch groter dan in andere
Een voorbeeld van een stationair willekeurig model kan worden geschreven als
$$X_t = \mu+\varepsilon_t$$ waarbij $\mu$ een constant gemiddelde is zodanig dat $E[X_t] = \mu$ en $\varepsilon_t$ de ruisterm is met verondersteld nulgemiddelde, constante variantie en onafhankelijkheid (ook wel witte ruis).
Simulatie van een willekeurige tijdreeks
# purely random process with mean 0 and standard deviation 1.5
eps <- rnorm(100, mean = 0, sd = 1)
mu <- 2 # the constant mean
# The process
X_t <- mu + eps
# plotting the time series
ts.plot(X_t, main = "Example of (random) stationary time series", ylab = expression(X[t]))
Het gesimuleerde proces fluctueert rond het constante gemiddelde $\mu = 2$.
Autocovariantiefunctie
De theoretische autocovariantiefunctie (ACF) van een stationair stochastisch proces is een belangrijk hulpmiddel om de eigenschappen van tijdreeksen te beoordelen. Laat $X_t$ een stationair stochastisch proces zijn met gemiddelde $\mu$ en variantie $\sigma^2$. De ACF bij vertraging $k$, $\gamma(k)$, is $$\gamma(k) = \frac{\gamma(k)}{\gamma(0)} = \frac{\gamma(k)}{\sigma^2}$$
De ACF is een genormaliseerde maat voor de autocovariantie en heeft verschillende eigenschappen.
Eigenschappen van de ACF
- $\rho(0) = 1$
- De ACF is een even functie van de vertraging. Dat wil zeggen $\rho(k) = \rho(-k)$
- $|\rho(-k)| \leq 1$
De ACF van bovenstaand proces wordt weergegeven in de volgende figuur.
# Auto-covariance function of the simulated stationary random time series
acf(X_t, main = "Auto-covariance function of X")
Notitie 1. Het gebrek aan uniciteit is een kenmerk van de ACF. Zelfs als een gegeven proces een unieke covariancestructuur heeft, geldt omgekeerd meestal niet: het is mogelijk om meer dan één stochastisch proces te vinden met dezelfde ACF. Dit veroorzaakt specificatieproblemen zoals geïllustreerd in [@jenkinsd].
Notitie 2: Een zeer bijzondere matrix wordt verkregen via de autocorrelatiefunctie van een stationair proces. Dit is de Toeplitz-matrix. Het is een soort variantie- en covariantiematrix van orde $m = t-k$ (de lag, inclusief autocorrelaties tot en met lag $m-1$), dus hij is diagonaal, symmetrisch en positief definiet.
\begin{equation} \begin{pmatrix} 1 & \rho(1) & \rho(2) & \cdots & \rho(m-1)\\ \rho(1) & 1 & \rho(1) & \cdots & \rho(m-2)\\ \cdots &\cdots &\cdots &\cdots &\cdots\\ \rho(m-1) & \rho(m-2) & \cdots & \rho(1) & 1 \end{pmatrix} \end{equation}
Puur willekeurig proces of witte ruis
Een discreet proces $\left\{Z_t\right\}$ heet puur willekeurig als de toevalsvariabelen $Z_t$ een rij vormen van onderling onafhankelijke en identiek verdeelde (i.i.d.) variabelen. De definitie impliceert dat het proces een constant gemiddelde en een constante variantie heeft.
$$\gamma(k) = cov(Z_t, Z_{t+k}) = 0,\quad\forall k\in -3,-2,-1,0,1,2,3, \ldots$$ Aangezien het gemiddelde en de autocovariantiefunctie (acvf) niet van de tijd afhangen, is het proces tweede-orde stationair.
Random walk-proces
Een proces $\left\{X_t\right\}$ heet een random walk-proces als $X_t = X_{t-1}+Z_t$, waarbij $Z_t$ een puur willekeurig proces is met gemiddelde $\mu$ en variantie $\sigma^2_Z$. Het proces start meestal bij $t = 0$ en we hebben $X_1 = Z_0$, wat betekent dat $X_0 = 0$. We krijgen
\begin{align*} X_1 &= X_0 + Z_1, \quad\text{op } t = 1\\ X_2 &= X_1 + Z_2 = X_0 + Z_1+ Z_2, \quad\text{op } t = 2\\ X_3 &= X_2 + Z_3 = X_0 + Z_1+ Z_2 + Z_3, \quad\text{op } t = 3\\ &\cdots\\ X_t &= X_0 + \sum_{i = 1}^tZ_i \end{align*}
Het eerste-ordemoment (de verwachtingswaarde) voor dit proces is gelijk aan $$E[X_t] = X_0 +\sum_{i = 1}^tE[Z_i] = X_0 + t\mu_z = t\mu_z$$ en de variantie $$Var(X_t) = t\sigma^2_Z$$ Merk op dat gemiddelde en variantie met de tijd veranderen; het proces is dus \textbf{niet-stationair}. Een voorbeeld van reeksen die zich als random walks gedragen zijn aandelenkoersen.
Simulatie van een random walk-proces
# seed X_0 = 0
X <- 0
# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0.5, sd = 1.5)
# the process
for (i in 2:length(Z)){
X[i] <- X[i-1] + Z[i]
}
# process plotting
ts.plot(X, main = "Random walk process")
Differentiëren
Differentiëren is de meest gebruikte methode om een tijdreeks stationair te maken. Dit is een speciaal type filtering, vooral belangrijk om een trend te verwijderen. Voor seizoensdata is eerste-orde-differentiëren meestal voldoende om stationariteit in het gemiddelde te bereiken. Laat $X_t = \left\{X_1, X_2,\ldots, X_n\right\}$ een niet-stationaire tijdreeks zijn. De stationaire reeks krijg je als
$$\Delta X_{t+1} = X_{t+1}-X_t\quad\text{of }\,\Delta X_{t} =X_t-X_{t-1}$$ dit heet simpelweg het eerste-orde-verschil. Als een tweede-orde-verschil nodig is, kun je de operator $\Delta^2$ gebruiken: het verschil van eerste-orde-verschillen
$$\Delta^2X_{t+2} = \Delta X_{t+2} - \Delta X_{t+1}$$
# differencing and plotting of the random walk process
ts.plot(diff(X))
Je ziet dat het resulterende eerste-orde-verschil fluctueert rond een constant gemiddelde 0. Dit komt omdat wiskundig
$$\Delta X_{t+1} = X_{t+1}-X_t = Z_t$$ wat stationair is omdat het een puur willekeurig proces is met constant gemiddelde en constante variantie.
Moving Average van orde $q$: MA($q$)
Laat $\left\{Z_t\right\}$ een puur willekeurig proces zijn met gemiddelde nul en variantie $\sigma^2_Z$. Het proces heet een Moving Average van orde #q# als
$$X_t = \beta_0Z_t-\beta_1Z_{t-1}-\cdots-\beta_q Z_{t-q}$$ waarbij $\beta_i,\, i = 1,2,\ldots,q$ constanten zijn. De toevalsvariabelen $Z_t, \,t\in\textbf{N}$ worden doorgaans geschaald zodat $\beta_0=1$
Simulatie van een MA van eerste orde
# purely random process with mean 0 and standard deviation 1.5 (arbitrary choice)
Z <- rnorm(100, mean = 0, sd = 1.5)
# process simulation
X <- c()
for (i in 2:length(Z)) {
X[i] <- Z[i] - 0.45*Z[i-1]
}
# process plotting
ts.plot(X, main = "Moving Average or order 1 process")
Voor het MA(1)-proces kunnen de 3 voorwaarden als volgt worden geverifieerd:
\begin{align} E[X_t] &= 0\\ Var(X_t) &= E[X_t^2] - 0 = E\left[Z_t^2-2\beta Z_tZ_{t-1}+\beta^2Z_{t-1}^2\right]= \sigma^2_Z+\beta^2\sigma^2_Z\\ \gamma(k) &= cov(X_t, X_{t+k}) = E[X_tX_{t+k}] - E[X_t]E[X_{t+k}] = E[X_tX_{t+k}]\\ &= E\left[(Z_t-\beta Z_{t-1})(Z_{t+k}-\beta Z_{t-1+k})\right]\\ &= E\left[Z_tZ_{t+k} - \beta Z_tZ_{t-1+k} -\beta Z_{t-1}Z_{t+k} + \beta^2 Z_{t-1}Z_{t-1+k}\right]\\ \end{align}
voor $k = 0,\, \gamma(0) = Var(X_t) = \sigma^2_Z(1+\beta^2)$
voor $k = 1,\, \gamma(1) = E\left[Z_tZ_{t+1} - \beta Z_t^2 -\beta Z_{t-1}Z_{t+1} + \beta^2 Z_{t-1}Z_{t}\right] = -\beta\sigma^2_Z$
en voor $k>1,\, \gamma(k) = 0.$
Dus het MA(1)-proces heeft een covariantie van nul wanneer de verschuiving meer dan één periode bedraagt. Het heeft dus slechts één periode geheugen.
De ACF voor MA(1) is daarom
$$\rho(k) = \frac{\gamma(k)}{\gamma(0)} = \begin{cases}1, &\text{k }=0\\\frac{-\beta}{1+\beta^2}, & \text{k }\pm 1\end{cases}$$
Vraag: doe de uitwerking opnieuw voor MA(2)
Je ziet waarom de steekproefautocorrelatiefunctie nuttig kan zijn om de orde van een moving-average-proces te bepalen: de autocorrelatiefunctie ρ(k) voor het MA(q)-proces heeft q niet-nulwaarden (significant verschillend van nul) en is nul voor $k > q$. Er zijn geen beperkingen op $\left\{\beta_i\right\}$ nodig om MA stationair te maken. Wel moeten $\left\{\beta_i\right\}$ worden beperkt om inverteerbaarheid te garanderen.
Autoregressie van orde $p$: AR($p$)
Laat $\left\{Z_t\right\}$ een puur willekeurig proces zijn met gemiddelde nul en variantie $\sigma_Z^2$. Een proces $\left\{X_t\right\}$ heet een autoregressief proces van orde $p$ als $$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ In het autoregressieve proces van orde $p$ wordt de huidige observatie $X_t$ (bijvoorbeeld het rendement van vandaag) gegenereerd door een gewogen gemiddelde van eerdere observaties tot $p$ perioden terug, samen met een willekeurige onafhankelijke component, maar op basis van eerdere waarden van $X_t$ en dus autoregressief. Dit type processen werd geïntroduceerd door [@greenwood1920inquiry]. De AR($p$) hierboven kan worden geschreven met een constant gemiddelde
$$X_t = \delta+\alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ waarbij $\mu$ een constante term is die samenhangt met het gemiddelde van de tijdreeks en $\alpha_1, \alpha_2,\ldots, \alpha_p$ positief of negatief kunnen zijn. De AR($p$) is stationair als $E[X_t] = E[X_{t-1}] = \cdots = E[X_p] = \mu$. Dus,
\begin{align*} E[X_t] = \mu &= \delta + \alpha_1\mu+\alpha_2\mu+\cdots+\alpha_p\mu+ 0\\ \Rightarrow \mu &= \frac{\delta}{1-\alpha_1-\alpha_2-\cdots-\alpha_p} \end{align*} Opdat de laatste formule een constante is, nemen we de voorwaarde $\alpha_1+\alpha_2+\cdots+\alpha_p<1$ aan.
</1>
Autoregressie van eerste orde: AR(1)
Neem het geval $p=1$, dan is $$X_t = \alpha X_{t-1}+Z_t$$ de autoregressie van eerste orde AR(1), ook wel Markov-proces genoemd. Met de backshift-operator $BX_t = X_{t-1}$ kun je AR(1) uitdrukken als een oneindig MA-proces. We hebben $$(1 - \alpha B)X_t = Z_t$$ dus, \begin{align*} X_t &= \frac{Z_t}{1-\alpha B}\\ &= (1+\alpha B +\alpha^2B^2+ \cdots)Z_t\\ &=Z_t+\alpha Z_{t-1}+\alpha^2Z_{t-2}+\cdots\\ &=Z_t+\beta_1 Z_{t-1}+\beta_2 Z_{t-2}+\cdots\\ \end{align*}
Dan geldt $E[X_t] = 0$ en $Var(X_t) = \sigma^2_Z(1+\alpha^2+\alpha^4+\cdots)$. De reeks convergeert onder de voorwaarde $|\alpha|<1$.
Vraag: Stel dat een AR(1)-proces $X_t = \alpha_1X_1+Z_t$ een puur willekeurig proces is met gemiddelde nul en variantie $\sigma^2_Z$ en $\alpha$ een constante met de nodige voorwaarden op $\alpha$. Leid de variantie en autocovariantiefunctie van $X_t$ af.
Een AR(1) simuleren
# constant alpha
alpha = 0.5
# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)
# seed
X <- rnorm(1)
# the process
for (i in 2:length(Z)) {
X[i] <- 0.7*X[i-1]+Z[i]
}
# process plotting
ts.plot(X)
Vraag: Druk de stationariteitsvoorwaarde van het AR(2)-model uit in termen van parameterwaarden. Laat dus de volgende voorwaarden zien:

Je kunt een AR-proces van eindige orde, zeg p, ook uitdrukken als een MA-proces van oneindige orde. Dit kan door successieve substitutie of met de backward shift-operator.
Autoregressive Moving Average-proces: ARMA($p,q$)
Bij modelbouw kan het nodig zijn zowel AR- als MA-termen te combineren. Dit leidt tot gemengde autoregressieve – moving-average-processen (ARMA). Een ARMA-proces met $p$ autoregressieve termen en $q$ moving-average-termen is van orde $(p, q)$ en wordt gegeven door
$$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t-\beta_1Z_{t-1}-\beta_2Z_{t-2}-\cdots-\beta_qZ_{t-q}$$ Met de backshift-operator B kan de vergelijking worden geschreven als
$$\alpha_p(B)X_t = \beta_q(B)Z_t$$ waarbij $\alpha_p(B)$ en $\beta_q(B)$ polynomen van respectievelijk orde $p$ en $q$ zijn, zodanig dat
\begin{align*} \alpha_p(B) &= \left(1-\alpha_1 B-\cdots-\alpha_p B^p\right)\\ \beta_q(B) &= \left(1-\beta_1 B-\cdots-\beta_p B^p\right) \end{align*}
Voor inverteerbaarheid moeten de wortels van $\beta_q(B)$ buiten de eenheidscirkel liggen. Voor stationariteit eisen we dat de wortels van $\alpha_p(B)=0$ buiten de eenheidscirkel liggen. We nemen ook aan dat $\alpha_p(B)=0$ en $\beta_q(B) = 0$ geen gemeenschappelijke wortels hebben.
ARMA(1,1)-proces
Dit proces is van orde $(1,1)$ en wordt gegeven door $$X_t = \alpha_1X_{t-1}+Z_t-\beta_1Z_{t-1}$$
met de voorwaarden $|\alpha_1|<1$ en $|\beta_1|<1$ voor respectievelijk stationariteit en inverteerbaarheid. Wanneer $\alpha < 0$, reduceert ARMA(1,1) tot MA(1) en wanneer $\beta_1<0$, krijgen we een AR(1). Een ARMA(1,1)-proces kan met de backshift-operator worden omgezet in een puur autoregressieve representatie:
$$(1-\alpha_1B)X_t = (1-\beta_1B)Z_t$$
We hebben
\begin{align*} \frac{1-\alpha_1B}{1-\beta_1B}X_t &= Z_t\\ \pi(B)X_t &= Z_t \end{align*}
met
\begin{align*} \pi(B) = 1-\pi_1B-\pi_2B^2-\ldots &= \frac{1-\alpha_1B}{1-\beta_1B}\\ (1-\beta_1B)(1-\pi_1B-\pi_2B^2-\ldots) &= 1-\alpha_1B\\ 1-\left[(\pi_1+\beta_1)B - (\pi_2+\beta_2)B^2 - (\pi_3+\beta_3)B^3\right] & = 1-\alpha_1B \end{align*}
Door de coëfficiënten bij B aan beide kanten te identificeren, vinden we de onbekenden als $$\pi_j = \beta_1^{j-1}(\alpha_1-\beta_1),\,\text{voor }\, j\geq1$$
Autocorrelatiefunctie van ARMA (1, 1)
De verwachting van $X_t$ is $E[X_t] = \alpha_1E[X_{t-1}]$ en onder de aanname van stationariteit geldt $E[X_t] = E[X_{t-1}] = \mu = 0$. Dit is nuttig voor het berekenen van de autocovariantiefunctie, die als volgt wordt verkregen:
- $X_tX_{t-k} = \alpha_1X_{t-k}X_{t-1}+X_{t-k}Z_t-\beta_1X_{t-k}Z_{t-1}$
- Door aan beide kanten de verwachting te nemen, krijgen we: \begin{align*} E\left[X_tX_{t-k}\right] &= E\left[\alpha_1X_{t-k}X_{t-1}\right]+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right]\\ \gamma(k)&=\alpha_1\gamma(k-1)+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right] \end{align*}
Voor $k = 0$:
\begin{align*} \gamma(1)&=\alpha_1\gamma(0)+E\left[X_{t-1}Z_t\right]-\beta_1E\left[X_{t-1}Z_{t-1}\right]\\ &=\alpha_1\left(\alpha_1\gamma(1)+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\right)-\beta_1\sigma^2_Z\\ &= \alpha^2\gamma(1)+(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z\\ \Rightarrow \gamma(1)&=\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}\\ \Rightarrow \gamma(0)&=\alpha_1\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\\ &=\frac{\left(1+\beta_1^2-2\alpha_1\beta_1\right)\sigma_Z^2}{1-\alpha^2} \end{align*}
Voor $k \geq 2$:
\begin{align*} \gamma(2)&=\alpha_1\gamma(k-1) \end{align*}
Daarom is de ACF van ARMA(1,1):
$$\rho(k) = \begin{cases} 1, &\text{voor }\,k=0\\ \frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)}{1+\beta_1^2-2\alpha_1\beta_1},&\text{voor }\,k=1\\ \alpha_1\rho(k-1), &\text{voor }\,k\geq2\\ \end{cases} $$ De ACF van ARMA(1,1) combineert de kenmerken van zowel AR(1)- als MA(1)-processen. De MA(1)- en AR(1)-parameters zijn beide aanwezig in $\rho(1)$. Na $\rho(1)$ volgt de ACF van een ARIMA(1,1)-model hetzelfde patroon als de ACF van een AR(1).
Vraag: Vind de partiële autocorrelatiefunctie (PACF) van het ARMA(1,1)-proces.
Opmerking: Eigenschappen van tijdreeksprocessen worden vaak beschreven in termen van hun ACF en PACF. De meest cruciale stappen in tijdreeksanalyse zijn het identificeren en opbouwen van een model op basis van de beschikbare data, waarbij de ACF en PACF onbekend zijn.
ARMA(1,1)-processimulatie
# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)
# Process
X <- rnorm(1)
for (i in 2:length(Z)) {
X[i] <- 0.35*X[i-1] + Z[i] + 0.4*Z[i-1]
}
# process plotting
ts.plot(X, main = "ARMA(1,1) process")
# ACF et PACF
par(mfrow = c(1,2))
acf(X); pacf(X)
ARIMA($p,d,q$)-proces
Autoregressive Integrated Moving Average-modellen zijn tijdreeksen gedefinieerd door de vergelijking:
SARIMA(p,d,q)(P,D,Q)-proces
Voorspellen
In deze sectie gebruik je echte tijdreeksen om daaruit het optimale model te fitten. Hiervoor gebruik je het forecast-pakket. De functie auto.arima fit en selecteert het optimale model op basis van de data en met de functie forecast voorspel je h perioden vooruit.
# R packages to be used
library(forecast)
library(TSA)
Voorbeeld 1:
# Data from TSA package
data("co2")
data("boardings")
# fitting
fit <- auto.arima(co2)
# Time series plot
plot(fc <- forecast(fit, h = 15))
Voorbeeld 2:
data("boardings")
# fitting
fit2 <- auto.arima(boardings[,"log.price"])
# forecasting
plot(fc2 <- forecast(fit2, h = 15))
Referenties
Greenwood, Major, en G Udny Yule. 1920. “An Inquiry into the Nature of Frequency Distributions Representative of Multiple Happenings with Particular Reference to the Occurrence of Multiple Attacks of Disease or of Repeated Accidents.” Journal of the Royal Statistical Society 83 (2). JSTOR: 255–79.
Jenkins, GM. z.j. “D. G. Watts (1968) Spectral Analysis and Its Applications.” San Francisco.
Conclusie
In deze tutorial heb je veel aspecten van tijdreeksen in R behandeld. Je hebt geleerd wat een stationair proces is, simulatie van toevalsvariabelen, simulatie van willekeurige tijdreeksen, random walk-proces en meer. Ook kwamen Autoregressie van orde p: AR(p), SARIMA(p,d,q)(P, D, Q), en voorspellen aan bod.
Wil je meer leren over tijdreeksen in R? Volg dan deze cursussen van DataCamp:
