Calibration Tests for Poisson or Negative Binomial Predictions
calibration.Rd
The implemented calibration tests for Poisson or negative binomial
predictions of count data are based on proper scoring rules and
described in detail in Wei and Held (2014).
The following proper scoring rules are available:
Dawid-Sebastiani score ("dss"
),
logarithmic score ("logs"
),
ranked probability score ("rps"
).
Usage
calibrationTest(x, ...)
# Default S3 method
calibrationTest(x, mu, size = NULL,
which = c("dss", "logs", "rps"),
tolerance = 1e-4, method = 2, ...)
Arguments
- x
the observed counts. All involved functions are vectorized and also accept matrices or arrays.
- mu
the means of the predictive distributions for the observations
x
.- size
either
NULL
(default), indicating Poisson predictions with meanmu
, or dispersion parameters of negative binomial forecasts for the observationsx
, parametrized as indnbinom
with variancemu*(1+mu/size)
.- which
a character string indicating which proper scoring rule to apply.
- tolerance
absolute tolerance for the null expectation and variance of
"logs"
and"rps"
. For the latter, see the note below. Unused forwhich = "dss"
(closed form).- method
selection of the \(z\)-statistic:
method = 2
refers to the alternative test statistic \(Z_s^*\) of Wei and Held (2014, Discussion), which has been recommended for low counts.method = 1
corresponds to Equation 5 in Wei and Held (2014).- ...
unused (argument of the generic).
Value
an object of class "htest"
,
which is a list with the following components:
- method
a character string indicating the type of test performed (including
which
scoring rule).- data.name
a character string naming the supplied
x
argument.- statistic
the \(z\)-statistic of the test.
- parameter
the number of predictions underlying the test, i.e.,
length(x)
.- p.value
the p-value for the test.
Note
If the gsl package is installed, its implementations of the
Bessel and hypergeometric functions are used when calculating the null
expectation and variance of the rps
.
These functions are faster and yield more accurate results (especially
for larger mu
).
Examples
mu <- c(0.1, 1, 3, 6, pi, 100)
size <- 0.1
set.seed(1)
y <- rnbinom(length(mu), mu = mu, size = size)
calibrationTest(y, mu = mu, size = size) # p = 0.99
calibrationTest(y, mu = mu, size = 1) # p = 4.3e-05
calibrationTest(y, mu = 1, size = size) # p = 0.6959
calibrationTest(y, mu = 1, size = size, which = "rps") # p = 0.1286