nag_prob_lin_chi_sq (g01jdc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_prob_lin_chi_sq (g01jdc)

## 1  Purpose

nag_prob_lin_chi_sq (g01jdc) calculates the lower tail probability for a linear combination of (central) ${\chi }^{2}$ variables.

## 2  Specification

 #include #include
 void nag_prob_lin_chi_sq (Nag_LCCMethod method, Integer n, const double rlam[], double d, double c, double *prob, NagError *fail)

## 3  Description

Let ${u}_{1},{u}_{2},\dots ,{u}_{n}$ be independent Normal variables with mean zero and unit variance, so that ${u}_{1}^{2},{u}_{2}^{2},\dots ,{u}_{n}^{2}$ have independent ${\chi }^{2}$-distributions with unit degrees of freedom. nag_prob_lin_chi_sq (g01jdc) evaluates the probability that
 $λ1u12+λ2u22+⋯+λnun2
If $c=0.0$ this is equivalent to the probability that
 $λ1u12+λ2u22+⋯+λnun2 u12+u22+⋯+un2
Alternatively let
 $λi*=λi-d, ​ i= 1,2,…,n,$
then nag_prob_lin_chi_sq (g01jdc) returns the probability that
 $λ1*u12+λ2*u22+⋯+λn*un2
Two methods are available. One due to Pan (1964) (see Farebrother (1980)) makes use of series approximations. The other method due to Imhof (1961) reduces the problem to a one-dimensional integral. If $n\ge 6$ then a non-adaptive method is used to compute the value of the integral otherwise nag_1d_quad_gen_1 (d01sjc) is used.
Pan's procedure can only be used if the ${\lambda }_{i}^{*}$ are sufficiently distinct; nag_prob_lin_chi_sq (g01jdc) requires the ${\lambda }_{i}^{*}$ to be at least $1%$ distinct; see Section 9. If the ${\lambda }_{i}^{*}$ are at least $1%$ distinct and $n\le 60$, then Pan's procedure is recommended; otherwise Imhof's procedure is recommended.
Farebrother R W (1980) Algorithm AS 153. Pan's procedure for the tail probabilities of the Durbin–Watson statistic Appl. Statist. 29 224–227
Imhof J P (1961) Computing the distribution of quadratic forms in Normal variables Biometrika 48 419–426
Pan Jie–Jian (1964) Distributions of the noncircular serial correlation coefficients Shuxue Jinzhan 7 328–337

## 5  Arguments

1:     methodNag_LCCMethodInput
On entry: indicates whether Pan's, Imhof's or an appropriately selected procedure is to be used.
${\mathbf{method}}=\mathrm{Nag_LCCPan}$
Pan's method is used.
${\mathbf{method}}=\mathrm{Nag_LCCImhof}$
Imhof's method is used.
${\mathbf{method}}=\mathrm{Nag_LCCDefault}$
Pan's method is used if ${\lambda }_{\mathit{i}}^{*}$, for $\mathit{i}=1,2,\dots ,n$ are at least $1%$ distinct and $n\le 60$; otherwise Imhof's method is used.
Constraint: ${\mathbf{method}}=\mathrm{Nag_LCCPan}$, $\mathrm{Nag_LCCImhof}$ or $\mathrm{Nag_LCCDefault}$.
2:     nIntegerInput
On entry: $n$, the number of independent standard Normal variates, (central ${\chi }^{2}$ variates).
Constraint: ${\mathbf{n}}\ge 1$.
3:     rlam[n]const doubleInput
On entry: the weights, ${\lambda }_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,n$, of the central ${\chi }^{2}$ variables.
Constraint: ${\mathbf{rlam}}\left[\mathit{i}-1\right]\ne {\mathbf{d}}$ for at least one $\mathit{i}$. If ${\mathbf{method}}=\mathrm{Nag_LCCPan}$, then the ${\lambda }_{\mathit{i}}^{*}$ must be at least $1%$ distinct; see Section 9, for $\mathit{i}=1,2,\dots ,n$.
4:     ddoubleInput
On entry: $d$, the multiplier of the central ${\chi }^{2}$ variables.
Constraint: ${\mathbf{d}}\ge 0.0$.
5:     cdoubleInput
On entry: $c$, the value of the constant.
6:     probdouble *Output
On exit: the lower tail probability for the linear combination of central ${\chi }^{2}$ variables.
7:     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_BAD_PARAM
On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
NE_INT
On entry, ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{n}}\ge 1$.
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.
NE_REAL
On entry, ${\mathbf{d}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{d}}\ge 0.0$.
NE_REAL_ARRAY
On entry, all values of ${\mathbf{rlam}}={\mathbf{d}}$.
NE_REAL_ARRAY_ENUM
On entry, ${\mathbf{method}}=\mathrm{Nag_LCCPan}$ but two successive values of $\lambda *$ were not $1$ percent distinct.

## 7  Accuracy

On successful exit at least four decimal places of accuracy should be achieved.

## 8  Parallelism and Performance

nag_prob_lin_chi_sq (g01jdc) is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the Users' Note for your implementation for any additional implementation-specific information.

## 9  Further Comments

Pan's procedure can only work if the ${\lambda }_{i}^{*}$ are sufficiently distinct. nag_prob_lin_chi_sq (g01jdc) uses the check $\left|{w}_{j}-{w}_{j-1}\right|\ge 0.01×\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(\left|{w}_{j}\right|,\left|{w}_{j-1}\right|\right)$, where the ${w}_{j}$ are the ordered nonzero values of ${\lambda }_{i}^{*}$.
For the situation when all the ${\lambda }_{i}$ are positive nag_prob_lin_non_central_chi_sq (g01jcc) may be used. If the probabilities required are for the Durbin–Watson test, then the bounds for the probabilities are given by nag_prob_durbin_watson (g01epc).

## 10  Example

For $n=10$, the choice of method, values of $c$ and $d$ and the ${\lambda }_{i}$ are input and the probabilities computed and printed.

### 10.1  Program Text

Program Text (g01jdce.c)

### 10.2  Program Data

Program Data (g01jdce.d)

### 10.3  Program Results

Program Results (g01jdce.r)

nag_prob_lin_chi_sq (g01jdc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG Library Manual