Casdagli test of nonlinearity via locally linear forecasts
llar(x, m, d = 1, steps = d, series, eps.min = sd(x)/2,
eps.max = diff(range(x)), neps = 30, trace = 0)llar.predict(x, m, d=1, steps=d, series, n.ahead=1,
eps=stop("you must specify a window value"),
onvoid=c("fail","enlarge"), r = 20, trace=1)
llar.fitted(x, m, d=1, steps=d, series, eps, trace=0)
time series
embedding dimension, time delay, forecasting steps
time series name (optional)
n. of steps ahead to forecast
min and max neighbourhood size
number of neighbourhood levels along which iterate
neighbourhood size
what to do in case of an isolated point: stop or enlarge neighbourhood size by an r%
if an isolated point is found, enlarge neighbourhood window by r%
tracing level: 0, 1 or more than 1 for llar
, 0 or
1 for llar.forecast
llar
gives an object of class 'llar'. I.e., a list of components:
vector of relative errors
vector of neighbourhood sizes (in the same order of RMSE)
vector of fractions of the time series used for RMSE computation
vector of average number of neighbours for each point in the time series
which can be plotted using the plot
method, and transformed to a regular data.frame
with the as.data.frame
function.
Function llar.forecast gives the vector of n steps ahead locally linear iterated forecasts.
Function llar.fitted gives out-of-sample fitted values from locally linear models.
For long time series, this can be slow, especially for relatively big neighbourhood sizes.
llar
does the Casdagli test of non-linearity. Given the embedding state-space (of dimension m
and time delay d
) obtained from time series series
, for a sequence of distance values eps
, the relative error made by forecasting time series values with a linear autoregressive model estimated on points closer than eps
is computed.
If minimum error is reached at relatively small length scales, a global linear model may be inappropriate (using current embedding parameters).
This was suggested by Casdagli(1991) as a test for non-linearity.
llar.predict
tries to extend the given time series by
n.ahead
points by iteratively
fitting locally (in the embedding space of dimension m and time delay d)
a linear model. If the spatial neighbourhood window is too small, your
time series last point would be probably isolated. You can ask to
automatically enlarge the window eps
by a factor of r%
sequentially, until enough neighbours are found for fitting the linear
model.
llar.fitted
gives out-of-sample fitted values from locally linear
models.
M. Casdagli, Chaos and deterministic versus stochastic nonlinear modelling, J. Roy. Stat. Soc. 54, 303 (1991)
Hegger, R., Kantz, H., Schreiber, T., Practical implementation of nonlinear time series methods: The TISEAN package; CHAOS 9, 413-435 (1999)
# NOT RUN {
res <- llar(log(lynx), m=3, neps=7)
plot(res)
x.new <- llar.predict(log(lynx),n.ahead=20, m=3, eps=1, onvoid="enlarge", r=5)
lag.plot(x.new, labels=FALSE)
x.fitted <- llar.fitted(log(lynx), m=3, eps=1)
lag.plot(x.fitted, labels=FALSE)
# }
Run the code above in your browser using DataLab