Unit Root Tests for Bounded Time Series
Overview
Implements unit root tests for bounded time series following Cavaliere and Xu (2014) doi:10.1016/j.jeconom.2013.08.026. Standard unit root tests (ADF, Phillips-Perron) have non-standard limiting distributions when the time series is bounded. This package provides modified ADF and M-type tests (MZ-alpha, MZ-t, MSB) with p-values computed via Monte Carlo simulation of bounded Brownian motion. Supports one-sided (lower bound only) and two-sided bounds, with automatic lag selection using the MAIC criterion of Ng and Perron (2001) doi:10.1111/1468-0262.00256.
- Bug fix: the bound parameters were computed with the sample mean in place of the initial observation X_0. Cavaliere and Xu (2014, eq. 4.10 and Remark 4.1) use X_0 and show that the mean makes the estimators inconsistent.
- Bug fix: the ADF statistics were taken from a regression with a constant on the raw series, and ADF-alpha omitted the division by alpha(1). They now come from the regression of the de-meaned series without deterministic terms, with ADF-alpha = T * pi / alpha(1), as in equation (3.7).
- Bug fix: MZ-alpha and MZ-t omitted the -X_0^2 / T term of the numerator, so they did not share the limiting distribution of ADF-alpha and ADF-t.
- Bug fix: the MSB p-value was taken in the wrong tail; MSB rejects for small values.
- Bug fix: the Monte Carlo null distribution now follows Algorithm 1 (a random walk regulated at the estimated bounds, de-meaned before the functionals are formed); the previous version used mirror reflection and did not de-mean.
- Bug fix: the MAIC lag selection omitted the tau_T(k) term of Ng and Perron (2001) and used varying samples; it now uses the full MAIC on a common sample.
- All five statistics and both bound parameters agree to four decimals with the Stata command boundedur (SSC) on the same data.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK5 OK2026-03-17
Documentation
- Help pages
- 4 (1 internal)includes a package overview page
- Examples that run
- 100%3 run in a plain check
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 100%
Downloads
Repository
Stars over time
Forks over time
Releases over time
PRs over time
Commits over time
Commit identities over time
2 development-tooling and community-health practices detected across 2 families in the upstream repository
Checks run against github.com/muhammedalkhalaf/boundedur on 2026-10-21.
The repository owner accepts GitHub Sponsors
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-09-27Commits: at least 3 crediting it in the message
- Claude Opus 5.52 commits · Sep 2026
- Claude Fable 5.11 commit · Sep 2026
Dependencies
Installing boundedur adds no packages beyond those that come with R.
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 1.0.3Latest
- RR 4.6.0 released · 2026-04-24
- 1.0.12026-03-16
- RR 4.5.0 released · 2025-04-11
Package metadata
- First published
- 2026-03-16
- Total releases
- 2 / 1 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 3.5.0
- Download size
- 14 KB
Cite
Cite this package
Run in R for the authors' entry:
citation("boundedur")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.32614/cran.package.boundedur.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.