Rozdział 4 Procesy stochastyczne, modelowanie szeregów czasowych
4.1 Procesy stacjonarne
4.1.1 Stacjonarność kowariancyjna
Proces stochastyczny jest stacjonarny w sensie szerokim (jest stacjonarny kowariancyjnie), gdy dwa wektory zmiennych losowych pochodzących z tego procesu (Yt,Yt+1,...Yt+r) i (Yt+s,Yt+s+1,...Yt+s+r) mają takie same średnie, wariancje i kowariancje dla dowolnych wartości t, r i s.
Mówiąc intuicyjnie: proces stochastyczny jest stacjonarny, gdy niezależnie od okna czasowego mamy takie same średnie, wariancje i autokorelacje.
W stacjonarnym procesie brak trendu i brak sezonowości.
4.1.2 Stacjonarność ścisła
Proces stochastyczny jest stacjonarny w sensie ścisłym, gdy dwa wektory zmiennych losowych (Yt,Yt+1,...Yt+r) i (Yt+s,Yt+s+1,...Yt+s+r) mają taki sam rozkład dla dowolnych wartości t, r i s.
Używa się też określenia stacjonarność silna.
W porównaniu ze stacjonarnością szeroką, wymagane są nie tylko takie same średnie, wariancje i autokorelacje, ale wszystkie inne charakterystyki, np. momenty wyższych rzędów, asymetria, kurtoza, itp.
4.1.3 Przykład procesu stacjonarnego
Przykładem procesu stacjonarnego, w którym występuje autokorelacja, jest następujący proces:
yt=α+ϕyt−1+εt;0<ϕ<1;εt∼N(0,σ2ε)
Średnia w tym procesie to α/(1−ϕ), wariancja to σ2ε/(1−ϕ2), a autokorelacja rzędu k to ϕk.
Symulacja:
# pojedynczy szereg
T <- 100
alpha <- 2
phi <- 0.8
sigma_eps <- 0.5
yt <- numeric(T)
yt[1] <- alpha/(1-phi)
for (t in 2:T) {
yt[t] <- alpha + phi*yt[t-1] + rnorm(1, 0, sigma_eps)
}
plot(yt, type="l")
# wiele szeregów plus wykresy pudełkowe
nsim <- 1e3
w <- replicate(nsim,{
yt <- numeric(T)
yt[1] <- alpha/(1-phi) + rnorm(1, 0, 1) * sigma_eps/sqrt(1-.8^2)
for (t in 2:T) {
yt[t] <- alpha + phi*yt[t-1] + rnorm(1, 0, .5)
}
yt}
)
boxplot(t(w), pch='.')
4.1.4 Biały szum
Białym szumem najczęściej określa się proces stacjonarny, w którym średnia wynosi zero, wariancja jest stała, a zmienne Ys i Yt są niezależne dla wszystkich s≠t.
4.2 Proces błądzenia losowego
Błądzeniem losowym (ang. random walk) nazywa się proces, w którym przyrosty są białym szumem lub przesuniętym białym szumem (w tym drugim przypadku mówimy o błądzeniu losowym z dryftem).
Przykład błądzenia losowego:
yt=yt−1+εt;εt∼N(0,σ2ε)
Przykład błądzenia losowego z dryftem:
yt=α+yt−1+εt;εt∼N(0,σ2ε)
Symulacja:
# pojedynczy szereg
T <- 100
alpha <- 0.1
phi <- 1
sigma_eps <- 0.5
yt <- numeric(T)
yt[1] <- 0
for (t in 2:T) {
yt[t] <- alpha + phi*yt[t-1] + rnorm(1, 0, sigma_eps)
}
plot(yt, type="l")
# wiele szeregów i wykresy pudełkowe
nsim <- 1e3
w <- replicate(nsim,{
yt <- numeric(T)
yt[1] <- 0
for (t in 2:T) {
yt[t] <- alpha + phi*yt[t-1] + rnorm(1, 0, sigma_eps)
}
yt}
)
boxplot(t(w), pch='.')
4.3 Procesy zintegrowane, procesy z pierwiastkiem jednostkowym
Proces zintegrowany (stopnia 1, I(1)) to taki proces, który po jednokrotnym różnicowaniu (obliczeniu różnic i stworzeniu w ten sposób procesu pochodnego) staje się stacjonarny. Ponieważ przyrosty w takim procesie są stacjonarne, proces taki nazywa się też przyrostostacjonarnym (ang. difference stationary).
Proces zintegrowany stopnia k (I(k)) wymaga k-krotnego różnicowania, żeby stać się stacjonarnym.
Proces stochastyczny z pierwiastkiem jednostkowym to proces, dla którego przynajmniej jeden z pierwiastków w wielomianie charakterystycznym jego modelu autoregresyjnego (AR) wynosi 1.
Pojęcia procesu z pierwiastkiem jednostkowym i procesu zintegrowanego są pokrewne, ale nie tożsame. Na przykład proces z pierwiastkiem jednostkowym po różnicowaniu może być niestacjonarny ze względu na heteroskedastyczność.
Proces błądzenia losowego jest procesem zintegrowanym I(1) i ma pojedynczy pierwiastek jednostkowy.
Inne przykłady procesów z pierwiastkiem jednostkowym:
yt=yt−1−0,2yt−2+εt
yt=1,5yt−1−0,5yt−2+εt
yt=2yt−1−yt−2+εt
Pierwsze dwa procesy mają pojedynczy pierwiastek jednostkowy, trzeci z nich ma podwójny pierwiastek jednostkowy.
Symulacja:
# pojedynczy szereg
T <- 100
phi1 <- 2
phi2 <- -1
sigma_eps <- 0.5
yt <- numeric(T)
yt[1] <- 0
yt[2] <- 0
for (t in 3:T) {
yt[t] <- alpha + phi1*yt[t-1] + phi2*yt[t-2] + rnorm(1, 0, sigma_eps)
}
plot(yt, type="l")
# wiele szeregów i wykresy pudełkowe
nsim <- 1e3
w <- replicate(nsim,{
yt <- numeric(T)
yt[1] <- 0
yt[2] <- 0
for (t in 3:T) {
yt[t] <- alpha + phi1*yt[t-1] + phi2*yt[t-2] + rnorm(1, 0, sigma_eps)
}
yt}
)
boxplot(t(w), pch='.')