Learn R Programming

tsDyn (version 0.7-60)

SETAR: Self Threshold Autoregressive model

Description

Self Exciting Threshold AutoRegressive model.

Usage

setar(x, m, d=1, steps=d, series, mL=m, mH=m, thDelay=0, th,
trace=FALSE,include = c( "const", "trend","none", "both"),
common=FALSE, model=c("TAR", "MTAR"), ML=seq_len(mL), MH=seq_len(mH),nthresh=1,trim=0.15,
 type=c("level", "diff", "ADF"), restriction=c("none","OuterSymAll","OuterSymTh") )

setar(x, m, d=1, steps=d, series, mL=m, mH=m, mTh, th, trace=FALSE,include = c( "const", "trend","none", "both"), common=FALSE, model=c("TAR", "MTAR"), ML=seq_len(mL), MH=seq_len(mH),nthresh=1,trim=0.15, type=c("level", "diff", "ADF"), restriction=c("none","OuterSymAll","OuterSymTh") )

setar(x, m, d=1, steps=d, series, mL=m, mH=m, thVar, th, trace=FALSE,include = c( "const", "trend","none", "both"), common=FALSE, model=c("TAR", "MTAR"), ML=seq_len(mL), MH=seq_len(mH),nthresh=1,trim=0.15, type=c("level", "diff", "ADF"), restriction=c("none","OuterSymAll","OuterSymTh") )

Arguments

x
time series
m, d, steps
embedding dimension, time delay, forecasting steps
series
time series name (optional)
mL,mH
autoregressive order for low (mL) middle (mM, only useful if nthresh=2) and high (mH)regime (default values: m). Must be <=m. alternatively,="" you="" can="" specify="" ML
thDelay
'time delay' for the threshold variable (as multiple of embedding time delay d)
mTh
coefficients for the lagged time series, to obtain the threshold variable
thVar
external threshold variable
th
threshold value (if missing, a search over a resonable grid is tried)
trace
should additional infos be printed? (logical)
include
Type of deterministic regressors to include
common
Indicates which elemenst are common to all regimes: no, only the include variables, the lags or both
ML,MH
vector of lags for order for low (ML) middle (MM, only useful if nthresh=2) and high (MH)regime. Max must be
model
Currently not implemented
nthresh
Number of threshold of the model
trim
trimming parameter indicating the minimal percentage of observations in each regime. Default to 0.15
type
Whether the variable is taken is level, difference or a mix (diff y= y-1, diff lags) as in the ADF test
restriction
Restriction on the threshold. OuterSymAll will take a symmetric threshold and symmetric coefficients for outer regimes. OuterSymTh currently unavailable
...
further arguments to be passed to nlar

Value

  • An object of class nlar, subclass setar

synopsis

setar(x, m, d=1, steps=d, series, mL, mM, mH, thDelay=0, mTh, thVar, th, trace=FALSE, nested=FALSE, include = c( "const", "trend","none", "both"), common=c("none", "include","lags", "both"), model=c("TAR", "MTAR"), ML=seq_len(mL), MM=seq_len(mM), MH=seq_len(mH),nthresh=1,trim=0.15, type=c("level", "diff", "ADF"), restriction=c("none","OuterSymAll","OuterSymTh") )

Details

Self Exciting Threshold AutoRegressive model.

$$X_{t+s} = x_{t+s} = ( \phi_{1,0} + \phi_{1,1} x_t + \phi_{1,2} x_{t-d} + \dots + \phi_{1,mL} x_{t - (mL-1)d} ) I( z_t \leq th) + ( \phi_{2,0} + \phi_{2,1} x_t + \phi_{2,2} x_{t-d} + \dots + \phi_{2,mH} x_{t - (mH-1)d} ) I(z_t > th) + \epsilon_{t+steps}$$

with z the treshold variable. The threshold variable can alternatively be specified by (in that order): [object Object],[object Object],[object Object] For fixed th and threshold variable, the model is linear, so phi1 and phi2 estimation can be done directly by CLS (Conditional Least Squares). Standard errors for phi1 and phi2 coefficients provided by the summary method for this model are taken from the linear regression theory, and are to be considered asymptoticals.

References

Non-linear time series models in empirical finance, Philip Hans Franses and Dick van Dijk, Cambridge: Cambridge University Press (2000).

Non-Linear Time Series: A Dynamical Systems Approach, Tong, H., Oxford: Oxford University Press (1990).

See Also

plot.setar for details on plots produced for this model from the plot generic.

Examples

Run this code
#fit a SETAR model, with threshold as suggested in Tong(1990, p 377)
mod.setar <- setar(log10(lynx), m=2, thDelay=1, th=3.25)
mod.setar
summary(mod.setar)

if(require(FinTS)) {
	data(m.unrate)
	setar(diff(m.unrate), ML=c(2,3,4,12), MH=c(2,4,12), th=0.1, include="none")
}

Run the code above in your browser using DataLab