Хэрэв \(z\in \mathbb{Z}\) нь \(1-\phi_1 z-\phi_2 z^2=0\) тэгшитгэлийн шийд бол \(z^{-1}=\lambda\)-ийн хувьд \[\begin{eqnarray*} 1-\phi_1 z-\phi_2 z^2&=&0\\ \Rightarrow z^{-2}-\phi_1 z^{-1}-\phi_2 &=&0\\ \Rightarrow \lambda^2-\phi_1\lambda -\phi_2 &=&0 \end{eqnarray*}\] биелнэ.
Иймд, AR(2) цуваа стационарь байхын тулд дээрх тэгшитгэлийн шийдүүд нэгж тойргийн дотор оршино, ө.х \(|z|>1 \Leftrightarrow |\lambda|=|z^{-1}|<1\).
AR(2) стационарь байхын тулд доорх нөхцөл биелэх ёстойг үзүүлье.
Тэгшитгэлийн шийдүүд \(\lambda_{1,2}=\frac{\phi_1\pm\sqrt{\phi_1^2+4\phi_2}}{2}\) бодит байвал
\[\begin{eqnarray*} -1<\frac{\phi_1\pm\sqrt{\phi_1^2+4\phi_2}}{2}&<&1\\ \Rightarrow -2<\phi_1\pm\sqrt{\phi_1^2+4\phi_2}&<&2 \end{eqnarray*}\]
\(\lambda_i\)-уудын их нь \(\phi_1+\sqrt{\phi_1^2+4\phi_2}<2\): \[\begin{eqnarray*} \phi_1+\sqrt{\phi_1^2+4\phi_2}&<&2\\ \Rightarrow \sqrt{\phi_1^2+4\phi_2}&<&2 - \phi_1\\ \Rightarrow \phi_1^2+4\phi_2&<&(2 - \phi_1)^2\\ \Rightarrow \phi_1^2+4\phi_2&<&4 - 4\phi_1+\phi_1^2\\ \Rightarrow \phi_2&<&1 - \phi_1 \end{eqnarray*}\] Үүнтэй адилаар \(\phi_2<1 + \phi_1\).
Хэрэв \(\lambda_i\)-ууд комплекс тоонууд бол \[\lambda_{1,2} = \phi_1/2\pm i\sqrt{\phi_1^2+4\phi_2}/2.\]
Комплекс тооны абсолют утга нь бодит хэсэг, хуурмаг хэсгийн квадратуудын нийлбэрийн язгуур байдаг. Hence, \[|\lambda|^2 = (\phi_1/2)^2 - \left(\sqrt{\phi_1^2+4\phi_2}/2\right)^2 = \phi_1^2/4+(\phi_1^2+4\phi_2)/4 = -\phi_2.\] Иймд стационарь байхын тулд \(|\phi_2|<1\) буюу \(-\phi_2<1\) or \(\phi_2>1\). Дээрх тодорхойлогдох мужуудыг графикт дүрсэлбэл доорх гурвалжингийн дотоод хэсэг болно.
Дурын урвуутай матриц \(А(p\times p)\)-ийн хувьд \[\phi_1 y_{t-1}+\cdots+\phi_py_{t-p}= \overbrace{ \begin{bmatrix} \phi_1&\dots \phi_{p} \end{bmatrix} }^{\boldsymbol \phi'} \underbrace{ \begin{bmatrix} y_{t-1} \\ \dots \\ y_{t-p} \end{bmatrix}}_{\boldsymbol y_{t-1}} =\boldsymbol \phi' A^{-1}A \boldsymbol y_{t-1} \] \((p\times p)\) матриц \(A\)-г \[A= \begin{bmatrix} 1 & 0 & \dots & 0 & 0 \\ 1 & -1 & \dots & 0 & 0 \\ 0 & 1 & \dots & 0 & 0 \\ \dots & \dots & \dots & \dots &\dots \\ 0 & 0 & \dots & 1 & -1 \end{bmatrix} \] гэж тодорхойлбол
\[A^{-1}= \begin{bmatrix} 1 & 0 & \dots & 0 & 0 \\ 1 & -1 & \dots & 0 & 0 \\ 1& -1 & \dots & 0 & 0 \\ \dots & \dots & \dots & \dots &\dots \\ 1 & -1 & \dots & -1 & 0 \\ 1 & -1 & \dots & -1 & -1 \end{bmatrix} \]
library(dplyr)##
## Attaching package: 'dplyr'
##
## The following objects are masked from 'package:stats':
##
## filter, lag
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
ic <- function(y, X){
k <- if(is.vector(X)){1}else{ncol(X)}
b <- solve(crossprod(X), crossprod(X, y))
rss <- mean((y - X%*%b)^2)
aic = log(rss) + (k*2/length(y));
bic = log(rss) + (k*log(length(y))/length(y))
return(c(aic, bic))
}
sim <- function(nrep, n){
out <- matrix(NA, nrow=nrep, ncol=2)
for(i in 1:nrep){
y <- arima.sim(model=list(ar = c(0.1, 0.1, 0.1, 0.1)), n)
z <- embed(y, 9)
y <- z[, 1]
X <- z[, -1]
s <- sapply(1:8, function(i)ic(y, X[,1:i]))
out[i, ] <- apply(s, 1, which.min)
}
df <- setNames(data.frame(n=n, t(colMeans(out==4))), c("n", "AIC", "BIC"))
df
}
bigTs <- c(50, 100, 5000)
lapply(bigTs, function(i) sim(1000, i)) %>% bind_rows## Source: local data frame [3 x 3]
##
## n AIC BIC
## (dbl) (dbl) (dbl)
## 1 50 0.065 0.006
## 2 100 0.122 0.019
## 3 5000 0.755 0.997
\(T\) өсөх тусам сонгох магадлал нэмэгдэж байна. \(BIC\) эрс нийцтэй нь харагдах боловч түүврийн тоо их байхыг шаардана. Дундаж хэмжээний (moderate size) түүвэрт AIC арай илүү.
ar1sim <- function(n, phi){
e <- rnorm(n)
if(phi<1){
arima.sim(list(ar=phi), n=1000, innov=e)
}else{
cumsum(rnorm(n))
}
}
sim <- function(n, nsim, phi){
tval <- rep(NA, nsim)
for(i in 1:nsim){
y <- ar1sim(n, phi)
x <- y[-n]
y <- y[-1]
phi_hat <- sum(x*y)/sum(x^2)
s2 <- mean((y - x*phi_hat)^2)
Omega <- s2/sum(x^2)
tval[i] <- (phi_hat-phi)/sqrt(Omega)
}
tval
}
tvals06 <- sim(n=1000, nsim=10000, phi=0.6)
hist(tvals06, freq = FALSE)a <- c(0.025, 0.05, 0.1, 0.9, 0.975)
quantile(tvals06, a)## 2.5% 5% 10% 90% 97.5%
## -1.967717 -1.661327 -1.301416 1.275872 1.917010
qnorm(a)## [1] -1.959964 -1.644854 -1.281552 1.281552 1.959964
tvals1 <- sim(n=1000, nsim=10000, phi=1.0)
hist(tvals1, freq = FALSE)quantile(tvals1, a)## 2.5% 5% 10% 90% 97.5%
## -2.2243562 -1.9474836 -1.6302291 0.8500878 1.5850808
Dickey-Fuller-ийн критик утгуудыг ийм байдлаар симуляци хийж болно.