rkevinburton at charter.net wrote:> I was looking at the 'R' code associated with arima. I see the
following:
> 
>     upARIMA <- function(mod, phi, theta) {
>         p <- length(phi)
>         q <- length(theta)
>         mod$phi <- phi
>         mod$theta <- theta
>         r <- max(p, q + 1)
>         if (p > 0) 
>             mod$T[1:p, 1] <- phi
>         if (r > 1) 
>             mod$Pn[1:r, 1:r] <- .Call(R_getQ0, phi, theta)
>         else if (p > 0) 
>             mod$Pn[1, 1] <- 1/(1 - phi^2)
>         else mod$Pn[1, 1] <- 1
>         mod$a[] <- 0
>         mod
>     }
>  
> 
> In particular the statement:
> 
>        else if (p > 0) 
>             mod$Pn[1, 1] <- 1/(1 - phi^2)
....
> 
> So I was wondering if there is something that I am missing that will
"guarantee" that the length of the phi vector in this case is always
1.
There is. You are only getting there if r > 1 is FALSE, and by the 
definition of r, that can only happen if q==0 and (p==0 or p==1).
-- 
    O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
   c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907