The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
makicoint implements the Maki (2012) residual-based test
for cointegration that allows for an unknown number of
structural breaks. It extends the Gregory-Hansen (one break)
and Hatemi-J (two breaks) tests to any feasible number of breaks. The
null hypothesis is no cointegration; the alternative is
cointegration with up to m breaks.
Breaks are placed one at a time by a sequential Bai-Perron procedure. At each candidate break the cointegrating regression is fitted and its residual is tested with an augmented Dickey-Fuller (ADF) regression. The test statistic is the minimum ADF t-statistic over all candidates and all steps; reject the null when it falls below the critical value.
Four deterministic models are available: level shift
(model = 0), level shift with trend (1),
regime shift (2), and regime shift with trend
(3).
set.seed(123)
n <- 100
x <- cumsum(rnorm(n))
y <- 0.5 * x + cumsum(rnorm(n))
y[51:100] <- y[51:100] + 2 # a level break at observation 50
res <- coint_maki(cbind(y, x), m = 1, model = 0)
res
#>
#> Maki (2012) Cointegration Test with Multiple Structural Breaks
#> --------------------------------------------------------------
#> Model : Level Shift (model = 0)
#> Engine : GAUSS/tspdlib-compatible
#> Observations : 100 Regressors: 1 Trimming: 0.10
#> Lag rule : tsig (max 12, used 3)
#> Dependent : y Regressor(s): x
#> --------------------------------------------------------------
#> Test statistic : -3.1616
#> Critical values: 1% = -5.709 5% = -4.602 10% = -4.354 [table]
#>
#> Estimated breaks (obs : fraction):
#> break 1 : 34 : 0.3400
#> --------------------------------------------------------------
#> Fail to reject H0: no evidence of cointegration.The break is detected near observation 50 and, if the series are cointegrated with that break, the statistic falls below the critical value.
The break dates can be chosen two ways; both give
the same test statistic. The default reproduces the original
‘GAUSS’/‘tspdlib’ implementation. With engine = "paper",
each break minimises the cointegrating-regression sum of squared
residuals, the rule in Maki (2012, Steps 2 and 4).
g <- coint_maki(cbind(y, x), m = 2, model = 2) # default (GAUSS)
p <- coint_maki(cbind(y, x), m = 2, model = 2, engine = "paper")
c(gauss = g$statistic, paper = p$statistic)
#> gauss paper
#> -3.621283 -4.386842
rbind(gauss = g$breakpoints, paper = p$breakpoints)
#> [,1] [,2]
#> gauss 34 63
#> paper 19 63cv_coint_maki() returns the Maki (2012) Table 1 values,
which depend on the number of regressors (1-4), the number of breaks
(1-5) and the model.
Maki’s Table 1 stops at five breaks (his footnote 5 notes more are
possible). makicoint estimates the statistic and breaks for
any feasible number, and for more than five it can simulate the critical
values by Maki’s own Monte-Carlo design. The simulation reruns the whole
search every replication, so it is heavy; use a few thousand
replications for reported work.
Maki, D. (2012). Tests for cointegration allowing for an unknown number of breaks. Economic Modelling, 29, 2011-2015. https://doi.org/10.1016/j.econmod.2012.04.022
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.