# NAG FL Interfaceg01jcf (prob_​chisq_​noncentral_​lincomb)

## ▸▿ Contents

Settings help

FL Name Style:

FL Specification Language:

## 1Purpose

g01jcf returns the lower tail probability of a distribution of a positive linear combination of ${\chi }^{2}$ random variables.

## 2Specification

Fortran Interface
 Subroutine g01jcf ( a, mult, n, c, p, pdf, tol, wrk,
 Integer, Intent (In) :: mult(n), n, maxit Integer, Intent (Inout) :: ifail Real (Kind=nag_wp), Intent (In) :: a(n), rlamda(n), c, tol Real (Kind=nag_wp), Intent (Out) :: p, pdf, wrk(n+2*maxit)
#include <nag.h>
 void g01jcf_ (const double a[], const Integer mult[], const double rlamda[], const Integer *n, const double *c, double *p, double *pdf, const double *tol, const Integer *maxit, double wrk[], Integer *ifail)
The routine may be called by the names g01jcf or nagf_stat_prob_chisq_noncentral_lincomb.

## 3Description

For a linear combination of noncentral ${\chi }^{2}$ random variables with integer degrees of freedom the lower tail probability is
 $P (∑j=1najχ2(mj,λj)≤c) ,$ (1)
where ${a}_{j}$ and $c$ are positive constants and where ${\chi }^{2}\left({m}_{j},{\lambda }_{j}\right)$ represents an independent ${\chi }^{2}$ random variable with ${m}_{j}$ degrees of freedom and noncentrality parameter ${\lambda }_{j}$. The linear combination may arise from considering a quadratic form in Normal variables.
Ruben's method as described in Farebrother (1984) is used. Ruben has shown that (1) may be expanded as an infinite series of the form
 $∑k=0∞dkF (m+2k,c/β) ,$ (2)
where $F\left(m+2k,c/\beta \right)=P\left({\chi }^{2}\left(m+2k\right), i.e., the probability that a central ${\chi }^{2}$ is less than $c/\beta$.
The value of $\beta$ is set at
 $β=βB=2(1/amin+1/amax)$
unless ${\beta }_{B}>1.8{a}_{\mathrm{min}}$, in which case
 $β=βA=amin$
is used, where ${a}_{\mathrm{min}}=\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left\{{a}_{j}\right\}$ and ${a}_{\mathrm{max}}=\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left\{{a}_{j}\right\}$, for $\mathit{j}=1,2,\dots ,n$.

## 4References

Farebrother R W (1984) The distribution of a positive linear combination of ${\chi }^{2}$ random variables Appl. Statist. 33(3)

## 5Arguments

1: $\mathbf{a}\left({\mathbf{n}}\right)$Real (Kind=nag_wp) array Input
On entry: the weights, ${a}_{1},{a}_{2},\dots ,{a}_{n}$.
Constraint: ${\mathbf{a}}\left(\mathit{i}\right)>0.0$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
2: $\mathbf{mult}\left({\mathbf{n}}\right)$Integer array Input
On entry: the degrees of freedom, ${m}_{1},{m}_{2},\dots ,{m}_{n}$.
Constraint: ${\mathbf{mult}}\left(\mathit{i}\right)\ge 1$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
3: $\mathbf{rlamda}\left({\mathbf{n}}\right)$Real (Kind=nag_wp) array Input
On entry: the noncentrality parameters, ${\lambda }_{1},{\lambda }_{2},\dots ,{\lambda }_{n}$.
Constraint: ${\mathbf{rlamda}}\left(\mathit{i}\right)\ge 0.0$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
4: $\mathbf{n}$Integer Input
On entry: $n$, the number of ${\chi }^{2}$ random variables in the combination, i.e., the number of terms in equation (1).
Constraint: ${\mathbf{n}}\ge 1$.
5: $\mathbf{c}$Real (Kind=nag_wp) Input
On entry: $c$, the point for which the lower tail probability is to be evaluated.
Constraint: ${\mathbf{c}}\ge 0.0$.
6: $\mathbf{p}$Real (Kind=nag_wp) Output
On exit: the lower tail probability associated with the linear combination of $n$ ${\chi }^{2}$ random variables with ${m}_{\mathit{j}}$ degrees of freedom, and noncentrality parameters ${\lambda }_{\mathit{j}}$, for $\mathit{j}=1,2,\dots ,n$.
7: $\mathbf{pdf}$Real (Kind=nag_wp) Output
On exit: the value of the probability density function of the linear combination of ${\chi }^{2}$ variables.
8: $\mathbf{tol}$Real (Kind=nag_wp) Input
On entry: the relative accuracy required by you in the results. If g01jcf is entered with tol greater than or equal to $1.0$ or less than (see x02ajf), the value of is used instead.
9: $\mathbf{maxit}$Integer Input
On entry: the maximum number of terms that should be used during the summation.
Suggested value: $500$.
Constraint: ${\mathbf{maxit}}\ge 1$.
10: $\mathbf{wrk}\left({\mathbf{n}}+2×{\mathbf{maxit}}\right)$Real (Kind=nag_wp) array Workspace
11: $\mathbf{ifail}$Integer Input/Output
On entry: ifail must be set to $0$, $-1$ or $1$ to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of $0$ causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of $-1$ means that an error message is printed while a value of $1$ means that it is not.
If halting is not appropriate, the value $-1$ or $1$ is recommended. If message printing is undesirable, then the value $1$ is recommended. Otherwise, the value $-1$ is recommended since useful values can be provided in some output arguments even when ${\mathbf{ifail}}\ne {\mathbf{0}}$ on exit. When the value $-\mathbf{1}$ or $\mathbf{1}$ is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

## 6Error Indicators and Warnings

If on entry ${\mathbf{ifail}}=0$ or $-1$, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
Note: in some cases g01jcf may return useful information.
If on exit ${\mathbf{ifail}}={\mathbf{1}}$ or ${\mathbf{2}}$, then g01jcf returns $0.0$.
${\mathbf{ifail}}=1$
On entry, ${\mathbf{c}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{c}}\ge 0.0$.
On entry, ${\mathbf{maxit}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{maxit}}\ge 1$.
On entry, ${\mathbf{n}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{n}}\ge 1$.
${\mathbf{ifail}}=2$
On entry, ${\mathbf{a}}\left(⟨\mathit{\text{value}}⟩\right)=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{a}}\left(\mathit{i}\right)>0.0$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
On entry, ${\mathbf{mult}}\left(⟨\mathit{\text{value}}⟩\right)=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{mult}}\left(\mathit{i}\right)\ge 1$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
On entry, ${\mathbf{rlamda}}\left(⟨\mathit{\text{value}}⟩\right)=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{rlamda}}\left(\mathit{i}\right)\ge 0.0$, for $\mathit{i}=1,2,\dots ,{\mathbf{n}}$.
${\mathbf{ifail}}=3$
The central ${\chi }^{2}$ calculation has failed to converge. This is an unlikely exit. A larger value of tol should be tried.
${\mathbf{ifail}}=4$
The solution has failed to converge within maxit iterations. A larger value of maxit or tol should be used. The returned value should be a reasonable approximation to the correct value.
${\mathbf{ifail}}=5$
The solution appears to be too close to $0$ or $1$ for accurate calculation. The value returned is $0$ or $1$ as appropriate.
${\mathbf{ifail}}=-99$
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

## 7Accuracy

The series (2) is summed until a bound on the truncation error is less than tol. See Farebrother (1984) for further discussion.

## 8Parallelism and Performance

g01jcf is not threaded in any implementation.

None.

## 10Example

The number of ${\chi }^{2}$ variables is read along with their coefficients, degrees of freedom and noncentrality parameters. The lower tail probability is then computed and printed.

### 10.1Program Text

Program Text (g01jcfe.f90)

### 10.2Program Data

Program Data (g01jcfe.d)

### 10.3Program Results

Program Results (g01jcfe.r)