Simulation and bootstrap of Threshold Autoregressive model
Simulate or bootstrap a Threshold VAR
setar.sim(data, B, setarObject, n = 200, lag = 1, trend = TRUE,
nthresh = 0, thDelay = 0, Thresh, type = c("boot", "simul", "check"),
starting = NULL, rand.gen = rnorm, innov = rand.gen(n))data |
univariate time series |
B |
vector of coefficients to simulate |
setarObject |
Object of class linear or setar to be bootstrapped |
n |
Number of observations to create when type="simul" |
lag |
Number of lags to include in each regime |
trend |
If a trend should be included in the model |
nthresh |
number of threshold (see details) |
thDelay |
'time delay' for the threshold variable (as multiple of embedding time delay d). |
Thresh |
The threshold value(s). Vector of length nthresh |
type |
Whether a bootstrap or simulation is to employ. See details |
starting |
Starting values when a simulation with given parameter matrix is made |
rand.gen |
optional: a function to generate the innovations. |
innov |
an optional times series of innovations. If not provided,
|
This function offers the possibility to generate series following a TAR from two approaches: bootstrap or simulation. When the data is given, one can use a simple residual bootstrap or simulate a series from the parameter matrix and with normal distributed residuals (with variance pre-specified). The choice "check" is just there to check the function: one should obtain the same values as the given values. Please report if different. When the parameter matrix is given, there is only the possibility to simulate series. The starting values (of length equal to the number of lags) can be given. The user should take care for the choice of the starting values and parameters values, since it is not sure that the simulated values will cross the threshold even once.
a list with the simulated/bootstraped data and the parameter matrix used.
Matthieu Stigler
##Simulation of a TAR with 1 threshold TvarMat <- c(2.9,-0.4,-0.1,-1.5, 0.2,0.3) sim<-setar.sim(B=TvarMat,lag=2, type="simul", nthresh=1, Thresh=2, starting=c(2.8,2.2))$serie mean(ifelse(sim>2,1,0)) #approximation of values over the threshold #check the result selectSETAR(sim, m=2) ##Bootstrap a TAR with two threshold (three regimes) sun<-(sqrt(sunspot.year+1)-1)*2 setar.sim(data=sun,nthresh=2,n=500, type="boot", Thresh=c(6,9))$serie ##Check the bootstrap cbind(setar.sim(data=sun,nthresh=2,n=500, type="check", Thresh=c(6,9))$serie,sun)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.