rrar {VGAM} | R Documentation |
Estimates the parameters of a nested reduced-rank autoregressive model for multiple time series.
rrar(Ranks = 1, coefstart = NULL)
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. |
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.
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
and vgam
.
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 print.Coef.rrar
would also need to be
written.
T. W. Yee
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.
Documentation accompanying the VGAM package at http://www.stat.auckland.ac.nz/~yee contains further information and examples.
## Not run: data(usagrain) 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(i in 1:4) { plot(year, usagrain[,i], main=names(usagrain)[i], type="l", xlab="", ylab="") points(year, usagrain[,i], pch="*") } apply(usagrain, 2, mean) # mu vector cgrain = scale(usagrain, scale=FALSE) # Center the time series only fit = vglm(cgrain ~ 1, rrar(Ranks=c(4,1)), trace=TRUE) summary(fit) print(fit@misc$Ak1, dig=2) print(fit@misc$Cmatrices, dig=3) print(fit@misc$Dmatrices, dig=3) print(fit@misc$omegahat, dig=3) print(fit@misc$Phimatrices, dig=2) par(mar=c(4,4,2,2)+0.1, mfrow=c(4,1)) for(i in 1:4) { plot(year, fit@misc$Z[,i], main=paste("Z", i, sep=""), type="l", xlab="", ylab="") points(year, fit@misc$Z[,i], pch="*") } ## End(Not run)