| Title: | Exact Finite-Sample Value-at-Risk Back-Testing | 
| Version: | 0.1.3 | 
| Language: | en-US | 
| Maintainer: | Yujian Chen <yjc4996@gmail.com> | 
| Description: | Provides fast dynamic-programming algorithms in 'C++'/'Rcpp' (with pure 'R' fallbacks) for the exact finite-sample distributions and p-values of Christoffersen (1998) independence (IND) and conditional-coverage (CC) VaR backtests. For completeness, it also provides the exact unconditional-coverage (UC) test following Kupiec (1995) via a closed-form binomial enumeration. See Christoffersen (1998) <doi:10.2307/2527341> and Kupiec (1995) <doi:10.3905/jod.1995.407942>. | 
| License: | GPL (≥ 3) | 
| Depends: | R (≥ 3.5.0) | 
| Imports: | Rcpp, stats | 
| LinkingTo: | Rcpp | 
| Suggests: | bench, dplyr, tidyr, purrr, ggplot2, xts, quantmod, knitr, rmarkdown, testthat (≥ 3.0.0) | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| URL: | https://github.com/YujianCHEN219/ExactVaRTest | 
| BugReports: | https://github.com/YujianCHEN219/ExactVaRTest/issues | 
| Acknowledgements: | I greatly appreciate Christian Francq, Christophe Hurlin, and Jean-Michel Zakoian's guidance and support. In particular, Christian Francq generously shared the initial idea; without his help, this package would not exist. | 
| Config/testthat/edition: | 3 | 
| VignetteBuilder: | knitr | 
| NeedsCompilation: | yes | 
| Packaged: | 2025-08-18 19:43:47 UTC; chenyujian | 
| Author: | Yujian Chen [aut, cre] | 
| Repository: | CRAN | 
| Date/Publication: | 2025-08-22 17:20:02 UTC | 
ExactVaRTest – Exact Finite-Sample VaR Back-Testing
Description
Provides fast dynamic‑programming algorithms (C++/Rcpp) – with pure‑R fall‑backs – for the exact finite‑sample distributions and p‑values of Christoffersen’s (1998) VaR back‑tests: Independence (IND) and Conditional Coverage (CC) tests, and the Unconditional Coverage (UC) test via closed‑form binomial enumeration.
Author(s)
Maintainer: Yujian Chen yjc4996@gmail.com
See Also
Useful links:
- Report bugs at https://github.com/YujianCHEN219/ExactVaRTest/issues 
Exact UC/IND/CC back‑tests in one call
Description
Exact UC/IND/CC back‑tests in one call
Usage
backtest_all(x, alpha = 0.05, sig = 0.05, prune_threshold = 1e-15)
Arguments
| x | 0/1 exception series. | 
| alpha | Exception probability. | 
| sig | Significance level (default  | 
| prune_threshold | Passed to the dynamic programming engine. | 
Value
An object of class "ExactVaRBacktestAll" (a named list) with components:
uc, ind, cc (each a list with stat, pval, reject),
and scalars sig (significance level), alpha (model exception probability),
n (sample size).
Examples
set.seed(1)
x <- rbinom(300, 1, 0.02)
backtest_all(x, alpha = 0.02)
Exact finite‑sample back‑test for a VaR exception series
Description
Exact finite‑sample back‑test for a VaR exception series
Usage
backtest_lr(
  x,
  alpha = 0.05,
  type = c("uc", "ind", "cc"),
  sig = 0.05,
  prune_threshold = 1e-15
)
Arguments
| x | 0/1 exception series. | 
| alpha | Exception probability. | 
| type | 
 | 
| sig | Significance level (default  | 
| prune_threshold | Passed to the dynamic‑programming engine. | 
Value
An object of class "ExactVaRBacktest" (a named list) with components:
stat (numeric LR statistic),
pval (numeric exact p-value in [0,1]),
reject (logical; TRUE if p < sig),
type (character; one of "uc", "ind", "cc"),
alpha (numeric model exception probability),
sig (numeric significance level),
n (integer sample size).
Examples
set.seed(123)
x <- rbinom(250, 1, 0.01)
backtest_lr(x, alpha = 0.01, type = "uc")
Exact LR_cc (and LR_uc) distribution (auto‑select engine)
Description
Returns the finite‑sample distribution of Christoffersen’s conditional‑coverage
statistic LR_{\mathrm{cc}}.  The returned list also includes the matching
unconditional‑coverage distribution LR_{\mathrm{uc}}, produced by the same
dynamic‑programming run.
Usage
lr_cc_dist(n, alpha = 0.05, prune_threshold = 1e-15)
Arguments
| n | Integer sample size ( | 
| alpha | Exception probability  | 
| prune_threshold | Probability below which states are pruned by the dynamic‑programming recursion. | 
Value
A named list with elements LR_cc, prob_cc, LR_uc,
prob_uc. The pairs (LR_cc, prob_cc) and (LR_uc, prob_uc)
have equal lengths; each probability vector is in [0,1] and sums to 1.
Examples
lr_cc_dist(8, 0.05)
Christoffersen LR_cc statistic
Description
Christoffersen LR_cc statistic
Usage
lr_cc_stat(x, alpha = 0.05)
Arguments
| x | 0/1 exception series. | 
| alpha | Exception probability. | 
Value
Numeric LR_cc statistic.
Exact LR_ind distribution (auto‑select engine)
Description
Returns the finite‑sample distribution of Christoffersen’s independence
statistic LR_{\mathrm{ind}}.
Usage
lr_ind_dist(n, alpha = 0.05, prune_threshold = 1e-15)
Arguments
| n | Integer sample size ( | 
| alpha | Exception probability  | 
| prune_threshold | Probability below which states are pruned by the dynamic‑programming recursion. | 
Value
A named list with elements LR and prob of equal length,
where LR is the support of the LR statistic and prob are the
corresponding probabilities in [0,1] that sum to 1.
Examples
lr_ind_dist(8, 0.05)
Christoffersen LR_ind statistic
Description
Christoffersen LR_ind statistic
Usage
lr_ind_stat(x, alpha = 0.05)
Arguments
| x | 0/1 exception series. | 
| alpha | Exception probability. | 
Value
Numeric LR_ind statistic.
Exact LR_uc distribution (closed‑form binomial)
Description
Exact LR_uc distribution (closed‑form binomial)
Usage
lr_uc_dist(n, alpha = 0.05)
Arguments
| n | Integer sample size ( | 
| alpha | Exception probability  | 
Value
A named list with elements LR and prob of equal length,
where LR is the support of the LR statistic and prob are the
corresponding probabilities in [0,1] that sum to 1.
Examples
lr_uc_dist(8, 0.01)
Christoffersen LR_uc statistic
Description
Christoffersen LR_uc statistic
Usage
lr_uc_stat(x, alpha = 0.05)
Arguments
| x | 0/1 exception series. | 
| alpha | Exception probability. | 
Value
Numeric LR_uc statistic.
Print method for ExactVaRBacktest
Description
Print method for ExactVaRBacktest
Usage
## S3 method for class 'ExactVaRBacktest'
print(x, digits = max(3L, getOption("digits") - 3L), ...)
Arguments
| x | An object of class 'ExactVaRBacktest'. | 
| digits | Number of digits to print. | 
| ... | Further arguments passed to or from other methods (ignored). | 
Details
Prints the test name, sample size n, model alpha, significance level,
LR statistic, exact p-value, and the decision at the specified level.
Value
The input object x, returned invisibly (class ExactVaRBacktest).
Print method for ExactVaRBacktestAll
Description
Print method for ExactVaRBacktestAll
Usage
## S3 method for class 'ExactVaRBacktestAll'
print(x, digits = max(3L, getOption("digits") - 3L), ...)
Arguments
| x | An object of class 'ExactVaRBacktestAll'. | 
| digits | Number of digits to print. | 
| ... | Further arguments passed to or from other methods (ignored). | 
Details
Prints a header with sample size n, model alpha and significance level,
followed by per-test blocks for UC, IND, and CC: LR statistic, exact p-value,
and the decision at the specified level.
Value
The input object x, returned invisibly (class ExactVaRBacktestAll).
Exact p-value for LR_cc
Description
Exact p-value for LR_cc
Usage
pval_lr_cc(lr_obs, n, alpha = 0.05, prune_threshold = 1e-15)
Arguments
| lr_obs | Observed LR_cc statistic. | 
| n | Sample size. | 
| alpha | Exception probability. | 
| prune_threshold | State-pruning threshold for DP engine. | 
Value
Numeric exact p-value in [0,1]; may be NA_real_ if the
finite-sample distribution is unavailable.
Exact p-value for LR_ind
Description
Exact p-value for LR_ind
Usage
pval_lr_ind(lr_obs, n, alpha = 0.05, prune_threshold = 1e-15)
Arguments
| lr_obs | Observed LR_ind statistic. | 
| n | Sample size. | 
| alpha | Exception probability. | 
| prune_threshold | State-pruning threshold for DP engine. | 
Value
Numeric exact p-value in [0,1]; may be NA_real_ if the
finite-sample distribution is unavailable.
Exact p-value for LR_uc
Description
Exact p-value for LR_uc
Usage
pval_lr_uc(lr_obs, n, alpha = 0.05)
Arguments
| lr_obs | Observed LR_uc statistic. | 
| n | Sample size. | 
| alpha | Exception probability. | 
Value
Numeric exact p-value in [0,1]; may be NA_real_ if the
finite-sample distribution is unavailable.