| pnt {DPQ} | R Documentation |
Compute different approximations for the non-central t-Distribution cumulative probability distribution function.
pntR (t, df, ncp, lower.tail = TRUE, log.p = FALSE,
use.pnorm = (df > 4e5 ||
ncp^2 > 2*log(2)*(-.Machine$double.min.exp)),
itrmax = 1000, errmax = 1e-12, verbose = TRUE)
pntR1 (t, df, ncp, lower.tail = TRUE, log.p = FALSE,
use.pnorm = (df > 4e5 ||
ncp^2 > 2*log(2)*(-.Machine$double.min.exp)),
itrmax = 1000, errmax = 1e-12, verbose = TRUE)
pntP94 (t, df, ncp, lower.tail = TRUE, log.p = FALSE,
itrmax = 1000, errmax = 1e-12, verbose = TRUE)
pntP94.1 (t, df, ncp, lower.tail = TRUE, log.p = FALSE,
itrmax = 1000, errmax = 1e-12, verbose = TRUE)
pnt3150 (t, df, ncp, lower.tail = TRUE, log.p = FALSE, M = 1000, verbose = TRUE)
pnt3150.1 (t, df, ncp, lower.tail = TRUE, log.p = FALSE, M = 1000, verbose = TRUE)
pntLrg (t, df, ncp, lower.tail = TRUE, log.p = FALSE)
pntJW39 (t, df, ncp, lower.tail = TRUE, log.p = FALSE)
pntJW39.0 (t, df, ncp, lower.tail = TRUE, log.p = FALSE)
t |
vector of quantiles (called |
df |
degrees of freedom (> 0, maybe non-integer). |
ncp |
non-centrality parameter δ ≥ 0; If omitted, use the central t distribution. |
log, log.p |
logical; if TRUE, probabilities p are given as log(p). |
lower.tail |
logical; if TRUE (default), probabilities are P[X ≤ x], otherwise, P[X > x]. |
use.pnorm |
The default corresponds to R |
itrmax |
number of iterations / terms. |
errmax |
convergence bound for the iterations. |
verbose |
|
M |
positive integer specifying the number of terms to use in the series. |
pntR1():a pure R version of the (C level)
code of R's own pt(), additionally giving more
flexibility (via arguments use.pnorm, itrmax, errmax
whose defaults here have been hard-coded in R's C code).
This implements an improved version of the AS 243 algorithm from Lenth(1989);
pt() says:This computes the lower tail only, so the upper tail suffers from cancellation and a warning will be given when this is likely to be significant.
The code for non-zero
ncp is principally intended to be used for moderate
values of ncp: it will not be highly accurate,
especially in the tails, for large values.
pntR():the Vectorize()d version of pntR1().
pntP94(), pntP94.1():New versions of
pntR1(), pntR(); using the Posten (1994) algorithm.
pntP94() is the Vectorize()d version of
pntP94.1().
pnt3150(), pnt3150.1():Simple inefficient but hopefully correct version of pntP94..() This is really a direct implementation of formula (31.50), p.532 of Johnson, Kotz and Balakrishnan (1995)
pntLrg():provides the pnorm()
approximation (to the non-central t) from
Abramowitz and Stegun (26.7.10), p.949; which should be employed only for
large df and/or ncp.
pntJW39.0():use the Jennett & Welch (1939) approximation
see Johnson et al. (1995), p. 520, after (31.26a). This is still
fast for huge ncp but has wrong asymptotic tail
for |t| -> ∞. Crucially needs b=b_chi(df).
pntJW39():is an improved version of pntJW39.0(),
using 1-b =b_chi(df, one.minus=TRUE) to avoid
cancellation when computing 1 - b^2.
a number for pntJKBf1() and .pntJKBch1().
a numeric vector of the same length as the maximum of the lengths of
x, df, ncp for pntJKBf() and .pntJKBch().
Martin Maechler
Johnson, N.L., Kotz, S. and Balakrishnan, N. (1995)
Continuous Univariate Distributions Vol~2, 2nd ed.; Wiley.
Chapter 31, Section 5 Distribution Function, p.514 ff
Lenth, R. V. (1989). Algorithm AS 243 — Cumulative distribution function of the non-central t distribution, Applied Statistics 38, 185–189.
Abramowitz, M. and Stegun, I. A. (1972)
Handbook of Mathematical Functions. New York: Dover.
Formula (26.7.10), p.949
pt, for R's version of non-central t probabilities.
tt <- seq(0, 10, len = 21) ncp <- seq(0, 6, len = 31) dt3R <- outer(tt, ncp, pt, , df = 3) dt3JKB <- outer(tt, ncp, pntR, df = 3)# currently verbose stopifnot(all.equal(dt3R, dt3JKB, tolerance = 4e-15))# 64-bit Lnx: 2.78e-16