I'm trying to use the R forecast package to forecast an anti-persistent time-series (assumed to be an ARFIMA(0, d, 0) series, with d somewhat negative, e.g. d = -0.25). The forecast::arfima function limits d to be in the range (0, 0.5). I'm curious whether it's possible to a) transform the series to be long-memory (using e.g. diff(series, -0.5)). b) forecast the transformed series. c) transform the transformed series + forecast back from long-memory to anti-persistent.
E.g., expressed as a R function:
#
Forecast an anti-persistent series, aka one that
is fractionally integrated with d in range -0.5 to 0.
#
lmuForecastAntiPersistentSeries = function(series.V, n.periods, drange=c(-0.5, 0), max.p=0, max.q=0, ...) { # Fractionally integrate series by 0.5 - should transform series # so that it is long-memory, rather than anti-persistent. series.dm50.V = diffseries(series.V, -0.5); arfima.model = arfima(series.dm50.V, drange=drange+0.5, max.p=max.p, max.q=max.q, ...);
# Extract de-noised version of long-memory series. fitted.V = fitted(arfima.model);
# Forecast series, also in long-memory space. forecast.V = forecast(arfima.model, n.periods)[[2]];
# Transform back to being anti-peristent series. total.series.V = c(series.dm50.V, forecast.V); ret.V = diffseries(total.series.V, 0.5);
# Strip off 1st part of series, so that were only # left with the forecast. return(ret.V[-(1:length(series.V))]); }
Does anyone have any good intuition for whether this approach works - and even better, if not, what's wrong with it?
Thank You -mc