*! version 1.0.0 20may2026 Dr Merwan Roudane (merwanroudane920@gmail.com)

Title

mixi01_svar -- Structural VAR with P1/T1/P0/T0 shock identification

Syntax

mixi01_svar varlist [if] [in]
[,
options]

Model specification
lags(#) number of lags; default: lags(2)

i1(varlist) I(1) variables in the system

i0(varlist) I(0) variables in the system

Shock classification
p1(numlist) equation indices with P1 (permanent, I(1)) shocks

t1(numlist) equation indices with T1 (transitory, I(1)) shocks

p0(numlist) equation indices with P0 (permanent, I(0)) shocks

t0(numlist) equation indices with T0 (transitory, I(0)) shocks

Identification
lrestrictions(string) long-run restrictions in matrix form

srestrictions(string) short-run (contemporaneous) restrictions

signrestrictions(string) sign restrictions on impulse responses

cholesky Cholesky (recursive) identification

Long-run covariance estimation
kernel(string) kernel function; default: bartlett

bw(#|auto) bandwidth; default: auto

prewhiten apply VAR(1) prewhitening

Estimation method
fmvar use FM-VAR for reduced-form estimation (default)

ols use OLS for reduced-form estimation

Reporting
level(#) confidence level; default: level(95)

detail display structural impact matrix

Description

mixi01_svar estimates and identifies a structural vector autoregression
for systems containing a mixture of I(1) and I(0) variables, following the
methodology of Fisher, Huh and Pagan (2016).

The reduced-form VAR is estimated using FM-VAR (default) or OLS, then
structural shocks are identified by imposing long-run, short-run, or sign
restrictions that respect the four-way shock classification of Fisher,
Huh and Pagan:

P1 (Permanent, I(1)): Structural shocks from equations with I(1)
dependent variables that have a nonzero long-run effect on at least one
I(1) variable. The associated column in the long-run response matrix
C = C(1) is nonzero.

T1 (Transitory, I(1)): Shocks from I(1) equations that have zero
long-run effects on all I(1) variables. These are the classic transitory
shocks associated with cointegration.

P0 (Permanent, I(0)): Shocks from equations with I(0) dependent
variables that have a nonzero long-run effect on at least one I(1) variable.
These arise when the level of the I(0) variable — rather than its change —
appears in the structural equation for an I(1) variable.

T0 (Transitory, I(0)): Shocks from I(0) equations that have zero
long-run effects on all I(1) variables. This requires that the I(0) variable
enters the structural equations for I(1) variables in differenced form
(Fisher et al., 2016, Proposition).

The distinction between P0 and T0 has important consequences. Fisher et al.
show that:

(a) A P0 shock can destroy cointegration between I(1) variables that
would otherwise hold.

(b) The number of permanent shocks can exceed the number of independent
permanent components (stochastic trends) when P0 shocks are present.

(c) The permanent component of the I(1) variables must be computed using the
generalized formula (equations 14–17 in Fisher et al., 2016) that accounts
for both error-correction terms and lagged I(0) variables.

Options

Model specification

lags(#) specifies the lag order.

i1(varlist) specifies I(1) variables.

i0(varlist) specifies I(0) variables.

Shock classification

p1(numlist) specifies which equation numbers contain P1 (permanent,
from I(1)) shocks. For example, in a 4-variable system with three I(1)
variables and no cointegration, p1(1 2 3) indicates three permanent
shocks.

t1(numlist) specifies equation numbers for T1 (transitory, from I(1))
shocks. In a system with cointegration rank r, there are r T1 shocks.

p0(numlist) specifies equation numbers for P0 (permanent, from I(0))
shocks. A shock is P0 when the I(0) variable appears in levels in the
structural equation for an I(1) variable.

t0(numlist) specifies equation numbers for T0 (transitory, from I(0))
shocks. A shock is T0 when the I(0) variable appears in the structural
equation in differenced form, ensuring zero long-run effects on all I(1)
variables.

Identification

lrestrictions(string) specifies long-run identifying restrictions as
a string matrix, using "." for free parameters and "0" for zero restrictions.
For example, lrestrictions("* 0 0 0 \ * 0 0 * \ * 0 0 0 \ 0 0 0 0")
restricts the long-run response matrix C(1) = B(1)^{−1}.

srestrictions(string) specifies contemporaneous (impact) restrictions
on A_0.

signrestrictions(string) specifies sign restrictions on impulse
responses at specified horizons.

cholesky applies Cholesky identification (lower-triangular A_0).

Long-run covariance estimation

kernel(string), bw(#|auto), prewhiten — see
mixi01_fmols for details.

Estimation method

fmvar (default) uses FM-VAR for the reduced-form, removing second-order
bias from the VAR coefficients.

ols uses standard OLS for the reduced form. This may be preferred for
comparison or when FM corrections are unnecessary (e.g., all I(0) systems).

Remarks

P0 shocks and cointegration. An important contribution of Fisher, Huh
and Pagan (2016) is the demonstration that the presence of a P0 shock — a shock
from an I(0) variable that has a permanent effect on an I(1) variable — can
eliminate cointegration that would otherwise hold. Consider two I(1) variables
y_{1t} and y_{2t} that are cointegrated when only a supply shock (P1) and demand
shock (T1) are present. Adding an I(0) interest rate i_t to the system, with
i_t appearing in levels in the structural equation for y_{2t}, introduces a
P0 shock that gives y_{2t} an independent permanent component, breaking
cointegration.

Design for T0 shocks. To ensure that the shock from an I(0) variable is
transitory (T0), the structural equation for each I(1) variable must contain
the I(0) variable in differenced form only. This is the Pagan–Pesaran
condition extended in Fisher et al.

Permanent component formula. The permanent component of the I(1)
variables is computed using equation (17) of Fisher et al.:

Delta y^P_t = (I − R*Phi)^{−1} (I − A_1)^{−1} [e_{1t} + G(I−F)^{−1} e_{2t}]

where R = (I − A_1)^{−1} G (I − F)^{−1}. This formula generalises the
Beveridge–Nelson decomposition to systems with both error-correction terms
and I(0) variables.

Examples

Example 1: Peersman (2005)-style SVAR

3 I(1) variables (output, oil price, general price level), 1 I(0) variable
(interest rate), no cointegration among I(1) vars.

. mixi01_svar dlgdp dloil dlcpi irate, lags(4) i1(dlgdp dloil dlcpi) i0(irate) ///

p1(1 2 3) p0(4) lrestrictions("* 0 0 0 \ * * 0 * \ * * 0 0 \ 0 0 0 0")

Example 2: With T0 shock (monetary policy is transitory)

. mixi01_svar dlgdp dloil dlcpi dirate, lags(4) i1(dlgdp dloil dlcpi) i0(dirate) ///

p1(1 2 3) t0(4) cholesky

Example 3: System with cointegration and P0

. mixi01_svar y1 y2 y3 y4, lags(2) i1(y1 y2 y3) i0(y4) ///

p1(1) t1(2 3) p0(4) fmvar kernel(parzen) bw(auto)

. * Plot IRFs with shock labels:

. mixi01_irf, step(40) ci combine

Stored results

mixi01_svar stores the following in e():

Scalars

e(N) number of observations

e(k_eq) number of equations

e(lags) lag order

e(k_i1) number of I(1) variables

e(k_i0) number of I(0) variables

e(n_p1) number of P1 shocks

e(n_t1) number of T1 shocks

e(n_p0) number of P0 shocks

e(n_t0) number of T0 shocks

e(rank_C) rank of long-run response matrix C(1)

Macros

e(cmd) mixi01_svar

e(depvar) list of endogenous variables

e(shock_types) list: P1, T1, P0, T0 for each shock

Matrices

e(b) stacked VAR coefficient vector

e(V) variance–covariance matrix

e(F) n × (np) reduced-form VAR coefficient matrices

e(Sigma) n × n reduced-form error covariance

e(A0) n × n structural impact matrix

e(A0inv) n × n structural impact matrix inverse

e(C1) n × n long-run response matrix C(1)

e(IRF) n × n × (step+1) impulse-response array

e(FEVD) n × n × (step+1) forecast-error variance decomposition

e(Companion) companion matrix

e(permanent) permanent component Delta y^P_t

Functions

e(sample) marks estimation sample

References

Fisher, L. A., H.-S. Huh and A. R. Pagan (2016). Econometric methods for
modelling systems with a mixture of I(1) and I(0) variables.
Journal of Applied Econometrics, 31(5), 892–911.

Pagan, A. R. and M. H. Pesaran (2008). Econometric analysis of structural
systems with permanent and transitory shocks.
Journal of Economic Dynamics and Control, 32(10), 3376–3395.

Peersman, G. (2005). What caused the early millennium slowdown? Evidence
from a small open economy. Journal of International Money and Finance,
24(3), 346–366.

Phillips, P. C. B. (1995). Fully modified least squares and vector
autoregression. Econometrica, 63(5), 1023–1078.

Author

Dr Merwan Roudane

Department of Economics (Independent Researcher)

merwanroudane920@gmail.com

Also see

Master help — mixi01.

Sibling commands — mixi01_fmols, mixi01_fmvar,
mixi01_fmiv, mixi01_acl, mixi01_svar,
mixi01_vecm, mixi01_irf, mixi01_test.