Main Content

Modify msVAR Model Specifications

The properties of an msVAR object are read-only. Therefore, to adjust the specification of a created model, you must create a new model. This example shows how to specify known parameter values of a created, partially specified model.

Suppose that yt is a univariate response process representing an economic measurement that can suggest which state the economy experiences during a period (expansion or recession). During an expansion, yt is this AR(2) model. During a recession, yt is an AR(1) model. State-specific submodel coefficients and innovations variances are unknown.

Create a partially specified, univariate, two-state Markov-switching model. (For more details, see Create Partially Specified Univariate Model for Estimation.)

% Switching mechanism
P = NaN(2);
mc = dtmc(P,StateNames=["Expansion" "Recession"]);

% AR submodels
mdl1 = arima(1,0,0);
mdl1.Description = "Expansion State";
mdl2 = arima(2,0,0);
mdl2.Description = "Recession State";
mdl = [mdl1; mdl2];

% Markov-switching model
Mdl = msVAR(mc,mdl);

Suppose economic theory suggests:

  • An expansion persists into the next time step with probability 0.9.

  • During an expansion, the model constant is 5.

  • During a recession, the model constant is –5.

Create a new msVAR model based on economic theory by following these steps:

  1. Create a new dtmc object containing a transition matrix with the known transition probability.

  2. Adjust the Constant property of mdl1 and mdl2 by using dot notation.

  3. Pass the new dtmc object and vector of adjusted arima objects to msVAR.

P(1,1) = 0.9;
mc = dtmc(P,StateNames=["Expansion" "Recession"]);

mdl1.Constant = 5;
mdl2.Constant = -5;
mdl = [mdl1; mdl2];

MdlAdj = msVAR(mc,mdl);
MdlAdj.Switch.P
ans = 2×2

    0.9000       NaN
       NaN       NaN

MdlAdj.Submodels(1)
ans = 
  varm with properties:

     Description: "1-Dimensional VAR(1) Model"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 1
        Constant: 5
              AR: {NaN} at lag [1]
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: NaN
MdlAdj.Submodels(2)
ans = 
  varm with properties:

     Description: "1-Dimensional VAR(2) Model"
     SeriesNames: "Y1" 
       NumSeries: 1
               P: 2
        Constant: -5
              AR: {NaN NaN} at lags [1 2]
           Trend: 0
            Beta: [1×0 matrix]
      Covariance: NaN

Mdl is a partially specified msVAR model. During estimation, estimate treats the model constants and known transition probability as equality constraints.

See Also

Objects

Related Topics