Evaluates the inverse of the noncentral chi-squared function.
#include <imsls.h>
float imsls_f_non_central_chi_sq_inv (float p, float df, float delta)
The type double function is imsls_d_non_central_chi_sq_inv.
float p
(Input)
Probability
for which the inverse of the noncentral chi-squared distribution function is to
be evaluated. p must be in the open
interval (0.0, 1.0).
float
df
(Input)
Number
of degrees of freedom of the noncentral chi-squared distribution. Argument df
must be greater than or equal to 0.5
float
delta
(Input)
The
noncentrality parameter. delta must be nonnegative,
and delta + df must be less than or
equal to 200,000.
The probability that a noncentral chi-squared random variable takes a value less than or equal to imsls_f_non_central_chi_sq_inv is p.
Function imsls_f_non_central_chi_sq_inv
evaluates the inverse distribution function of a noncentral chi-squared random
variable with
df
degrees of freedom and noncentrality parameter delta;
that is, with P = p,
v = df,
and l = delta,
it determines c0 (= imsls_f_non_central_chi_sq_inv
(p,
df, delta)), such that
where G(×) is the gamma function. The probability that the random variable takes a value less than or equal to c0 is P.
Function imsls_f_non_central_chi_sq_inv
uses bisection and modified regula falsi to invert the distribution function,
which is evaluated using
routine imsls_f_non_central_chi_sq.
See imsls_f_non_central_chi_sq
for an alternative definition of the noncentral chi-squared random variable in
terms of normal random variables.
In this example, we find the 95-th percentage point for a noncentral chi-squared random variable with 2 degrees of freedom and noncentrality parameter 1.
#include <imsls.h>
#include <stdio.h>
void main()
{
float p = .95;
int df = 2;
float delta = 1.0;
float chi_squared;
chi_squared = imsls_f_non_central_chi_sq_inv(p, df, delta);
printf("The 0.05 noncentral chi-squared critical value is %6.4f.\n",
chi_squared);
}
The 0.05 noncentral chi-squared critical value is 8.6422.
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |