Introduction
This example follows the empirical example found in Hansen (1996) and estimates a threshold model for quarterly GNP growth rates. The data file "gnp.dat" contains seasonable adjusted GNP for 1947 to 1990 and is transformed into annualized quarterly growth rates.
Load data
This example loads the data using the GAUSS function loadd
. The function loadd
utilizes the GAUSS formula string syntax and allows users to load and transform specific variables directly from the dataset.
new;
library tsmt;
/*
** Real GNP data
** Seasonally adjusted and transformed in annualized quarterly growth rates
** 1947-1990
*/
// Load 'real_gnp' variable and perform 'ln' transformation
dataset = getGAUSSHome() $+ "pkgs/tsmt/examples/gnp_4790.csv";
ln_gnp = loadd(dataset, "ln(real_gnp)");
y = (ln_gnp[2:rows(ln_gnp)] - ln_gnp[1:rows(ln_gnp)-1]) * 400;
Set Up the Estimation
The tarControl
structure is used to control the model characteristics. This includes the number of lags considered, which lags to omit from the test, the number of replications, and graph features:
// Declare the structure
struct tarControl t_ctl;
// Fill 't_ctl' with default settings
t_ctl = tarControlCreate();
// Maximum number of lags considered
t_ctl.p = 5;
// Lags to omit from the test
// Consider lags 1, 2 and 5
t_ctl.omit = { 3 4 };
// Number of replications for Monte Carlo
t_ctl.rep = 5000;
// Data start date and frequency
t_ctl.dstart = 1947;
t_ctl.freq = 4;
Estimate the Model
All output from the tarTest
function can be stored in a tarOut
output structure.
// Declare 't_out' to be a tarOut structure
// to hold the estimation results
struct tarOut t_out;
// Perform estimation
t_out = tarTest(y, t_ctl);
Output
The printed output from tarTest
reads
OLS Estimation of Null Linear Model Variable Estimate S.E. C 1.99225488 0.59341810 Y(t-1) 0.31753696 0.08929921 Y(t-2) 0.13197878 0.08801236 Y(t-5) -0.08696297 0.06763670 Residual Variance 15.9605 Searching over Threshold Variable: 1 Searching over Threshold Variable: 2 Searching over Threshold Variable: 3 Global Estimates Threshold Variable Lag 2.0000 Threshold Estimate 0.0126 Error Variance 14.5484 Regime 1: Y(t-2) < 0.012572 Variable Estimate S.E. C -3.21255539 2.12039565 Y(t-1) 0.51278104 0.24699822 Y(t-2) -0.92692272 0.30831951 Y(t-5) 0.38445656 0.24603002 Regime 1 Error Variance 23.5331 Regime 2: Y(t-2) > 0.012572 Variable Estimate S.E. C 2.14186153 0.77389336 Y(t-1) 0.30085440 0.10132777 Y(t-2) 0.18484356 0.10131018 Y(t-5) -0.15813482 0.07335517 Regime 2 Error Variance 12.1430 Test Statistics and Estimated Asymptotic P-Values Robust LM Statistics SupLM 14.06847762 0.17300000 ExpLM 3.96481133 0.16720000 AveLM 4.68986250 0.29240000 Standard LM Statistics SupLMs 18.24477743 0.94920000 ExpLMs 4.77627149 0.94760000 AveLMs 4.57209118 0.88940000
In addition, the procedure produces the graph at the top of this page and the two below.