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)
vector of quantiles (called q
in pt(..)
).
degrees of freedom (\(> 0\), maybe non-integer). df
= Inf
is allowed.
non-centrality parameter \(\delta \ge 0\); If omitted, use the central t distribution.
logical; if TRUE, probabilities p are given as log(p).
logical; if TRUE (default), probabilities are \(P[X \le x]\), otherwise, \(P[X > x]\).
number of iterations / terms.
convergence bound for the iterations.
logical
or integer determining the amount of
diagnostic print out to the console.
positive integer specifying the number of terms to use in the series.
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()
.
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| \to \infty\). 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\).
%% \item{\code{pntChShP94()}:}{ .. } %% \item{\code{pntChShP94.1()}:}{ .. }
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.
# NOT RUN {
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
# }
Run the code above in your browser using DataLab