tsVAR
Description
The tsVAR
function returns a
tsVAR
object that specifies the functional form of a threshold-switching dynamic regression
model for the univariate or multivariate response process
yt. The tsVAR
object also
stores the parameter values of the model.
A tsVAR
object has two key components:
The components completely specify the model structure. The threshold transition levels, smooth transition function rates, and submodel parameters, such as the AR coefficients and innovation-distribution variance, are unknown and estimable unless you specify their values.
To estimate a model containing unknown parameter values, pass the model and data to
estimate
. To work with an
estimated or fully specified tsVAR
object, pass it to an object function.
Alternatively, to create a Markov-switching dynamic regression model, which has a
switching mechanism governed by a discrete-time Markov chain, see dtmc
and msVAR
.
Creation
Description
sets some properties using name-value
argument syntax. For example, Mdl
= tsVAR(tt
,mdl
,Name,Value
)tsVAR(tt,mdl,Covariance=Sigma,SeriesNames=["GDP"
"CPI"])
generates all innovations from the covariance matrix
Sigma
and labels the submodel response series
"GDP"
and "CPI"
, respectively.
Input Arguments
mdl
— State-specific dynamic regression submodels
vector of arima
objects | vector of varm
objects
State-specific dynamic regression submodels, specified as a length mc.NumStates
vector of model objects individually constructed by arima
or varm
. All submodels must be of the same type (arima
or varm
) and have the same number of series.
Unlike other model estimation tools, estimate
does not infer the size of submodel regression coefficient arrays during estimation. Therefore, you must specify the Beta
property of each submodel appropriately. For example, to include and estimate three predictors of the regression component of univariate submodel j
, set mdl(
.j
).Beta = NaN(3,1)
tsVAR
processes and stores mdl
in the property
Submodels.
Properties
You can set the Covariance
and SeriesNames
properties when you create a model by using name-value argument syntax. MATLAB® derives the values of all other properties from inputs tt
and mdl
. You can modify only SeriesNames
by using
dot notation.
For example, create a threshold-switching model for a 2-D response series in which all
submodels share the same unknown covariance matrix, and then label the first and second series
"GDP"
and "CPI"
,
respectively.
Mdl = tsVAR(tt,mdl,Covariance=nan(2,2)); Mdl.SeriesNames = ["GDP" "CPI"];
Switch
— Threshold transitions for switching mechanism among states
threshold
object
This property is read-only.
Threshold transitions for the switching mechanism among states, specified as a
threshold
object.
Submodels
— State-specific vector autoregression submodels
vector of varm
objects
This property is read-only.
State-specific vector autoregression submodels, specified as a vector of varm
objects of length NumStates
.
tsVAR
removes unsupported submodel components.
For
arima
submodels,tsVAR
does not support the moving average (MA), differencing, and seasonal components. If any submodel is a composite conditional mean and variance model (for example, itsVariance
property is agarch
object),tsVAR
issues an error.For
varm
submodels,tsVAR
does not support the trend component.
tsVAR
converts submodels specified as arima
objects to 1-D varm
objects.
NumStates
— Number of states
positive scalar
This property is read-only.
Number of states, specified as a positive scalar.
Data Types: double
NumSeries
— Number of time series
positive integer
This property is read-only.
Number of time series, specified as a positive integer. NumSeries
specifies the dimensionality of the response variable and innovation in all submodels.
Data Types: double
StateNames
— State labels
string vector
This property is read-only.
State labels, specified as a string vector of length
NumStates
.
Data Types: string
SeriesNames
— Unique Series labels
string(1:numSeries)
(default) | string vector | cell array of character vectors | numeric vector
Unique series labels, specified as a string vector, cell array of character vectors,
or a numeric vector of length numSeries
.
tsVAR
stores the series names as a string vector.
Data Types: string
Covariance
— Model-wide innovations covariance
[]
(default) | positive numeric scalar | positive semidefinite matrix
Model-wide innovations covariance, specified as a positive numeric scalar for
univariate models or a numSeries
-by-numSeries
positive semidefinite matrix for multivariate models.
If Covariance
is not an empty array ([]
),
object functions of tsVAR
generate all innovations from
Covariance
and ignore submodel covariances.
If Covariance
is []
(the default), object
functions of tsVAR
generate innovations from submodel
covariances.
estimate
does not support
equality constraints on the innovations covariance. estimate
ignores specified entries in Covariance
or in submodel innovations
covariances, and estimates all covariances instead.
Data Types: double
Notes
NaN
-valued elements in either the properties ofSwitch
or the submodels ofSubmodels
indicate unknown, estimable parameters. Specified elements, except submodel innovation variances, indicate equality constraints on parameters in model estimation.All unknown submodel parameters are state dependent.
Object Functions
estimate | Fit threshold-switching dynamic regression model to data |
forecast | Forecast sample paths from threshold-switching dynamic regression model |
simulate | Simulate sample paths of threshold-switching dynamic regression model |
summarize | Summarize threshold-switching dynamic regression model estimation results |
Examples
Create Fully Specified Univariate TAR Model
Create a two-state TAR model for a 1-D response process. Specify all parameter values (this example uses arbitrary values).
Create Switching Mechanism
Create a discrete threshold transition at level 0. Label the regimes to reflect the state of the economy:
When the threshold variable (currently unknown) is in , the economy is in a recession.
When the threshold variable is in , the economy is expanding.
t = 0; tt = threshold(t,StateNames=["Recession" "Expansion"])
tt = threshold with properties: Type: 'discrete' Levels: 0 Rates: [] StateNames: ["Recession" "Expansion"] NumStates: 2
tt
is a fully specified threshold
object that describes the switching mechanism of the threshold-switching model.
Create State-Specific Models for Response Series
Assume the following univariate models describe the response process of the system:
Recession
: where .Expansion
: where .
For each regime, use arima
to create an AR model that describes the response process within the regime.
c1 = -1; c2 = 1; ar1 = 0.1; ar2 = [0.3 0.2]; v1 = 1; v2 = 4; mdl1 = arima(Constant=c1,AR=ar1,Variance=v1, ... Description="Recession State Model")
mdl1 = arima with properties: Description: "Recession State Model" SeriesName: "Y" Distribution: Name = "Gaussian" P: 1 D: 0 Q: 0 Constant: -1 AR: {0.1} at lag [1] SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: 1 ARIMA(1,0,0) Model (Gaussian Distribution)
mdl2 = arima(Constant=c2,AR=ar2,Variance=v2, ... Description="Expansion State Model")
mdl2 = arima with properties: Description: "Expansion State Model" SeriesName: "Y" Distribution: Name = "Gaussian" P: 2 D: 0 Q: 0 Constant: 1 AR: {0.3 0.2} at lags [1 2] SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: 4 ARIMA(2,0,0) Model (Gaussian Distribution)
mdl1
and mdl2
are fully specified arima
objects.
Store the submodels in a vector with order corresponding to the regimes in tt.StateNames
.
mdl = [mdl1; mdl2];
Create Threshold-Switching Model
Use tsVAR
to create a TAR model from the switching mechanism tt
and the state-specific submodels mdl
.
Mdl = tsVAR(tt,mdl)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [2x1 varm] NumStates: 2 NumSeries: 1 StateNames: ["Recession" "Expansion"] SeriesNames: "1" Covariance: []
Mdl.Submodels(2)
ans = varm with properties: Description: "AR-Stationary 1-Dimensional VAR(2) Model" SeriesNames: "Y1" NumSeries: 1 P: 2 Constant: 1 AR: {0.3 0.2} at lags [1 2] Trend: 0 Beta: [1×0 matrix] Covariance: 4
Mdl
is a fully specified tsVAR
object representing a univariate two-state TAR model. tsVAR
stores specified arima
submodels as varm
objects.
Because Mdl
is fully specified, you can pass it to any tsVAR
object function for further analysis (see Object Functions). Alternatively, you can specify the threshold model parameters in Mdl.Switch
as initial values for the estimation procedure (see estimate
).
Create Fully Specified Univariate STAR Model
Create a three-state STAR model with logistic transitions (LSTAR) for a 1-D response process. Specify all parameter values (this example uses arbitrary values).
Create smooth, logistic threshold transitions at levels 2
and 8
. Specify the following transition rates:
3.5
, when the system transitions from state 1 to state 2.1.5
, when the system transitions from state 2 to state 3.
t = [2 8];
r = [3.5 1.5];
tt = threshold(t,Type="logistic",Rates=r)
tt = threshold with properties: Type: 'logistic' Levels: [2 8] Rates: [3.5000 1.5000] StateNames: ["1" "2" "3"] NumStates: 3
tt
is a fully specified threshold
object.
Assume the following univariate models describe the response process of the system:
State 1: where .
State 2: where .
State 3: where .
mdl1 = arima(Constant=-5,Variance=0.1); mdl2 = arima(Constant=0,Variance=0.2); mdl3 = arima(Constant=5,Variance=0.3); mdl = [mdl1,mdl2,mdl3];
Create a STAR model from the switching mechanism tt
and the state-specific submodels mdl
.
Mdl = tsVAR(tt,mdl)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 1 StateNames: ["1" "2" "3"] SeriesNames: "1" Covariance: []
Mdl is a fully specified tsVAR
object representing the STAR model.
Create Partially Specified Univariate Model for Estimation
Consider fitting to data a two-state exponential STAR model for a 1-D response process. Assume all parameters are unknown (includes transition mid-level , rate , and all dynamic model coefficients and variances ).
Create an exponential threshold transition. Specify unknown elements using NaN
.
tt = threshold(NaN,Type="exponential",Rates=NaN)
tt = threshold with properties: Type: 'exponential' Levels: NaN Rates: NaN StateNames: ["1" "2"] NumStates: 2
tt
is a partially specified threshold
object. The mid-level tt.Levels
and transition rate tt.Rates
are unknown and estimable.
Create AR(1) and AR(2) models by using the shorthand syntax of arima
.
mdl1 = arima(1,0,0); mdl2 = arima(2,0,0);
mdl1
and mdl2
are partially specified arima
objects. NaN
-valued properties correspond to unknown, estimable parameters.
Store the submodels in a vector.
mdl = [mdl1; mdl2];
Create a STAR model template from the switching mechanism tt
and the state-specific submodels mdl
.
Mdl = tsVAR(tt,mdl)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [2x1 varm] NumStates: 2 NumSeries: 1 StateNames: ["1" "2"] SeriesNames: "1" Covariance: []
Mdl
is a partially specified tsVAR
object representing a univariate two-state STAR model.
Mdl.Submodels(1)
ans = varm with properties: Description: "1-Dimensional VAR(1) Model" SeriesNames: "Y1" NumSeries: 1 P: 1 Constant: NaN AR: {NaN} at lag [1] Trend: 0 Beta: [1×0 matrix] Covariance: NaN
Mdl.Submodels(2)
ans = varm with properties: Description: "1-Dimensional VAR(2) Model" SeriesNames: "Y1" NumSeries: 1 P: 2 Constant: NaN AR: {NaN NaN} at lags [1 2] Trend: 0 Beta: [1×0 matrix] Covariance: NaN
tsVAR
converts the arima
object submodels to 1-D varm
object equivalents.
Mdl
is prepared for estimation. You can pass Mdl
to estimate
, along with data and a fully specified threshold transition (threshold
object) containing initial values for optimization.
Create Fully Specified Multivariate Model
Create the following two, three-state threshold-switching dynamic regression models for a 2-D response process:
A model with state-specific innovations distributions
A model with a model-wide innovation covariance
Specify all parameter values (this example uses arbitrary values).
Create Threshold Transitions
Create logistic threshold transitions at mid-levels 2
and 8
with rates 3.5
and 1.5
, respectively. Label the corresponding states "Low"
, "Med"
, and "High"
.
t = [2 8]; r = [3.5 1.5]; stateNames = ["Low" "Med" "High"]; tt = threshold(t,Type="logistic",Rates=[3.5 1.5],StateNames=stateNames)
tt = threshold with properties: Type: 'logistic' Levels: [2 8] Rates: [3.5000 1.5000] StateNames: ["Low" "Med" "High"] NumStates: 3
tt
is a fully specified threshold
object.
Specify State-Specific Innovations Covariance Matrices
Assume the following VAR models describe the response processes of the system:
State 1: where
State 2: where
State 3: where
% Constants (numSeries x 1 vectors) C1 = [1; -1]; C2 = [2; -2]; C3 = [3; -3]; % Autoregression coefficients (numSeries x numSeries matrices) AR1 = {}; % 0 lags AR2 = {[0.5 0.1; 0.5 0.5]}; % 1 lag AR3 = {[0.25 0; 0 0] [0 0; 0.25 0]}; % 2 lags % Innovations covariances (numSeries x numSeries matrices) Sigma1 = [1 -0.1; -0.1 1]; Sigma2 = [2 -0.2; -0.2 2]; Sigma3 = [3 -0.3; -0.3 3]; % VAR Submodels mdl1 = varm('Constant',C1,'AR',AR1,'Covariance',Sigma1); mdl2 = varm('Constant',C2,'AR',AR2,'Covariance',Sigma2); mdl3 = varm('Constant',C3,'AR',AR3,'Covariance',Sigma3);
mdl1
, mdl2
, and mdl3
are fully specified varm
objects.
Store the submodels in a vector with order corresponding to the regimes in tt.StateNames
.
mdl = [mdl1; mdl2; mdl3];
Create an LSTAR model from the switching mechanism tt
and the state-specific submodels mdl
. Label the series Y1
and Y2
.
Mdl = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"])
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 2 StateNames: ["Low" "Med" "High"] SeriesNames: ["Y1" "Y2"] Covariance: []
Mdl
is a fully specified tsVAR
object representing a multivariate three-state LSTAR model. Because the Covariance
property is empty ([]
), the submodels have their own innovations covariance matrix.
Specify Model-Wide Innovations Covariance Matrix
Suppose that the innovations covariance matrix is invariant across states and has value .
Create an LSTAR model like Mdl
that has the model-wide innovations covariance matrix.
MdlCov = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"],Covariance=Sigma2)
MdlCov = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 2 StateNames: ["Low" "Med" "High"] SeriesNames: ["Y1" "Y2"] Covariance: [2x2 double]
MdlCov.Covariance
ans = 2×2
2.0000 -0.2000
-0.2000 2.0000
The Covariance
property of MdlCov
is nonempty, which means the innovations distribution of all submodels are equal.
Create Fully Specified Model Containing Regression Component
Consider including regression components for exogenous variables in each submodel of the threshold-switching dynamic regression model in Create Fully Specified Multivariate Model.
Create logistic threshold transitions at mid-levels 2
and 8
with rates 3.5
and 1.5
, respectively. Label the corresponding states "Low"
, "Med"
, and "High"
.
t = [2 8]; r = [3.5 1.5]; stateNames = ["Low" "Med" "High"]; tt = threshold(t,Type="logistic",Rates=[3.5 1.5],StateNames=stateNames)
tt = threshold with properties: Type: 'logistic' Levels: [2 8] Rates: [3.5000 1.5000] StateNames: ["Low" "Med" "High"] NumStates: 3
Assume the following VARX models describe the response processes of the system:
State 1: where
State 2: where
State 3: where
represents a single exogenous variable, represents two exogenous variables, and represents three exogenous variables. Store the submodels in a vector.
% Constants (numSeries x 1 vectors) C1 = [1; -1]; C2 = [2; -2]; C3 = [3; -3]; % Regression coefficients (numSeries x numRegressors matrices) Beta1 = [1; -1]; % 1 regressor Beta2 = [2 2; -2 -2]; % 2 regressors Beta3 = [3 3 3; -3 -3 -3]; % 3 regressors % Autoregression coefficients (numSeries x numSeries matrices) AR1 = {}; AR2 = {[0.5 0.1; 0.5 0.5]}; AR3 = {[0.25 0; 0 0] [0 0; 0.25 0]}; % Innovations covariances (numSeries x numSeries matrices) Sigma1 = [1 -0.1; -0.1 1]; Sigma2 = [2 -0.2; -0.2 2]; Sigma3 = [3 -0.3; -0.3 3]; % VARX submodels mdl1 = varm(Constant=C1,AR=AR1,Beta=Beta1,Covariance=Sigma1); mdl2 = varm(Constant=C2,AR=AR2,Beta=Beta2,Covariance=Sigma2); mdl3 = varm(Constant=C3,AR=AR3,Beta=Beta3,Covariance=Sigma3); mdl = [mdl1; mdl2; mdl3];
Create an LSTAR model from the switching mechanism tt
and the state-specific submodels mdl
. Label the series Y1
and Y2
.
Mdl = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"])
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 2 StateNames: ["Low" "Med" "High"] SeriesNames: ["Y1" "Y2"] Covariance: []
Mdl.Submodels(1)
ans = varm with properties: Description: "2-Dimensional VARX(0) Model with 1 Predictor" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 0 Constant: [1 -1]' AR: {} Trend: [2×1 vector of zeros] Beta: [2×1 matrix] Covariance: [2×2 matrix]
Mdl.Submodels(2)
ans = varm with properties: Description: "AR-Stationary 2-Dimensional VARX(1) Model with 2 Predictors" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 1 Constant: [2 -2]' AR: {2×2 matrix} at lag [1] Trend: [2×1 vector of zeros] Beta: [2×2 matrix] Covariance: [2×2 matrix]
Mdl.Submodels(3)
ans = varm with properties: Description: "AR-Stationary 2-Dimensional VARX(2) Model with 3 Predictors" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 2 Constant: [3 -3]' AR: {2×2 matrices} at lags [1 2] Trend: [2×1 vector of zeros] Beta: [2×3 matrix] Covariance: [2×2 matrix]
Create Partially Specified Multivariate Model for Estimation
Consider fitting to data a three-state TAR model for a 2-D response process. Assume all parameters are unknown (including the transition two mid-levels and all dynamic model coefficients and variances ).
Create discrete threshold transitions at two unknown levels. This specification imples a three-state model.
t = [NaN NaN]; tt = threshold(t);
tt
is a partially specified threshold
object. The transition mid-levels tt.Levels
are completely unknown and estimable.
Create 2-D VAR(0), VAR(1), and VAR(2) models by using the shorthand syntax of varm
. Store the models in a vector.
mdl1 = varm(2,0); mdl2 = varm(2,1); mdl3 = varm(2,2); mdl = [mdl1 mdl2 mdl3]; mdl(2)
ans = varm with properties: Description: "2-Dimensional VAR(1) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 1 Constant: [2×1 vector of NaNs] AR: {2×2 matrix of NaNs} at lag [1] Trend: [2×1 vector of zeros] Beta: [2×0 matrix] Covariance: [2×2 matrix of NaNs]
mdl
contains three state-specific varm
model templates for estimation. NaN
values in the properties indicate estimable parameters.
Create a threshold-switching model template from the switching mechanism tt
and the state-specific submodels mdl
.
Mdl = tsVAR(tt,mdl)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 2 StateNames: ["1" "2" "3"] SeriesNames: ["1" "2"] Covariance: []
Mdl.Submodels(2)
ans = varm with properties: Description: "2-Dimensional VAR(1) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 1 Constant: [2×1 vector of NaNs] AR: {2×2 matrix of NaNs} at lag [1] Trend: [2×1 vector of zeros] Beta: [2×0 matrix] Covariance: [2×2 matrix of NaNs]
Mdl
is a partially specified tsVAR
model for estimation.
Specify Model Regression Component for Estimation
Consider estimating all submodel coefficients and innovations covariances, and the threshold levels, of the TAR model in Create Fully Specified Model Containing Regression Component.
Create logistic threshold transitions at two unknown (NaN
) mid-levels and with two unknown rates. Label the corresponding states "Low"
, "Med"
, and "High"
.
stateNames = ["Low" "Med" "High"]; tt = threshold([NaN NaN],Type="logistic",Rates=[NaN NaN],StateNames=stateNames)
tt = threshold with properties: Type: 'logistic' Levels: [NaN NaN] Rates: [NaN NaN] StateNames: ["Low" "Med" "High"] NumStates: 3
Specify the appropriate 2-D VAR model for each state by using thee shorthand syntax of varm
, then use dot notation to specify a numSeries
-by-numRegressors
unknown, estimable exogenous regression coefficient matrix.
State 1: VARX(0) mode1 with one regressor
State 2: VARX(1) model with two regressors
State 3: VARX(2) model with three regressors
Store the submodels in a vector.
mdl1 = varm(2,0);
mdl1.Beta = nan(2,1); % numSeries-by-numRegressors
mdl2 = varm(2,1);
mdl2.Beta = nan(2,2);
mdl3 = varm(2,2);
mdl3.Beta = nan(2,3);
mdl = [mdl1; mdl2; mdl3];
Create an estimable LSTAR model from the switching mechanism tt
and the state-specific submodels mdl
. Label the series Y1
and Y2
.
Mdl = tsVAR(tt,mdl,SeriesNames=["Y1" "Y2"])
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [3x1 varm] NumStates: 3 NumSeries: 2 StateNames: ["Low" "Med" "High"] SeriesNames: ["Y1" "Y2"] Covariance: []
Mdl.Submodels(2)
ans = varm with properties: Description: "2-Dimensional VARX(1) Model with 2 Predictors" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 1 Constant: [2×1 vector of NaNs] AR: {2×2 matrix of NaNs} at lag [1] Trend: [2×1 vector of zeros] Beta: [2×2 matrix of NaNs] Covariance: [2×2 matrix of NaNs]
Create Model Specifying Equality Constraints for Estimation
The estimate
function generally supports constraints on any parameter to a known constant. Also, you can specify a model-wide innovations covariance by setting the Covariance
property of tsVAR
.
Consider estimating a univariate threshold-switching model with the following characteristics:
A threshold transition is known to occur at 0.
The transition function is the normal cdf with unknown rate.
States 1 and 2 are constant models. The constants are unknown.
The innovations process is invariant among states, but the variance is unknown.
Create the described threshold transition.
t = 0;
tt = threshold(t,Type="normal",Rates=NaN)
tt = threshold with properties: Type: 'normal' Levels: 0 Rates: NaN StateNames: ["1" "2"] NumStates: 2
tt
is a partially specified threshold
object. Only the transition function rate tt.Rates
is unknown and estimable.
Create the described submodels by using the shorthand syntax of arima
. Store the submodels in a vector.
mdl1 = arima(0,0,0); mdl2 = arima(0,0,0)
mdl2 = arima with properties: Description: "ARIMA(0,0,0) Model (Gaussian Distribution)" SeriesName: "Y" Distribution: Name = "Gaussian" P: 0 D: 0 Q: 0 Constant: NaN AR: {} SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: NaN
mdl = [mdl1 mdl2];
mdl1
and mdl2
are partially specified arima
objects representing constant-only linear models. Each model constant is unknown and estimable.
Create a threshold-switching model from the specified threshold transitions and submodels. Specify and unknown, estimable model-wide innovations covariance matrix.
Mdl = tsVAR(tt,mdl,Covariance=NaN)
Mdl = tsVAR with properties: Switch: [1x1 threshold] Submodels: [2x1 varm] NumStates: 2 NumSeries: 1 StateNames: ["1" "2"] SeriesNames: "1" Covariance: NaN
Mdl
is a partially specified tsVAR object configured for estimation. Because Mdl.Covariance is nonempty, MATLAB ignores any specified submodel innovations variances.
More About
Threshold-Switching Dynamic Regression Model
A Threshold-switching dynamic regression model of a univariate or multivariate response series yt is a nonlinear time series model that describes the dynamic behavior of the series in the presence of structural breaks or regime changes. A collection of state-specific dynamic regression submodels describes the dynamic behavior of yt within the regimes.
where:
n + 1 is the number of regimes (
NumStates
).is the regime i dynamic regression model of yt (
Submodels
(i)). Submodels are either univariate (ARX) or multivariate (VARX). Such a collection of models yields a threshold autoregressive model (TAR).zt is the univariate threshold variable. zt can be exogenous to the system or endogenous and delayed. If the system is a self-exciting threshold autoregressive model (SETAR) with unobserved delay d.
xt is a vector of observed exogenous variables at time t.
θi is the regime i collection of parameters of the dynamic regression model, such as AR coefficients and the innovation variances.
The switching mechanism (Switch
) is governed by threshold
transitions and zt. The state index variable
st(zt)
is not random—observed values of the threshold variable
zt determine the state of the system:
where tj is the unobserved threshold mid-level
j (Switch.Levels(
).
Threshold levels must be inferred from the data. j
)
A state transition occurs when zt crosses a transition mid-level. Transitions can be discrete or smooth. Transitions of TAR models are discrete, which result in an abrupt change in the submodel computing the response. An extension of the TAR model is to allow for smooth transitions. Smooth transition autoregressive models (STAR) create weighted combinations of submodel responses that change continuously with the value of zt, and state changes indicate a shift in the dominant submodel.
The smooth transition weights are determined by a transition function
F(zt,tj,rj)
(Switch.Type
) and transition rate parameter
rj (Switch.Rates
), where 0
≤
F(zt,tj,rj)
≤ 1. Supported transition functions include the normal cdf, logistic (LSTAR), bounded
exponential (ESTAR), and custom functions.
As a result, the general form of the threshold-switching autoregressive model is
In this general case, innovation covariances can switch with the submodel.
For STAR models, the formula assigns weights to all submodel means, regardless of the current state.
For TAR models, the formula assigns unit weight to the current state/submodel only.
With observations, F(zt,tj,rj) =
ttdata(tt,
, wherez
)
is a vector of threshold variable data.z
When Covariance
is a nonempty array Σ, it is used to generate all
innovations, independent of the submodels. The model reduces to ([3],
Eqn. 3.6)
where:
which is the conditional mean of the response series yt in state j.
εt is an iid Gaussian innovations series with covariance Σ.
Algorithms
A threshold variable zt, which triggers
transitions between states, is not required to create Mdl
. Specify
exogenous or endogenous threshold variable data, and its characteristics, when you pass
Mdl
to an object function.
References
[1] Enders, Walter. Applied Econometric Time Series. New York: John Wiley & Sons, Inc., 2009.
[2] Teräsvirta, Tima. "Modelling Economic Relationships with Smooth Transition Regressions." In A. Ullahand and D.E.A. Giles (eds.), Handbook of Applied Economic Statistics, 507–552. New York: Marcel Dekker, 1998.
[3] van Dijk, Dick. Smooth Transition Models: Extensions and Outlier Robust Inference. Rotterdam, Netherlands: Tinbergen Institute Research Series, 1999.
Version History
Introduced in R2021b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)