t_cdf
Evaluates the Student’s t cumulative distribution function (CDF).
Synopsis
#include <imsls.h>
float imsls_f_t_cdf (float t, float df)
The type double function is imsls_d_t_cdf.
Required Arguments
float t (Input)
Argument for which the Student’s t cumulative distribution function is to be evaluated.
float df (Input)
Degrees of freedom. Argument df must be greater than or equal to 1.0.
Return Value
The probability that a Student’s t random variable takes a value less than or equal to the input t.
Description
Function imsls_f_t_cdf evaluates the cumulative distribution function of a Student’s t random variable with ν = df degrees of freedom. If t2 ≥ ν, the following identity relating the Student’s t cumulative distribution function, F(t, ν) to the incomplete beta ratio function is used:
where
and
If t2 < ν, the solution space is partitioned into four algorithms as follows: If ν ≥ 64 and t2/ν ≤ 0.1, a Cornish-Fisher expansion is used to evaluate the distribution function. If ν < 64 and an integer and |t| < 2.0, a trigonometric series is used (see Abramowitz and Stegun 1964, Equations 26.7.3 and 26.7.4 with some rearrangement). If ν < 64 and an integer and |t| ≥ 2.0, a series given by Hill (1970) that converges well for large values of t is used. For the remaining t2 < ν cases, F(t|ν) is calculated using the identity:
where
Figure 1, Plot of Ft (t, 6.0)
Example
This example finds the probability that a t random variable with 6 degrees of freedom is greater in absolute value than 2.447. The fact that t is symmetric about 0 is used.
#include <imsls.h>
#include <stdio.h>
int main ()
{
float t = 2.447, df = 6.0, p;
p = 2.0*imsls_f_t_cdf(-t,df);
printf("Pr(|t(%1.0f)| > %5.3f) = %6.4f\n", df, t, p);
}
Output
Pr(|t(6)| > 2.447) = 0.0500