Identify each of the time–series models with specific (S)ARIMA notation and give the characteristic polynomials
\[ \begin{aligned} (1)\;& X_t = Z_t + 0.2Z_{t-1}\\ (2)\;& X_t = -0.2X_{t-1}+Z_t-2Z_{t-1}\\ (3)\;& X_t = X_{t-1}+Z_t-0.2Z_{t-1}-1.2Z_{t-2}\\ (4)\;& X_t-X_{t-3} = Z_t+0.4Z_{t-1}-0.45Z_{t-2}\\ (5)\;& X_t = 1.5X_{t-1}-0.5X_{t-2}+Z_t-0.3Z_{t-1}\\ (6)\;& X_t = 0.5X_{t-1}+X_{t-4}-0.5X_{t-5}+Z_t-0.3Z_{t-2} \end{aligned} \]
A linear process
\[
\Phi(B^s)\,\phi(B)\,(1-B)^d\,(1-B^s)^D\,X_t
= \Theta(B^s)\,\theta(B)\,Z_t,\qquad
Z_t\sim\text{WN}(0,\sigma_Z^2)
\] is
\[ X_t = \underbrace{\bigl(1+0.2B\bigr)}_{\displaystyle\theta(B)} Z_t, \qquad \phi(B)=1. \]
theta1 <- c(1, 0.2)
Mod(check_roots(theta1)) # modulus of single root
## [1] 0.2
\[ (1+0.2B)X_t=(1-2B)Z_t \]
phi2 <- c(1, 0.2)
theta2 <- c(1, -2 )
tibble(component = c("AR root modulus", "MA root modulus"),
value = c(Mod(check_roots(phi2)),
Mod(check_roots(theta2))))
## # A tibble: 2 × 2
## component value
## <chr> <dbl>
## 1 AR root modulus 0.2
## 2 MA root modulus 2
Factor out one ordinary difference:
\[ (1-B)X_t=(1-0.2B-1.2B^2)Z_t. \]
Thus \(d=1,\;p=0,\;q=2\).
theta3 <- c(1, -0.2, -1.2)
Mod(check_roots(theta3))
## [1] 1.2 1.0
\[ (1-B^3)X_t =(1+0.4B-0.45B^2)Z_t. \]
theta4 <- c(1, 0.4, -0.45)
Mod(check_roots(theta4))
## [1] 0.5 0.9
\[ (1-1.5B+0.5B^2)X_t=(1-0.3B)Z_t \;=\;(1-B)(1-0.5B)X_t. \]
Hence \(d=1,\;p=1,\;q=1\) ⇒ ARIMA(1, 1, 1).
phi5 <- c(1, -1.5, 0.5)
theta5 <- c(1, -0.3)
tibble(component = c(rep("AR root-modulus",2),"MA root-modulus"),
value = c(Mod(check_roots(phi5)),
Mod(check_roots(theta5))))
## # A tibble: 3 × 2
## component value
## <chr> <dbl>
## 1 AR root-modulus 0.5
## 2 AR root-modulus 1
## 3 MA root-modulus 0.3
\[ (1-0.5B)(1-B^4)X_t=(1-0.3B^2)Z_t. \]
phi6 <- c(1, -0.5) # non-seasonal AR(1)
theta6 <- c(1, 0, -0.3) # MA with only B^2 term
tibble(component = c("AR root-modulus",
rep("MA root-modulus",2)),
value = c(Mod(check_roots(phi6)),
Mod(check_roots(theta6))))
## # A tibble: 3 × 2
## component value
## <chr> <dbl>
## 1 AR root-modulus 0.5
## 2 MA root-modulus 0.548
## 3 MA root-modulus 0.548
in general
\[
\Phi(B^{s})\,\phi(B)\,(1-B)^d\,(1-B^{s})^{D}X_t
= \Theta(B^{s})\,\theta(B)\,Z_t,\qquad
Z_t\stackrel{\text{iid}}{\sim}WN(0,\sigma_Z^{2}).
\]
(i) SARIMA \((1,1,0)\times(1,1,2)_{6}\)
w/ parameters
\(p=1,\;d=1,\;q=0,\;P=1,\;D=1,\;Q=2,\;s=6\).
\[ \bigl(1-\phi_1 B\bigr)\bigl(1-\Phi_1 B^{6}\bigr)(1-B)(1-B^{6})X_t = \bigl(1+\Theta_1 B^{6}+\Theta_2 B^{12}\bigr)Z_t. \]
Eliminating \(B\) (write only the first few lags):
\[ X_t - X_{t-1}-X_{t-6}+X_{t-7}\;-\phi_1(\cdots) -\Phi_1(\cdots)+\phi_1\Phi_1(\cdots) = Z_t+\Theta_1Z_{t-6}+\Theta_2Z_{t-12}. \]
(ii) SARIMA \((0,1,1)\times(0,0,3)_{12}\)
Here \(q=1,Q=3,s=12\) and the only differencing is non-seasonal \(d\!=\!1\):
\[ (1-B)X_t = \bigl(1+\theta_1 B\bigr) \bigl(1+\Theta_1 B^{12}+\Theta_2 B^{24}+\Theta_3 B^{36}\bigr)Z_t. \]
(iii) SARIMA \((2,1,2)\times(2,0,1)_{4}\)
\[ \bigl(1-\phi_1 B-\phi_2 B^2\bigr)\,(1-B)\, \bigl(1-\Phi_1 B^{4}-\Phi_2 B^{8}\bigr)X_t = \bigl(1+\theta_1 B+\theta_2 B^2\bigr) \bigl(1+\Theta_1 B^{4}\bigr)Z_t. \]
The expanded equation contains lags \(1,2,4,5,6,8,9,10\) (AR-side) and \(0,1,2,4,5,6\) (MA-side).
\[ \boxed{\text{SARIMA}(0,0,1)\times(0,2,0)_{12}} \]
The MA polynomial is \(1-0.3B\) (root \(3.\overline{3}\) → invertible).
root_tbl <- bind_rows(
root_tbl,
check_roots(c(1, -0.3), "b-i MA(1)")
)
This is a seasonal AR(1) with lag \(s=6\).
\[ (1-0.5B^{6})X_t = Z_t \quad\Longrightarrow\quad \boxed{\text{SARIMA}(0,0,0)\times(1,0,0)_{6}} \]
Root \(2\) ⇒ stationary.
root_tbl <- bind_rows(
root_tbl,
check_roots(c(1, -0.5), "b-ii phi1 (lag-6)")
)
Hence
\[ \boxed{\text{SARIMA}(1,0,1)\times(1,0,0)_{4}} \]
rroot_tbl <- bind_rows(
root_tbl,
check_roots(c(1, -0.8), "b-iii phi1"),
check_roots(c(1, 0, 0, 0, 0.5), "b-iii PHI1 (lag-4)"),
check_roots(c(1, -1.5), "b-iii theta1")
)
For a seasonal AR(2) with period \(s=4\)
\[ (1-\Phi_1 B^{4}-\Phi_2 B^{8})X_t = Z_t, \]
the partial autocorrelation function shows spikes at the first two
seasonal lags (4, 8) and is negligible afterwards.
So the required specification is
\[ \boxed{\text{SARIMA}(0,0,0)\times(2,0,0)_{4}}. \]
root_tbl # print all root mods
## # A tibble: 2 × 3
## model root mod
## <chr> <cpl> <dbl>
## 1 b-i MA(1) 0.3+0i 0.3
## 2 b-ii phi1 (lag-6) 0.5+0i 0.5
All the reported AR roots exceed 1 (stationary) and all MA roots exceed 1 (invertible) and none of the processes violate the invertibility
k1 <- -0.60 # kap_1 = phi_11 = ro=(1)
k2 <- 0.36 # kap_2 = phi_22
phi2 <- k2
phi1 <- k1 - k2 * k1 # Levinson–Durbin step: phi1 = kap1(1 - kap2)
# Characteristic polynomial: 1 - phi1 z - phi2 z^2 = 0
roots_a <- polyroot(c(phi2, phi1, -1)) # coefficients in descending powers
tbl_a <- tibble(model = "AR(2)", root = roots_a, mod = Mod(roots_a))
Because the PACF cuts off after lag 2, the series can be represented by an AR(2) model.
Levinson–Durbin recursion (order 2):
\[ \varphi_2 = \kappa_2 = 0.36,\qquad \varphi_1 = \kappa_1 - \kappa_2\,\kappa_1 = -0.60 \bigl(1-0.36\bigr) = -0.384 . \]
so
\[ X_t = -0.384\,X_{t-1} + 0.36\,X_{t-2} + Z_t,\qquad Z_t\sim{\rm WN}(0,\sigma_Z^{2}). \]
The characteristic roots above both have modulus \(>1\), so the process is stationary
k1b <- 0.5
phi1b <- k1b # AR(1): coefficient equals kap_1
roots_b <- polyroot(c(phi1b, -1)) # phi1 z - 1 = 0
tbl_b <- tibble(model = "AR(1)", root = roots_b, mod = Mod(roots_b))
# Collect results
bind_rows(tbl_a, tbl_b)
## # A tibble: 3 × 3
## model root mod
## <chr> <cpl> <dbl>
## 1 AR(2) 0.4379714-3.805031e-22i 0.438
## 2 AR(2) -0.8219714+3.805031e-22i 0.822
## 3 AR(1) 0.5000000+0.000000e+00i 0.5
The PACF cuts off after lag 1, implying an AR(1) model with coefficient \(\varphi_1 = \kappa_1 = 0.50\):
\[ Y_t = 0.50\,Y_{t-1} + Z_t,\quad Z_t\sim{\rm WN}(0,\sigma_Z^{2}). \]
The single root of the characteristic polynomial is \(z = 2\), so the model is stationary
\[ (B):\;X_t \;=\; Z_t \;-\; \theta_1 Z_{t-1}\;-\; \theta_2 Z_{t-7}\;-\; \theta_3 Z_{t-8}\] is the only model that fits this diescription
J <- c(0, 1, 7, 8)
# roe_X(k) is non-zero ⇔ there exists i,j in J such that |i − j| = k.
non_zero_lags <- sort(unique(abs(outer(J, J, "-"))))
non_zero_lags <- non_zero_lags[non_zero_lags > 0] # drop k = 0
tibble(`lags with non-zero ACF` = non_zero_lags)
## # A tibble: 12 × 1
## `lags with non-zero ACF`
## <dbl>
## 1 1
## 2 1
## 3 1
## 4 1
## 5 6
## 6 6
## 7 7
## 8 7
## 9 7
## 10 7
## 11 8
## 12 8
The set of pairwise separations of the coefficient lags is
\[ \{|i-j| : i,j\in\{0,1,7,8\}\} = \{1,6,7,8\}. \]
Because no other separation occurs, the autocorrelation function satisfies
\[ \rho_X(k)=0\quad\text{for all }k\notin\{1,6,7,8\}. \]
Therefore (B) is the only specification that matches the ACF pattern.