Unit 19 Psi weights with AR models:
\[\psi_0 = 1\] \[\psi_1 = \phi_1\] \[\psi_2 = \phi_1 \psi_1 +\phi_2\] \[\psi_3 = \phi_1 \psi_2 + \phi_2 \psi_1 + \phi_3\] \[\psi_\ell = \sum_{i =1} ^p \phi_i \psi_{\ell - i}\]
multfun <- function(phi, l, psi) {
sum(phi[1:l] * psi[1:l])
}
phitest <- function(phi, l) {
if (l > length(phi)) {
return(append(phi, rep(0, l - length(phi))))
} else {
return(phi)
}
}
arpsiweights <- function(phi, theta = as.numeric(0), l) {
phi <- phitest(phi, l)
psi <- as.numeric(1)
for (i in 2:l) {
psi[i] <- multfun(phi, i - 1, rev(psi))
}
psi
}
19.1 Psi weights for ARMA
\[\psi_0 = 1\] \[\psi_1 = \phi_1 - \theta_1\] \[\psi_2 = \phi_1 \psi_1 +\phi_2 - \theta_2\] \[\psi_3 = \phi_1 \psi_2 + \phi_2 \psi_1 + \phi_3 -theta_3\] \[\psi_\ell = \sum_{i =1} ^p \phi_i \psi_{\ell - i} - \theta_i\]
psiweights <- function(phi, theta = as.numeric(0), l) {
phi <- phitest(phi, l)
psi <- as.numeric(1)
theta <- c(0, theta)
theta <- phitest(theta, l)
for (i in 2:l) {
psi[i] <- multfun(phi, i - 1, rev(psi)) - theta[i]
}
psi
}