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

Title

mixi01_fmvar -- Fully Modified Vector Autoregression

Syntax

mixi01_fmvar varlist [if] [in]
[,
options]

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

i1(varlist) variables classified as I(1)

i0(varlist) variables classified as I(0)

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

bw(#|auto) bandwidth parameter; default: auto

prewhiten apply VAR(1) prewhitening

Deterministic components
noconstant suppress the constant term

trend include a linear time trend

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

detail display long-run covariance estimates

compact display only the companion matrix

Description

mixi01_fmvar estimates an unrestricted levels VAR of the form

y_t = A_1 y_t−1 + ... + A_p y_t−p + e_t

using Fully Modified VAR (FM-VAR) estimation as developed in
Phillips (1995, Section 5). The method applies the FM corrections
equation-by-equation, treating each equation as an FM-OLS regression of
one element of y_t on the lagged vector y_t−1, ..., y_t−p.

The FM-VAR estimator has several remarkable properties (Phillips, 1995):

(i) When there is cointegration in the system, the FM-VAR limit theory is
normal for all stationary coefficients and mixed normal for all
nonstationary coefficients. There are no unit-root distributions, even
for the coefficient submatrix corresponding to the unit roots (I_).

(ii) When the system has a full set of unit roots (no cointegration), the
FM-VAR estimator of the unit-root matrix is hyperconsistent at a rate
exceeding O(T).

(iii) Optimal estimation of the cointegration space is attained by FM-VAR
without knowledge of the number of unit roots, without pretesting, and
without reduced-rank regression.

(iv) Wald tests based on the FM-VAR estimator have a limit distribution
that is a mixture of chi-squared variates bounded above by chi-squared(q),
enabling valid Granger causality tests regardless of the integration properties.

Options

Model specification

lags(#) specifies the number of lags to include in the VAR. Default
is 2. Information criteria (AIC, BIC) are reported to guide selection.

i1(varlist) specifies variables believed to be I(1). If omitted, all
variables are treated as potentially nonstationary and the full FM correction
is applied.

i0(varlist) specifies variables believed to be I(0).

Long-run covariance estimation

kernel(string) selects the kernel function. See mixi01_fmols
for available kernels.

bw(#|auto) sets the bandwidth.

prewhiten applies VAR(1) prewhitening.

Deterministic components

noconstant suppresses the constant in each VAR equation.

trend includes a linear time trend.

Reporting

level(#) sets the confidence level.

detail displays the estimated long-run covariance matrices.

compact displays only the companion-form coefficient matrix rather
than the full equation-by-equation output.

Remarks

Levels versus differences. A key advantage of FM-VAR is that the
researcher can estimate the VAR in levels without differencing any variables,
regardless of the integration properties. Unlike OLS on levels VARs, the
FM corrections remove the second-order bias (endogeneity of nonstationary
regressors) identified in Phillips (1991a).

Causality testing. After FM-VAR estimation, Granger causality tests can
be conducted using mixi01_test. By Theorem 6.1, the Wald statistic
W^+ for testing exclusion restrictions on blocks of F coefficients has a limit
distribution

W^+ →_d chi2(q_1) + sum_^ d_j * chi2_(j)

where d_j in (0,1) are eigenvalues of (R_1 Omega_{00.2} R_1')(R_1 Sigma_{00} R_1')^{−1}.
This is bounded above by chi2(q), so conventional chi-squared critical values
always yield valid (conservative) tests.

Comparison with Toda–Yamamoto. FM-VAR Granger causality avoids the need
for the intentional over-fitting approach of Toda and Yamamoto (1993), which
adds extra lags to ensure valid chi-squared asymptotics. FM-VAR achieves the
same (and better) with the lag order chosen by information criteria.

Examples

Example 1: Three-variable FM-VAR

. webuse lutkepohl2, clear

. tsset qtr

. mixi01_fmvar ln_inv ln_inc ln_consump, lags(2) kernel(bartlett) bw(auto)

Example 2: Mixed system with I(0) variable

. * Using simulated data with interest rate as I(0):

. mixi01_fmvar gdp cpi irate, lags(4) i1(gdp cpi) i0(irate) kernel(parzen) bw(8)

Example 3: FM-VAR followed by Granger causality

. mixi01_fmvar y1 y2 y3, lags(2) i0(y3)

. mixi01_test, granger(y2) conservative

Stored results

mixi01_fmvar stores the following in e():

Scalars

e(N) number of observations

e(k_eq) number of equations

e(lags) number of lags

e(k_i1) number of I(1) variables

e(k_i0) number of I(0) variables

e(bw) bandwidth used

e(aic) Akaike information criterion

e(bic) Bayesian information criterion

e(hqic) Hannan–Quinn information criterion

Macros

e(cmd) mixi01_fmvar

e(depvar) list of endogenous variables

e(i1vars) I(1) variables

e(i0vars) I(0) variables

e(kernel) kernel function used

Matrices

e(b) 1 × (n^2 p + n) stacked coefficient vector

e(V) variance–covariance matrix (Sigma_ee metric)

e(V_liberal) variance–covariance matrix (Omega_ee.2 metric)

e(F) n × (n p) stacked coefficient matrices [A_1 ... A_p]

e(Companion) (np) × (np) companion matrix

e(Sigma) n × n error covariance matrix

e(Omega) long-run covariance matrix

e(Delta) one-sided long-run covariance

e(eigenvalues) eigenvalues of the companion matrix

Functions

e(sample) marks estimation sample

References

Phillips, P. C. B. (1991a). Optimal inference in cointegrated systems.
Econometrica, 59(2), 283–306.

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

Toda, H. Y. and T. Yamamoto (1995). Statistical inference in vector
autoregressions with possibly integrated processes.
Journal of Econometrics, 66(1–2), 225–250.

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.