PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_stat_prob_gamma_vector (g01sf)
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
and
,
, is defined by:
The mean of the distribution is
and its variance is
. The transformation
is applied to yield the following incomplete gamma function in normalized form,
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:
– cell array of strings
-
Indicates whether a lower or upper tail probability is required. For
, for
:
- The lower tail probability is returned, i.e., .
- The upper tail probability is returned, i.e., .
Constraint:
or , for .
- 2:
– double array
-
, the value of the gamma variate with , .
Constraint:
, for .
- 3:
– double array
-
The parameter of the gamma distribution with , .
Constraint:
, for .
- 4:
– double array
-
The parameter of the gamma distribution with , .
Constraint:
, for .
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the dimension of the array
tail.
The length of the array
tail.
Constraint:
.
- 2:
– int64int32nag_int scalar
-
Default:
the dimension of the array
g.
The length of the array
g.
Constraint:
.
- 3:
– int64int32nag_int scalar
-
Default:
the dimension of the array
a.
The length of the array
a.
Constraint:
.
- 4:
– int64int32nag_int scalar
-
Default:
the dimension of the array
b.
The length of the array
b.
Constraint:
.
Output Parameters
- 1:
– double array
-
The dimension of the array
p will be
, the probabilities of the beta distribution.
- 2:
– int64int32nag_int array
-
The dimension of the array
ivalid will be
indicates any errors with the input arguments, with
- No error.
-
On entry, | invalid value supplied in tail when calculating . |
-
-
On entry, | , |
or | . |
- The solution did not converge in iterations, see nag_specfun_gamma_incomplete (s14ba) for details. The probability returned should be a reasonable approximation to the solution.
- 3:
– int64int32nag_int scalar
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
-
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.
-
-
Constraint: .
-
-
Constraint: .
-
-
Constraint: .
-
-
Constraint: .
-
An unexpected error has been triggered by this routine. Please
contact
NAG.
-
Your licence key may have expired or may not have been installed correctly.
-
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
or
decimal places.
Further Comments
The time taken by nag_stat_prob_gamma_vector (g01sf) to calculate each probability varies slightly with the input arguments , and .
Example
This example reads in values from a number of gamma distributions and computes the associated lower tail probabilities.
Open in the MATLAB editor:
g01sf_example
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];
[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)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015