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_poisson_vector (g01sk)

Purpose

nag_stat_prob_poisson_vector (g01sk) returns a number of the lower tail, upper tail and point probabilities for the Poisson distribution.

Syntax

[plek, pgtk, peqk, ivalid, ifail] = g01sk(l, k, 'll', ll, 'lk', lk)
[plek, pgtk, peqk, ivalid, ifail] = nag_stat_prob_poisson_vector(l, k, 'll', ll, 'lk', lk)

Description

Let X = {Xi : i = 1 , 2 ,, m } X = {Xi: i=1 , 2 ,, m }  denote a vector of random variables each having a Poisson distribution with parameter λiλi ( > 0)(>0). Then
Prob{Xi = ki} = eλi (λiki)/(ki ! ) ,   ki = 0,1,2,
Prob{ Xi = ki } = e -λi λi ki ki! ,   ki = 0,1,2,
The mean and variance of each distribution are both equal to λiλi.
nag_stat_prob_poisson_vector (g01sk) computes, for given λiλi and kiki the probabilities: Prob{Xiki}Prob{Xiki}, Prob{Xi > ki}Prob{Xi>ki} and Prob{Xi = ki}Prob{Xi=ki} using the algorithm described in Knüsel (1986).
The input arrays to this function are designed to allow maximum flexibility in the supply of vector parameters by re-using elements of any arrays that are shorter than the total number of evaluations required. See Section [Vectorized s] in the G01 Chapter Introduction for further information.

References

Knüsel L (1986) Computation of the chi-square and Poisson distribution SIAM J. Sci. Statist. Comput. 7 1022–1036

Parameters

Compulsory Input Parameters

1:     l(ll) – double array
ll, the dimension of the array, must satisfy the constraint ll > 0ll>0.
λiλi, the parameter of the Poisson distribution with λi = l(j)λi=lj, j = ((i1)  mod  ll) + 1j=((i-1) mod ll)+1, for i = 1,2,,max (ll,lk)i=1,2,,max(ll,lk).
Constraint: 0.0 < l(j)1060.0<lj106, for j = 1,2,,llj=1,2,,ll.
2:     k(lk) – int64int32nag_int array
lk, the dimension of the array, must satisfy the constraint lk > 0lk>0.
kiki, the integer which defines the required probabilities with ki = k(j)ki=kj, j = ((i1)  mod  lk) + 1j=((i-1) mod lk)+1.
Constraint: k(j)0kj0, for j = 1,2,,lkj=1,2,,lk.

Optional Input Parameters

1:     ll – int64int32nag_int scalar
Default: The dimension of the array l.
The length of the array l
Constraint: ll > 0ll>0.
2:     lk – int64int32nag_int scalar
Default: The dimension of the array k.
The length of the array k
Constraint: lk > 0lk>0.

Input Parameters Omitted from the MATLAB Interface

None.

Output Parameters

1:     plek( : :) – double array
Note: the dimension of the array plek must be at least max (ll,lk)max(ll,lk).
Prob{Xiki} Prob{ Xi ki } , the lower tail probabilities.
2:     pgtk( : :) – double array
Note: the dimension of the array pgtk must be at least max (ll,lk)max(ll,lk).
Prob{Xi > ki} Prob{ Xi > ki } , the upper tail probabilities.
3:     peqk( : :) – double array
Note: the dimension of the array peqk must be at least max (ll,lk)max(ll,lk).
Prob{Xi = ki} Prob{ Xi = ki } , the point probabilities.
4:     ivalid( : :) – int64int32nag_int array
Note: the dimension of the array ivalid must be at least max (ll,lk)max(ll,lk).
ivalid(i)ivalidi indicates any errors with the input arguments, with
ivalid(i) = 0ivalidi=0
No error.
ivalid(i) = 1ivalidi=1
On entry,λi0.0λi0.0.
ivalid(i) = 2ivalidi=2
On entry,ki < 0ki<0.
ivalid(i) = 3ivalidi=3
On entry,λi > 106λi>106.
5:     ifail – int64int32nag_int scalar
ifail = 0ifail=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 = 1ifail=1
On entry, at least one value of l or k was invalid.
Check ivalid for more information.
  ifail = 2ifail=2
Constraint: ll > 0ll>0.
  ifail = 3ifail=3
Constraint: lk > 0lk>0.
  ifail = 999ifail=-999
Dynamic memory allocation failed.

Accuracy

Results are correct to a relative accuracy of at least 10610-6 on machines with a precision of 99 or more decimal digits (provided that the results do not underflow to zero).

Further Comments

The time taken by nag_stat_prob_poisson_vector (g01sk) to calculate each probability depends on λiλi and kiki. For given λiλi, the time is greatest when kiλikiλi, and is then approximately proportional to sqrt(λi)λi.

Example

function nag_stat_prob_poisson_vector_example
rlamda = [0.750; 9.200; 34.000; 175.000];
k = [int64(3); 12; 25; 175];
[plek, pgtk, peqk, ivalid, ifail] = nag_stat_prob_poisson_vector(rlamda, k);

fprintf('\n    RLAMDA     K     PLEK      PGTK      PEQK\n');
lrlamda = numel(rlamda);
lk = numel(k);
len = max ([lrlamda, lk]);
for i=0:len-1
 fprintf('%10.3f%6d%10.5f%10.5f%10.5f%3d\n', rlamda(mod(i,lrlamda)+1), ...
         k(mod(i,lk)+1), plek(i+1), pgtk(i+1), peqk(i+1), ivalid(i+1));
end
 

    RLAMDA     K     PLEK      PGTK      PEQK
     0.750     3   0.99271   0.00729   0.03321  0
     9.200    12   0.86074   0.13926   0.07755  0
    34.000    25   0.06736   0.93264   0.02140  0
   175.000   175   0.52009   0.47991   0.03014  0

function g01sk_example
rlamda = [0.750; 9.200; 34.000; 175.000];
k = [int64(3); 12; 25; 175];
[plek, pgtk, peqk, ivalid, ifail] = g01sk(rlamda, k);

fprintf('\n    RLAMDA     K     PLEK      PGTK      PEQK\n');
lrlamda = numel(rlamda);
lk = numel(k);
len = max ([lrlamda, lk]);
for i=0:len-1
 fprintf('%10.3f%6d%10.5f%10.5f%10.5f%3d\n', rlamda(mod(i,lrlamda)+1), ...
         k(mod(i,lk)+1), plek(i+1), pgtk(i+1), peqk(i+1), ivalid(i+1));
end
 

    RLAMDA     K     PLEK      PGTK      PEQK
     0.750     3   0.99271   0.00729   0.03321  0
     9.200    12   0.86074   0.13926   0.07755  0
    34.000    25   0.06736   0.93264   0.02140  0
   175.000   175   0.52009   0.47991   0.03014  0


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–2013