[R] Arima bug?
    rkevinburton at charter.net 
    rkevinburton at charter.net
       
    Fri Feb 20 00:26:22 CET 2009
    
    
  
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)
If p (the length of the phi vector) is greater than one then it looks like the code is trying to assign a vector to a single element which will generate an error in 'R'. Much like
x <- 1:3
x[1] <- 1:3
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. If this is not the case then it seems that this is a bug in the arima code.
Comments?
Kevin
    
    
More information about the R-help
mailing list