hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_stat_prob_gamma_vector (g01sf)

 Contents

    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example

Purpose

nag_stat_prob_gamma_vector (g01sf) returns a number of lower or upper tail probabilities for the gamma distribution.

Syntax

[p, ivalid, ifail] = g01sf(tail, g, a, b, 'ltail', ltail, 'lg', lg, 'la', la, 'lb', lb)
[p, ivalid, ifail] = nag_stat_prob_gamma_vector(tail, g, a, b, 'ltail', ltail, 'lg', lg, 'la', la, 'lb', lb)

Description

The lower tail probability for the gamma distribution with parameters αi and βi, PGigi, is defined by:
P Gi gi :αi,βi = 1 βi αi Γ αi 0 gi Gi αi-1 e -Gi/βi dGi ,   αi>0.0 , ​ βi>0.0 .  
The mean of the distribution is αiβi and its variance is αiβi2. The transformation Zi=Giβi is applied to yield the following incomplete gamma function in normalized form,
P Gi gi :αi,βi = P Zi gi / βi :αi,1.0 = 1 Γ αi 0 gi / βi Zi αi-1 e -Zi dZi .  
This is then evaluated using nag_specfun_gamma_incomplete (s14ba).
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 Vectorized Routines in the G01 Chapter Introduction for further information.

References

Hastings N A J and Peacock J B (1975) Statistical Distributions Butterworth

Parameters

Compulsory Input Parameters

1:     tailltail – cell array of strings
Indicates whether a lower or upper tail probability is required. For j= i-1 mod ltail +1 , for i=1,2,,maxltail,lg,la,lb:
tailj='L'
The lower tail probability is returned, i.e., pi = P Gi gi :αi,βi .
tailj='U'
The upper tail probability is returned, i.e., pi = P Gi gi :αi,βi .
Constraint: tailj='L' or 'U', for j=1,2,,ltail.
2:     glg – double array
gi, the value of the gamma variate with gi=gj, j=i-1 mod lg+1.
Constraint: gj0.0, for j=1,2,,lg.
3:     ala – double array
The parameter αi of the gamma distribution with αi=aj, j=i-1 mod la+1.
Constraint: aj>0.0, for j=1,2,,la.
4:     blb – double array
The parameter βi of the gamma distribution with βi=bj, j=i-1 mod lb+1.
Constraint: bj>0.0, for j=1,2,,lb.

Optional Input Parameters

1:     ltail int64int32nag_int scalar
Default: the dimension of the array tail.
The length of the array tail.
Constraint: ltail>0.
2:     lg int64int32nag_int scalar
Default: the dimension of the array g.
The length of the array g.
Constraint: lg>0.
3:     la int64int32nag_int scalar
Default: the dimension of the array a.
The length of the array a.
Constraint: la>0.
4:     lb int64int32nag_int scalar
Default: the dimension of the array b.
The length of the array b.
Constraint: lb>0.

Output Parameters

1:     p: – double array
The dimension of the array p will be maxlg,la,lb,ltail
pi, the probabilities of the beta distribution.
2:     ivalid: int64int32nag_int array
The dimension of the array ivalid will be maxlg,la,lb,ltail
ivalidi indicates any errors with the input arguments, with
ivalidi=0
No error.
ivalidi=1
On entry,invalid value supplied in tail when calculating pi.
ivalidi=2
On entry,gi<0.0.
ivalidi=3
On entry,αi0.0,
orβi0.0.
ivalidi=4
The solution did not converge in 600 iterations, see nag_specfun_gamma_incomplete (s14ba) for details. The probability returned should be a reasonable approximation to the solution.
3:     ifail int64int32nag_int scalar
ifail=0 unless the function detects an error (see Error Indicators and Warnings).

Error Indicators and Warnings

Errors or warnings detected by the function:

Cases prefixed with W are classified as warnings and do not generate an error of type NAG:error_n. See nag_issue_warnings.

W  ifail=1
On entry, at least one value of g, a, b or tail was invalid, or the solution did not converge.
Check ivalid for more information.
   ifail=2
Constraint: ltail>0.
   ifail=3
Constraint: lg>0.
   ifail=4
Constraint: la>0.
   ifail=5
Constraint: lb>0.
   ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
   ifail=-399
Your licence key may have expired or may not have been installed correctly.
   ifail=-999
Dynamic memory allocation failed.

Accuracy

The result should have a relative accuracy of machine precision. There are rare occasions when the relative accuracy attained is somewhat less than machine precision but the error should not exceed more than 1 or 2 decimal places.

Further Comments

The time taken by nag_stat_prob_gamma_vector (g01sf) to calculate each probability varies slightly with the input arguments gi, αi and βi.

Example

This example reads in values from a number of gamma distributions and computes the associated lower tail probabilities.
function g01sf_example


fprintf('g01sf example results\n\n');

tail = {'L'};
g = [15.5; 0.5; 10; 5];
a = [4; 4; 1; 2];
b = [2; 1; 2; 2];
% calculate probability
[p, ivalid, ifail] = g01sf(tail, g, a, b);

fprintf('Gamma deviate    Alpha     Beta    Probability\n');
lg    = numel(g);
la    = numel(a);
lb    = numel(b);
ltail = numel(tail);
len   = max ([lg, la, lb, ltail]);
for i=0:len-1
  fprintf('%9.2f%13.2f%9.2f%10.4f\n', g(mod(i,lg)+1), a(mod(i,la)+1), ...
          b(mod(i,lb)+1), p(i+1));
end


g01sf example results

Gamma deviate    Alpha     Beta    Probability
    15.50         4.00     2.00    0.9499
     0.50         4.00     1.00    0.0018
    10.00         1.00     2.00    0.9933
     5.00         2.00     2.00    0.7127

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015