R: Nested reduced-rank autoregressive models for multiple time...

rrar {VGAM} | R Documentation

## Nested reduced-rank autoregressive models for multiple time series

### Description

Estimates the parameters of a nested reduced-rank autoregressive model for multiple time series.

### Usage

    rrar(Ranks = 1, coefstart = NULL)

### Arguments

`Ranks` | Vector of integers: the ranks of the model. Each value must be at least one and no more than `M`, where `M` is the number of response variables in the time series. The length of `Ranks` is the lag, which is often denoted by the symbol L in the literature.
`coefstart` | Optional numerical vector of initial values for the coefficients. By default, the family function chooses these automatically.

### Details

Full details are given in Ahn and Reinsel (1988). Convergence may be very slow, so setting `maxits = 50`, say, may help. If convergence is not obtained, you might like to try inputting different initial values.

Setting `trace = TRUE` in `vglm` is useful for monitoring the progress at each iteration.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm` and `vgam`.

### Note

This family function should be used within `vglm` and not with `rrvglm` because it does not fit into the RR-VGLM framework exactly. Instead, the reduced-rank model is formulated as a VGLM!

A methods function `Coef.rrar`, say, has yet to be written. It would return the quantities `Ak1`, `C`, `D`, `omegahat`, `Phi`, etc. as slots, and then `show.Coef.rrar` would also need to be written.

### Author(s)

T. W. Yee

### References

Ahn, S. and Reinsel, G. C. (1988) Nested reduced-rank autoregressive models for multiple time series. Journal of the American Statistical Association, 83, 849–856.

### See Also

`vglm`, `grain.us`.

### Examples

    ## Not run:
    year <- seq(1961 + 1/12, 1972 + 10/12, by = 1/12)
    par(mar = c(4, 4, 2, 2) + 0.1, mfrow = c(2, 2))
    for (ii in 1:4) {
      plot(year, grain.us[, ii], main = names(grain.us)[ii], las = 1,
           type = "l", xlab = "", ylab = "", col = "blue")
      points(year, grain.us[, ii], pch = "*", col = "blue")
    }
    apply(grain.us, 2, mean)  # mu vector
    cgrain <- scale(grain.us, scale = FALSE)  # Center the time series only
    fit <- vglm(cgrain ~ 1, rrar(Ranks = c(4, 1)), trace = TRUE)
    summary(fit)

    print(fit@misc$Ak1, digits = 2)
    print(fit@misc$Cmatrices, digits = 3)
    print(fit@misc$Dmatrices, digits = 3)
    print(fit@misc$omegahat, digits = 3)
    print(fit@misc$Phimatrices, digits = 2)

    par(mar = c(4, 4, 2, 2) + 0.1, mfrow = c(4, 1))
    for (ii in 1:4) {
      plot(year, fit@misc$Z[, ii], main = paste("Z", ii, sep = ""),
           type = "l", xlab = "", ylab = "", las = 1, col = "blue")
      points(year, fit@misc$Z[, ii], pch = "*", col = "blue")
    }

    ## End(Not run)

[Package VGAM version 1.0-3 Index]