Unit 19 Psi weights with AR models:
ψ0=1 ψ1=ϕ1 ψ2=ϕ1ψ1+ϕ2 ψ3=ϕ1ψ2+ϕ2ψ1+ϕ3 ψℓ=p∑i=1ϕiψℓ−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
ψ0=1 ψ1=ϕ1−θ1 ψ2=ϕ1ψ1+ϕ2−θ2 ψ3=ϕ1ψ2+ϕ2ψ1+ϕ3−theta3 ψℓ=p∑i=1ϕiψℓ−i−θ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
}