corARMA.RdThis 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