Inversion Tests for Distributions

Description

Functions to check performance of distribution and quantile functions. Applying the distribution function followed by the quantile function to a set of numbers should reproduce the original set of numbers. Likewise applying the quantile function followed by the distribution function to numbers in the range (0,1) should produce the original numbers.

Usage

1
2
3
4
5
6
7
8
inversionTestpq(densFn = "norm", n = 10,
                intTol = .Machine$double.eps^0.25,
                uniTol = intTol, x = NULL, method = "spline", ...)
inversionTestqp(densFn = "norm",
                qs = c(0.001, 0.01, 0.025, 0.05, 0.1, 0.2, 0.4, 0.5,
                       0.6, 0.8, 0.9, 0.95, 0.975, 0.99, 0.999),
                uniTol = .Machine$double.eps^0.25,
                intTol = uniTol, method = "spline", ...)

Arguments

densFn

Character. The root name of the distribution to be tested.

qs

Numeric. Set of quantiles to which quantile function then distribution function will be applied. See Details.

n

Numeric. Number of values to be sampled from the distribution. See Details.

x

Numeric. Values at which the distribution function is to be evaluated. If NULL values are drawn at random from the distribution.

intTol

Value of rel.tol and hence abs.tol in calls to integrate. See integrate.

uniTol

Value of tol in calls to uniroot. See uniroot.

method

Character. If "spline" quantiles are found from a spline approximation to the distribution function. If "integrate", the distribution function used is always obtained by integration.

...

Additional arguments to allow specification of the parameters of the distribution.

Details

inversionTestpq takes a sample from the specified distribution of size n then applies the distribution function, followed by the quantile function. inversionTestqp applies the quantile function, followed by the distribution function to the set of quantiles specified by qs.

In both cases the starting and ending values should be the same.

These tests are used in base R to check the standard distribution functions. The code may be found in the file d-p-q-r.tests.R in the tests directory.

Value

inversionTestpq returns a list with components:

qpx

Numeric. The result of applying the distribution function (‘p’ function) then the quantile function (‘q’ function) to the randomly generated set of x values.

x

Numeric. The set of x values generated by the ‘r’ function.

diffs

Numeric. The differences qpx minus x.

n

Numeric. Number of values sampled from the distribution.

inversionTestqp returns a list with components:

pqqs

Numeric. The result of applying the quantile function (‘q’ function) then the distribution function (‘p’ function) to the quantiles qs.

qs

Numeric. The set of quantiles.

diffs

Numeric. The differences pqqs minus qs.

Author(s)

David Scott d.scott@auckland.ac.nz, Christine Yang Dong c.dong@auckland.ac.nz

Examples

1
2
3
4
5
6
7
8
9
## Default distribution is normal
inversionTestpq()
inversionTestqp()
## Supply parameters
inversionTestpq(mean = 1, sd = 2)
inversionTestqp(mean = 1, sd = 2)
## Gamma distribution, must specify shape
inversionTestpq("gamma", shape = 1)
inversionTestqp("gamma", shape = 1)