TDist {stats} | R Documentation

## The Student t Distribution

### Description

Density, distribution function, quantile function and random generation for the t distribution with `df` degrees of freedom (and optional non-centrality parameter `ncp`).

### Usage

    dt(x, df, ncp, log = FALSE)
    pt(q, df, ncp, lower.tail = TRUE, log.p = FALSE)
    qt(p, df, ncp, lower.tail = TRUE, log.p = FALSE)
    rt(n, df, ncp)

### Arguments

`x, q` | vector of quantiles.
`p` | vector of probabilities.
`n` | number of observations. If `length(n) > 1`, the length is taken to be the number required.
`df` | degrees of freedom (> 0, maybe non-integer). `df = Inf` is allowed.
`ncp` | non-centrality parameter delta; currently except for `rt()`, only for `abs(ncp) <= 37.62`. 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].

### Details

The t distribution with `df` = n degrees of freedom has density

f(x) = Γ((n+1)/2) / (√(n π) Γ(n/2)) (1 + x^2/n)^-((n+1)/2)

for all real x. It has mean 0 (for n > 1) and variance n/(n-2) (for n > 2).

The general non-central t with parameters (df, Del) `= (df, ncp)` is defined as the distribution of T(df, Del) := (U + Del) / √(V/df) where U and V are independent random variables, U ~ N(0,1) and V ~ χ^2(df) (see Chisquare).

The most used applications are power calculations for t-tests:
Let T= (mX - m0) / (S/sqrt(n)) where mX is the `mean` and S the sample standard deviation (`sd`) of X_1, X_2, …, X_n which are i.i.d. N(μ, σ^2) Then T is distributed as non-central t with `df`= n - 1 degrees of freedom and non-centrality parameter `ncp` = (μ - m0) * sqrt(n)/σ.

### Value

`dt` gives the density, `pt` gives the distribution function, `qt` gives the quantile function, and `rt` generates random deviates.

Invalid arguments will result in return value `NaN`, with a warning.

### Note

Supplying `ncp = 0` uses the algorithm for the non-central distribution, which is not the same algorithm used if `ncp` is omitted. This is to give consistent behaviour in extreme cases with values of `ncp` very near zero.

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.

### Source

The central `dt` is computed via an accurate formula provided by Catherine Loader (see the reference in `dbinom`).

For the non-central case of `dt`, C code contributed by Claus Ekstrøm based on the relationship (for x != 0) to the cumulative distribution.

For the central case of `pt`, a normal approximation in the tails, otherwise via `pbeta`.

For the non-central case of `pt` based on a C translation of

Lenth, R. V. (1989). Algorithm AS 243 — Cumulative distribution function of the non-central t distribution, Applied Statistics 38, 185–189.

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.

For central `qt`, a C translation of

Hill, G. W. (1970) Algorithm 396: Student's t-quantiles. Communications of the ACM, 13(10), 619–620.

altered to take account of

Hill, G. W. (1981) Remark on Algorithm 396, ACM Transactions on Mathematical Software, 7, 250–1.

The non-central case is done by inversion.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole. (Except non-central versions.)

Johnson, N. L., Kotz, S. and Balakrishnan, N. (1995) Continuous Univariate Distributions, volume 2, chapters 28 and 31. Wiley, New York.

### See Also

Distributions for other standard distributions, including `df` for the F distribution.

### Examples

    require(graphics)

    1 - pt(1:5, df = 1)
    qt(.975, df = c(1:10,20,50,100,1000))

    tt <- seq(0,10, len=21)
    ncp <- seq(0,6, len=31)
    ptn <- outer(tt,ncp, function(t,d) pt(t, df = 3, ncp=d))
    t.tit <- "Non-central t - Probabilities"
    image(tt,ncp,ptn, zlim=c(0,1), main = t.tit)
    persp(tt,ncp,ptn, zlim=0:1, r=2, phi=20, theta=200, main=t.tit,
          xlab = "t", ylab = "non-centrality parameter",
          zlab = "Pr(T <= t)")

    plot(function(x) dt(x, df = 3, ncp = 2), -3, 11, ylim = c(0, 0.32),
         main="Non-central t - Density", yaxs="i")

[Package stats version 2.15.1 Index]