corARMA.Rd
This function is a constructor for the corARMA
class,
representing an autocorrelation-moving average correlation structure
of order (p, q). Objects created using this constructor must later
be initialized using the appropriate Initialize
method.
corARMA(value, form, p, q, fixed)
a vector with the values of the autoregressive and moving
average parameters, which must have length p + q
and all
elements between -1 and 1. Defaults to a vector of zeros,
corresponding to uncorrelated observations.
a one sided formula of the form ~ t
, or ~ t |
g
, specifying a time covariate t
and, optionally, a
grouping factor g
. A covariate for this correlation structure
must be integer valued. When a grouping factor is present in
form
, the correlation structure is assumed to apply only
to observations within the same grouping level; observations with
different grouping levels are assumed to be uncorrelated. Defaults to
~ 1
, which corresponds to using the order of the observations
in the data as a covariate, and no groups.
non-negative integers specifying respectively the autoregressive order and the moving average order of the ARMA structure. Both default to 0, but at least one should be > 0.
an optional logical value indicating whether the
coefficients should be allowed to vary in the optimization, or kept
fixed at their initial value. Defaults to FALSE
, in which case
the coefficients are allowed to vary.
an object of class corARMA
, representing an
autocorrelation-moving average correlation structure.
Box, G.E.P., Jenkins, G.M., and Reinsel G.C. (1994) "Time Series Analysis: Forecasting and Control", 3rd Edition, Holden-Day.
Pinheiro, J.C., and Bates, D.M. (2000) "Mixed-Effects Models in S and S-PLUS", Springer, esp. pp. 236, 397.
## ARMA(1,2) structure, with observation order as a covariate and
## Mare as grouping factor
cs1 <- corARMA(c(0.2, 0.3, -0.1), form = ~ 1 | Mare, p = 1, q = 2)
# Pinheiro and Bates, p. 237
cs1ARMA <- corARMA(0.4, form = ~ 1 | Subject, q = 1)
cs1ARMA <- Initialize(cs1ARMA, data = Orthodont)
corMatrix(cs1ARMA)
#> $M01
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M02
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M03
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M04
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M05
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M06
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M07
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M08
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M09
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M10
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M11
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M12
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M13
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M14
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M15
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $M16
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F01
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F02
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F03
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F04
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F05
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F06
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F07
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F08
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F09
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F10
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
#> $F11
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000000 0.3448276 0.0000000 0.0000000
#> [2,] 0.3448276 1.0000000 0.3448276 0.0000000
#> [3,] 0.0000000 0.3448276 1.0000000 0.3448276
#> [4,] 0.0000000 0.0000000 0.3448276 1.0000000
#>
cs2ARMA <- corARMA(c(0.8, 0.4), form = ~ 1 | Subject, p=1, q=1)
cs2ARMA <- Initialize(cs2ARMA, data = Orthodont)
corMatrix(cs2ARMA)
#> $M01
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M02
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M03
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M04
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M05
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M06
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M07
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M08
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M09
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M10
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M11
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M12
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M13
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M14
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M15
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $M16
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F01
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F02
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F03
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F04
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F05
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F06
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F07
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F08
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F09
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F10
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
#> $F11
#> [,1] [,2] [,3] [,4]
#> [1,] 1.0000 0.880 0.704 0.5632
#> [2,] 0.8800 1.000 0.880 0.7040
#> [3,] 0.7040 0.880 1.000 0.8800
#> [4,] 0.5632 0.704 0.880 1.0000
#>
# Pinheiro and Bates use in nlme:
# from p. 240 needed on p. 396
fm1Ovar.lme <- lme(follicles ~ sin(2*pi*Time) + cos(2*pi*Time),
data = Ovary, random = pdDiag(~sin(2*pi*Time)))
#> Error in solve.default(do.call("cbind", Xcols), apply(shifted, 2, fun, ...)): Lapack routine dgesv: system is exactly singular: U[9,9] = 0
fm5Ovar.lme <- update(fm1Ovar.lme,
correlation = corARMA(p = 1, q = 1))
#> Error: object 'fm1Ovar.lme' not found
# p. 396
fm1Ovar.nlme <- nlme(follicles~
A+B*sin(2*pi*w*Time)+C*cos(2*pi*w*Time),
data=Ovary, fixed=A+B+C+w~1,
random=pdDiag(A+B+w~1),
start=c(fixef(fm5Ovar.lme), 1) )
#> Error: object 'fm5Ovar.lme' not found
# p. 397
fm3Ovar.nlme <- update(fm1Ovar.nlme,
correlation=corARMA(p=0, q=2) )
#> Error: object 'fm1Ovar.nlme' not found