help bayerhanck
-------------------------------------------------------------------------------

Title

bayerhanck -- Test for Non-Cointegration

Syntax

bayerhanck LHSvar [if] [in] , rhs(RHSvarlist) [options]

options Description ------------------------------------------------------------------------- Model lags(#) use # for the maximum number of augmentation lags (>=0), default is 1 trend(constant) include an unrestricted constant in model; the default trend(trend) include a linear trend in the cointegrating equations and a quadratic trend in the undifferenced data trend(none) do not include a trend or a constant

Reporting crit(1 | 5 | 10) Level-alpha in % for the critical value of the test to be reported

-------------------------------------------------------------------------------

Description

bayerhanck produces a joint test-statistic for the null of no-cointegration based on Engle-Granger, Johansen maximum eigenvalue, Boswijk, and Banerjee tests (see Bayer and Hanck, 2009, for details).

Saved results

bayerhanck saves the following in e():

Scalars e(EJ) test statistics based on Engle-Granger and Johansen tests e(BECREJ) test statistics based on all four tests e(CRIT_EJ) critical value for the test statistics based on Engle-Granger and Johansen tests e(CRIT_BECREJ) critical value for the test statistics based on all four tests

Matrices e(STAT) test statistics of all four underlying tests e(PV) corresponding p-values

Examples

Example 1: (underlying tests produce conflicting results)

Setup . webuse lutkepohl

Test for non-cointegration . bayerhanck linvestment, rhs(lincome lconsumption)

Same as above, but use 4 lags in the underlying VECM model . bayerhanck linvestment, rhs(lincome lconsumption) lags(4)

Same as above, but report 10% critical values instead of 5% . bayerhanck y, rhs(i c) lags(4) crit(10)

Example 2: Monte Carlo Study

clear all set more off set matsize 100 local rep=100 mat def testPower=J(`rep',2,999) mat def testSize=J(`rep',2,999) forv z=1/`rep' { clear qui { set obs 400 gen dx=rnormal() gen x=sum(dx)+50 forv j=1/5 { gen dz`j'=rnormal() gen z`j'=sum(dz`j') } gen T=_n tsset T gen u=rnormal() replace u=u+0.95*l.u if T>1 gen y=x+u drop if T<200 replace x=x+T di "Power Example" bayerhanck x, rhs(y) trend(trend) lags(1) mat testPower[`z',1]=`e(EJ)' mat testPower[`z',2]=`e(BECREJ)' di "Size Example" bayerhanck x, rhs(z*) trend(trend) lags(1) crit(10) mat testSize[`z',1]=`e(EJ)' mat testSize[`z',2]=`e(BECREJ)' } } ereturn list svmat testPower svmat testSize keep test* drop if testPower1==. count if testSize1>e(CRIT_EJ) count if testSize2>e(CRIT_BECREJ) count if testPower1>e(CRIT_EJ) count if testPower2>e(CRIT_BECREJ)

Also see

Bayer, Christian and Christoph Hanck: "Combining Non-Cointegration tests", METEOR RM/09/012, University of Maastricht.

Installation Files bayerhanck.ado NullDistr.dta bayerhanck.sthlp