acfrob.filter: Robust Autocorrelation Estimation Based on Robust Filtering

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

Robustly estimates the autocorrelation function of a time series based on the robust filter algorithm. See Dürre et al. (2015) for details.

This function is intended for internal usage only. Users should rather use the wrapper function acfrob with argument approach = "filter".

Usage

1
2
3
acfrob.filter(x, lag.max, order.max = lag.max, robfil.method = c("filtered", "ar"),
              aic = TRUE, aicpenalty=function(p) {2*p}, psi.l = 2, psi.0 = 3,
              partial = FALSE)

Arguments

x

univariate numeric vector or time series object.

lag.max

integer value giving the maximum lag at which to calculate the acf.

order.max

integer value determining the (maximal) order of the AR fit.

robfil.method

character string indicating whether the acf is calculated based on the empirical acf using robustly filtered values (robfil.method = "filtered") or based on an AR fit (robfil.method = "ar").

aic

logical indicating whether the AR order should be estimated by robust AIC criteria considering orders up to order.max or should be equal to order.max.

aicpenalty

function of the model order, indicating the penalty for a larger model.

psi.l

numeric value determining the used psi function, see Details.

psi.0

numeric value determining the used psi function, see Details.

partial

logical indicating whether the function should return the partial acf instead of the acf.

Details

The function estimates the acf using the robust filter algorithm, which is a kind of robust Kalman filter, as described in chapter 8 of Maronna et al. (2006). The method fits AR models of increasing order by a robust version of the Durbin Levinson algorithm. The AR coefficients are estimated by minimizing a robust scale (scaleTau2) of one step ahead residuals of robustly filtered predictors. The filtering process depends on the psi function and respects the estimated dependence structure of the time series. The order of the AR process can be determined by the argument order.max if one chooses aic = FALSE or estimated by a robust AIC criterion if aic = TRUE. In this case order.max represents the maximal possible AR order.

There are two possibilities to derive an acf estimation:

If robfil.method = "filtered", one calculates the usual empirical acf from the robustly filtered time series/predictors.

If robfil.method = "ar", one calculates the acf by the estimated AR coefficients using the function ARMAacf.

A psi function which is two times continuous differentiable is used here, see Dürre et al. (2015) for a formal definition. The form depends on the tuning parameters psi.l and psi.0, see the help page of ARfilter for more details.

More details can be found in Maronna et al. (2006), Dürre et al. ( 2015) and the help page of the subroutine ARfilter.

Value

A named list of the following elements:

acfvalues

Numeric vector of estimated (partial) autocorrelations at the lags 1,...,lag.max.

are

numeric value giving the asymptotic relative efficiency (ARE) of the estimator as compared to the classical nonrobust estimator, under the assumption that the observations are uncorrelated and from a Gaussian distribution. The ARE is currently not available for this estimation approach and is therefore NA.

Author(s)

Alexander Dürre, Tobias Liboschik and Jonathan Rathjens

References

Dürre, A., Fried, R. and Liboschik, T. (2015): Robust estimation of (partial) autocorrelation, Wiley Interdisciplinary Reviews: Computational Statistics, vol. 7, 205–222, doi: 10.1002/wics.1351.

Maronna, R., Martin, D. and Yohai, V. (2006): Robust statistics, Wiley, Chichester, doi: 10.1002/0470010940.

See Also

The wrapper function acfrob.

Alternative acf subroutines: acfrob.GK, acfrob.multi, acfrob.partrank, acfrob.RA, acfrob.rank, acfrob.bireg, acfrob.trim.

The subroutine ARfilter.

Examples

1
2
3
set.seed(1066)
tss <- arima.sim(model = list(ar = 0.3, ma = 0.5), n = 100)
acfrob(tss, approach = "filter", order.max = 5)

robts documentation built on May 2, 2019, 4:55 p.m.