iARFIMA {arfima} | R Documentation |
The Fisher information matrix of an ARFIMA process
Description
Computes the approximate or (almost) exact Fisher information matrix of an ARFIMA process
Usage
iARFIMA(
phi = numeric(0),
theta = numeric(0),
phiseas = numeric(0),
thetaseas = numeric(0),
period = 0,
dfrac = TRUE,
dfs = FALSE,
exact = TRUE
)
Arguments
phi |
The autoregressive parameters in vector form. |
theta |
The moving average parameters in vector form. See Details for
differences from |
phiseas |
The seasonal autoregressive parameters in vector form. |
thetaseas |
The seasonal moving average parameters in vector form. See
Details for differences from |
period |
The periodicity of the seasonal components. Must be >= 2. |
dfrac |
TRUE if we include the fractional d parameter, FALSE otherwise |
dfs |
TRUE if we include the seasonal fractional d parameter, FALSE otherwise |
exact |
If FALSE, calculate the approximate information matrix via psi-weights. Otherwise the (almost) exact information matrix will be calculated. See "Details". |
Details
The matrices are calculated as outlined in Veenstra and McLeod (2012), which draws on many references. The psi-weights approximation has a fixed maximum lag for the weights as 2048 (to be changed to be adaptable.) The fractional difference(s) by AR/MA components have a fixed maximum lag of 256, also to be changed. Thus the exact matrix has some approximation to it. Also note that the approximate method takes much longer than the "exact" one.
The moving average parameters are in the Box-Jenkins convention: they are
the negative of the parameters given by arima
.
Value
The information matrix of the model.
Author(s)
JQ (Justin) Veenstra
References
Veenstra, J.Q. Persistence and Antipersistence: Theory and Software (PhD Thesis)
See Also
Examples
tick <- proc.time()
exactI <- iARFIMA(phi = c(.4, -.2), theta = c(.7), phiseas = c(.8, -.4),
d = TRUE, dfs = TRUE, period = 12)
proc.time() - tick
tick <- proc.time()
approxI <- iARFIMA(phi = c(.4, -.2), theta = c(.7), phiseas = c(.8, -.4),
d = TRUE, dfs = TRUE, period = 12, exact = FALSE)
proc.time() - tick
exactI
max(abs(exactI - approxI))