Estimate the FARMA operators
estimate_operators.RdEstimates the operators of a FARMA(p, q) model by the functional
Hannan-Rissanen method of Kuenzer (2024). The curves are assumed to be
short-memory, so long-memory curves need to be fractionally differenced
first, for example with frac_diff(). farfima() does this on the centred
training curves and drops the first trim before estimating the operators.
Usage
estimate_operators(x, order, Npc = 1)
# S3 method for class 'farfima_operators'
plot(
x,
argvals = NULL,
xlab = "Grid point v",
ylab = "Grid point u",
main = NULL,
...
)Arguments
- x
A matrix of short-memory curves (grid points by time) or an
ftsobject. Forplot(), afarfima_operatorsobject.- order
FARMA orders
c(p, q), or a result ofselect_order().- Npc
Number of principal components in the dimension reduction of the Hannan-Rissanen method.
- argvals
Grid values. Defaults to the row names of the curves if numeric.
- xlab, ylab, main
Axis labels and title.
- ...
Other arguments passed to
graphics::image().
Value
An object of class farfima_operators with order, the AR and MA
operators phi and theta (grid by grid by lag, NULL when the order is
zero), and the one-step-ahead in-sample fitted curves and residuals.
Printing it shows the norm of each operator.
Details
Each operator is stored as a grid by grid matrix, the kernel times the grid
spacing, so that applying the operator to a curve is a matrix product.
plot() draws the operators as heatmaps, red for positive and blue for
negative values.
The estimation code is adapted from code by Thomas Kuenzer.
Examples
x = sim_farfima(n = 300, d = 0, p = 1, q = 1, seed = 1)
op = estimate_operators(x, order = c(1, 1))
op
#> FARMA(1, 1) operators
#> Data: 101 grid points x 300 curves
#> Operators: functional Hannan-Rissanen estimator with 1 principal component
#> Norms: AR lag 1 = 0.623, MA lag 1 = 0.599
plot(op)