Estimate a Threshold Vector Error Correction model (VECM)
TVECM(
data,
lag = 1,
nthresh = 1,
trim = 0.05,
ngridBeta = 50,
ngridTh = 50,
plot = TRUE,
th1 = list(exact = NULL, int = c("from", "to"), around = "val"),
th2 = list(exact = NULL, int = c("from", "to"), around = "val"),
beta = list(exact = NULL, int = c("from", "to"), around = c("val", "by")),
restr = c("none", "equal", "signOp"),
common = c("All", "only_ECT"),
include = c("const", "trend", "none", "both"),
dummyToBothRegimes = TRUE,
beta0 = 0,
methodMapply = FALSE,
trace = TRUE
)
Fitted model data
time series
Number of lags to include in each regime
number of threshold (see details)
trimming parameter indicating the minimal percentage of observations in each regime
number of elements to search for the cointegrating value
number of elements to search for the threshold value
Whether the grid with the SSR of each threshold should be plotted.
different possibilities to pre-specify an exact value, an interval or a central point for the search of the threshold (or first threshold if nthresh=2)
different possibilities to pre-specify an exact value or a central point for the search of the second threshold (used only if nthresh=2)
different possibilities to pre-specify an exact value, an interval or a central point for the search of the cointegrating value
Currently not available
Whether the regime-specific dynamics are only for the ECT or for the ECT and the lags
Type of deterministic regressors to include
Whether the dummy in the one threshold model is applied to each regime or not.
Additional regressors to include in the cointegrating relation
only for programming. Is to make the choice between a for
loop or mapply
implementation
should additional infos be printed? (logical)
Matthieu Stigler
For fixed threshold and cointegrating vector, the model is linear, so estimation of the regression parameters can be done directly by CLS (Conditional Least Squares). The search of the threshold and cointegrating parameters values which minimize the residual sum of squares (SSR) is made on a grid of potential values. For specification of the grids, see below.
The function can estimate one as well as two thresholds:
estimation of one threshold model (two regimes) upon a grid of ngridTh values (default to ALL) possible thresholds and delays values.
estimation of two thresholds model (three regimes). Conditional on the threshold found in model where nthresh=1, the second threshold is searched. When both are found, a second grid search is made with 30 values around each threshold.
The model can be either with a threshold effect on all variables ("All") or only on the error correction term (ECT) (argument "only ECT"). In the second case, the value for the middle threshold is taken a null, as in Balke and Fomby (1997).
The grid for the threshold parameters can be set in different ways, through the argument th1, th2 and beta:
Pre-specified value (for beta: cointegrating vector will be c(1,-beta
))
Specify an interval (of length ngridTh) in which to search.
Specify to take ngridTh points around the value given.
The default is to do an interval search. Interval bounds for the threshold interval are simply the trim and 1-trim percents of the sorted error correction term. For the cointegrating parameter, bounds of the interval are obtained from the (OLS) confidence interval of the linear cointegration case. It is often found however that this interval is too tight. It is hence recommended to inspect the plot of the grid search.
Hansen, B. and Seo, B. (2002), Testing for two-regime threshold cointegration in vector error-correction models, Journal of Econometrics, 110, pages 293 - 318
Seo, M. H. (2009) Estimation of non linear error-correction models, Working paper
VECM
for the linear VECM, TVAR
for the
threshold VAR, TVECM.SeoTest
to test for TVECM,
TVECM.sim
to simulate/bootstrap a TVECM.
data(zeroyld)
##Estimate a TVECM (we use here minimal grid, it should be usually much bigger!)
tvec <- TVECM(zeroyld, nthresh=2,lag=1, ngridBeta=20, ngridTh=30, plot=TRUE,trim=0.05, common="All")
print(tvec)
summary(tvec)
#Obtain diverse infos:
AIC(tvec)
BIC(tvec)
res.tvec<-residuals(tvec)
#export the equations as Latex:
toLatex(tvec)
Run the code above in your browser using DataLab