Learn R Programming

sadists (version 0.2.2)

dnt: The doubly non-central t distribution.

Description

Density, distribution function, quantile function and random generation for the doubly non-central t distribution.

Usage

ddnt(x, df, ncp1, ncp2, log = FALSE, order.max=6)
pdnt(q, df, ncp1, ncp2, lower.tail = TRUE, log.p = FALSE, order.max=6)
qdnt(p, df, ncp1, ncp2, lower.tail = TRUE, log.p = FALSE, order.max=6)
rdnt(n, df, ncp1, ncp2)

Arguments

x, q
vector of quantiles.
df
the degrees of freedom for the denominator, $v$. We do not recycle these versus the x,q,p,n.
ncp1, ncp2
the non-centrality parameters for the numerator and denominator, respectively, $mu$ and $theta$ We do not recycle these versus the x,q,p,n.
log
logical; if TRUE, densities $f$ are given as $log(f)$.
order.max
the order to use in the approximate density, distribution, and quantile computations, via the Gram-Charlier, Edeworth, or Cornish-Fisher expansion.
p
vector of probabilities.
n
number of observations.
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]$.

Value

ddnt gives the density, pdnt gives the distribution function, qdnt gives the quantile function, and rdnt generates random deviates.Invalid arguments will result in return value NaN with a warning.

Details

Let $Z ~ N(u,1)$ independently of $X ~ x^2(theta,v)$. The random variable $$T = \frac{Z}{\sqrt{X/\nu}}$$ takes a doubly non-central t distribution with parameters $v, mu, theta$.

References

Krishnan, Marakatha. "Series Representations of the Doubly Noncentral t-Distribution." Journal of the American Statistical Association 63, no. 323 (1968): 1004-1012.

See Also

t distribution functions, dt, pt, qt, rt

Examples

Run this code
rvs <- rdnt(128, 20, 1, 1)
dvs <- ddnt(rvs, 20, 1, 1)
pvs.H0 <- pdnt(rvs, 20, 0, 1)
pvs.HA <- pdnt(rvs, 20, 1, 1)
## Not run: 
# plot(ecdf(pvs.H0))
# plot(ecdf(pvs.HA))
# ## End(Not run)
# compare to singly non-central
dv1 <- ddnt(1, df=10, ncp1=5, ncp2=0, log=FALSE)
dv2 <- dt(1, df=10, ncp=5, log=FALSE)
pv1 <- pdnt(1, df=10, ncp1=5, ncp2=0, log.p=FALSE)
pv11 <- pdnt(1, df=10, ncp1=5, ncp2=0.001, log.p=FALSE)
v2 <- pt(1, df=10, ncp=5, log.p=FALSE)

q1 <- qdnt(pv1, df=10, ncp1=5, ncp2=0, log.p=FALSE)

Run the code above in your browser using DataLab