```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
```