Introduction to combcoint

knitr::opts_chunk$set(
  echo = TRUE,
  collapse = TRUE,
  comment = "#>"
)
library(combcoint)

Overview

The combcoint package implements the combined non-cointegration test developed by Bayer and Hanck (2013) . This statistical approach improves the reliability of cointegration detection by aggregating p-values from multiple individual cointegration tests into a single joint test statistic. Specifically, it combines the outcomes of the Engle-Granger, Johansen, Boswijk and Banerjee tests using a Fisher-type combination method. The approach enhances the power and robustness of cointegration testing, particularly in situations where individual tests yield mixed or inconclusive results.

Methodology

The combined test aggregates p-values from the following individual cointegration tests: Engle-Granger Johansen Boswijk Banerjee

The combined test statistic is calculated using Fisher’s combination formula:

$$C = -2 \sum_{i=1}^{k} \ln(p_i)$$ where $p_i$ are the $p$-values from the individual tests. Under the null hypothesis of no cointegration, C follows a chi-squared distribution with 2$\cdot$k degrees of freedom.

Installation

You can install the package from CRAN:

install.packages("combcoint")

Or from GitHub

remotes::install_github("Janine-Langerbein/combcoint")

Dataset

The package includes an example dataset taken from Luetkepohl (2007) http://www.jmulti.de/download/datasets/e1.dat, often used for cointegration testing exercises.

The dataset is automatically available when the package is loaded. You can load it as follows:

data("lutkepohl_e1")

Applied Example

We demonstrate the application of both the classical Engle-Granger cointegration test and the combined Bayer-Hanck cointegration test using the dataset lutkepohl_e1 included in the package.

We first apply the Engle-Granger test:

englegranger(linvestment ~ lincome + lconsumption, data = lutkepohl_e1)

Next, we apply the combined cointegration test on the same dataset:

bayerhanck(linvestment ~ lincome + lconsumption, data = lutkepohl_e1)

By default, the function uses the lags = 1. Optionally, the user can specify the lag length manually, e.g., with 4 lags:

bayerhanck(linvestment ~ lincome + lconsumption, data = lutkepohl_e1, lags = 4)


Try the combcoint package in your browser

Any scripts or data that you put into this service are public.

combcoint documentation built on June 14, 2025, 1:09 a.m.