Main Content

Create Threshold Transitions

This example shows how to create a threshold transition object and access its properties.

Threshold-switching models (tsVAR) switch among states, and corresponding submodels, when the value of a univariate threshold variable changes relative to a set of threshold levels. Threshold transitions can be discrete (TAR models), resulting in abrupt changes of state, or smooth (STAR models), resulting in a continuous mixing of states. The switching mechanism is encapsulated in a threshold transition object of type threshold. Each object describes the levels and rates of the transitions it contains.

Discrete Threshold Transitions

Create a threshold transition object with discrete transitions at levels 2 and 8.

ttD = threshold([2 8])
ttD = 
  threshold with properties:

          Type: 'discrete'
        Levels: [2 8]
         Rates: []
    StateNames: ["1"    "2"    "3"]
     NumStates: 3

ttD is a threshold object representing threshold transitions of an arbitrary threshold variable. The command line lists the object properties. You can access the value of a property by using dot notation, for example, access the number of states using ttD.NumStates.

The two levels divide the threshold variable range into three distinct states labeled "1", "2", and "3" by default. The states correspond to values of a threshold variable in the intervals (-,2), [2,8), and [8,), respectively.

Smooth Threshold Transitions

Transition functions describe each transition. Their range includes values between 0 and 1. Smooth transitions require a rate that indicates how quickly the mixing of states occurs in the neighborhood of a threshold level. Three common types of smooth transition functions are [1]:

  • Asymmetric transitions associated with normal cdfs

  • Asymmetric transitions associated with logistic cdfs

  • Symmetric transitions associated with exponential functions

Create threshold transitions with logistic transitions among all states, and assign names "Low", "Med", and "High" to the states. Specify that the transition rate from "Low" to "Med" is 3.5, and the rate from "Med" to "High" is 1.5.

ttL = threshold([2 8],Type="logistic",Rates=[3.5 1.5], ...
    StateNames=["Low" "Med" "High"])
ttL = 
  threshold with properties:

          Type: 'logistic'
        Levels: [2 8]
         Rates: [3.5000 1.5000]
    StateNames: ["Low"    "Med"    "High"]
     NumStates: 3

Custom Transition Function

The threshold function supports custom transition functions, specified as a function handle using the name-value argument TransitionFunction.

Create a function that models the extreme-value cumulative distribution. The inputs to the transition function are the transition variable data z, threshold levels t, and rates r.

tfun = @(z,t,r)evcdf(z,t,1/r);

Create a threshold transition with extreme-value cumulative distribution transitions.

ttEV = threshold([2 8],Type="custom",TransitionFunction=tfun, ...
    Rates=[3.5 1.5])
ttEV = 
  threshold with properties:

          Type: 'custom'
        Levels: [2 8]
         Rates: [3.5000 1.5000]
    StateNames: ["1"    "2"    "3"]
     NumStates: 3

The transition function is hidden in the display, but accessible, like any other property, by using dot notation.

F = ttEV.TransitionFunction
F = function_handle with value:


[1] Enders, Walter. Applied Econometric Time Series. New York: John Wiley & Sons, Inc., 2009.

See Also



Related Topics