# llar: Locally linear model In tsDyn: Nonlinear Time Series Models with Regime Switching

## Description

Casdagli test of nonlinearity via locally linear forecasts

## Usage

 ```1 2 3 4 5 6 7 8``` ```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) ```

## Arguments

 `x` time series `m, d, steps` embedding dimension, time delay, forecasting steps `series` time series name (optional) `n.ahead` n. of steps ahead to forecast `eps.min, eps.max` min and max neighbourhood size `neps` number of neighbourhood levels along which iterate `eps` neighbourhood size `onvoid` what to do in case of an isolated point: stop or enlarge neighbourhood size by an r% `r` if an isolated point is found, enlarge neighbourhood window by r% `trace` tracing level: 0, 1 or more than 1 for `llar`, 0 or 1 for `llar.forecast`

## Details

`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.

## Value

`llar` gives an object of class 'llar'. I.e., a list of components:

 `RMSE` vector of relative errors `eps` vector of neighbourhood sizes (in the same order of RMSE) `frac` vector of fractions of the time series used for RMSE computation `avfound` 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.

## Warning

For long time series, this can be slow, especially for relatively big neighbourhood sizes.

## Note

The C implementation was re-adapted from that in the TISEAN package ("ll-ar" routine, see references). However, here the euclidean norm is used, in place of the max-norm.

## Author(s)

Antonio, Fabio Di Narzo

## References

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)

## Examples

 ```1 2 3 4 5 6 7 8``` ```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) ```

tsDyn documentation built on May 29, 2017, 10:48 a.m.