nag_deviates_f_vector (g01tdc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_deviates_f_vector (g01tdc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_deviates_f_vector (g01tdc) returns a number of deviates associated with given probabilities of the F or variance-ratio distribution with real degrees of freedom.

2  Specification

#include <nag.h>
#include <nagg01.h>
void  nag_deviates_f_vector (Integer ltail, const Nag_TailProbability tail[], Integer lp, const double p[], Integer ldf1, const double df1[], Integer ldf2, const double df2[], double f[], Integer ivalid[], NagError *fail)

3  Description

The deviate, fpi, associated with the lower tail probability, pi, of the F-distribution with degrees of freedom ui and vi is defined as the solution to
P Fi fpi :ui,vi = pi = u i 12 ui v i 12 vi Γ ui + vi 2 Γ ui 2 Γ vi 2 0 fpi Fi 12 ui-2 vi + ui Fi -12 ui + vi dFi ,
where ui,vi>0; 0fpi<.
The value of fpi is computed by means of a transformation to a beta distribution, P iβi Bi βi :ai,bi :
P Fi fpi :ui,vi = P iβi Bi ui fpi ui fpi + vi : ui / 2 , vi / 2
and using a call to nag_deviates_beta_vector (g01tec).
For very large values of both ui and vi, greater than 105, a Normal approximation is used. If only one of ui or vi is greater than 105 then a χ2 approximation is used; see Abramowitz and Stegun (1972).
The input arrays to this function are designed to allow maximum flexibility in the supply of vector arguments by re-using elements of any arrays that are shorter than the total number of evaluations required. See Section 2.6 in the g01 Chapter Introduction for further information.

4  References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Hastings N A J and Peacock J B (1975) Statistical Distributions Butterworth

5  Arguments

1:     ltailIntegerInput
On entry: the length of the array tail.
Constraint: ltail>0.
2:     tail[ltail]const Nag_TailProbabilityInput
On entry: indicates which tail the supplied probabilities represent. For j= i-1 mod ltail , for i=1,2,,maxltail,lp,ldf1,ldf2:
tail[j]=Nag_LowerTail
The lower tail probability, i.e., pi = P Fi fpi : ui , vi .
tail[j]=Nag_UpperTail
The upper tail probability, i.e., pi = P Fi fpi : ui , vi .
Constraint: tail[j-1]=Nag_LowerTail or Nag_UpperTail, for j=1,2,,ltail.
3:     lpIntegerInput
On entry: the length of the array p.
Constraint: lp>0.
4:     p[lp]const doubleInput
On entry: pi, the probability of the required F-distribution as defined by tail with pi=p[j], j=i-1 mod lp.
Constraints:
  • if tail[k]=Nag_LowerTail, 0.0p[j]<1.0;
  • otherwise 0.0<p[j]1.0.
Where k=i-1 mod ltail and j=i-1 mod lp.
5:     ldf1IntegerInput
On entry: the length of the array df1.
Constraint: ldf1>0.
6:     df1[ldf1]const doubleInput
On entry: ui, the degrees of freedom of the numerator variance with ui=df1[j], j=i-1 mod ldf1.
Constraint: df1[j-1]>0.0, for j=1,2,,ldf1.
7:     ldf2IntegerInput
On entry: the length of the array df2.
Constraint: ldf2>0.
8:     df2[ldf2]const doubleInput
On entry: vi, the degrees of freedom of the denominator variance with vi=df2[j], j=i-1 mod ldf2.
Constraint: df2[j-1]>0.0, for j=1,2,,ldf2.
9:     f[dim]doubleOutput
Note: the dimension, dim, of the array f must be at least maxltail,lp,ldf1,ldf2.
On exit: fpi, the deviates for the F-distribution.
10:   ivalid[dim]IntegerOutput
Note: the dimension, dim, of the array ivalid must be at least maxltail,lp,ldf1,ldf2.
On exit: ivalid[i-1] indicates any errors with the input arguments, with
ivalid[i-1]=0
No error.
ivalid[i-1]=1
On entry,invalid value supplied in tail when calculating fpi.
ivalid[i-1]=2
On entry,invalid value for pi.
ivalid[i-1]=3
On entry,ui0.0,
orvi0.0.
ivalid[i-1]=4
The solution has not converged. The result should still be a reasonable approximation to the solution.
ivalid[i-1]=5
The value of pi is too close to 0.0 or 1.0 for the result to be computed. This will only occur when the large sample approximations are used.
11:   failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
NE_ARRAY_SIZE
On entry, array size=value.
Constraint: ldf1>0.
On entry, array size=value.
Constraint: ldf2>0.
On entry, array size=value.
Constraint: lp>0.
On entry, array size=value.
Constraint: ltail>0.
NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NW_IVALID
On entry, at least one value of tail, p, df1, df2 was invalid, or the solution failed to converge.
Check ivalid for more information.

7  Accuracy

The result should be accurate to five significant digits.

8  Further Comments

For higher accuracy nag_deviates_beta_vector (g01tec) can be used along with the transformations given in Section 3.

9  Example

This example reads the lower tail probabilities for several F-distributions, and calculates and prints the corresponding deviates.

9.1  Program Text

Program Text (g01tdce.c)

9.2  Program Data

Program Data (g01tdce.d)

9.3  Program Results

Program Results (g01tdce.r)


nag_deviates_f_vector (g01tdc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012