nag_prob_poisson_vector (g01skc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_prob_poisson_vector (g01skc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

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

2  Specification

#include <nag.h>
#include <nagg01.h>
void  nag_prob_poisson_vector (Integer ll, const double l[], Integer lk, const Integer k[], double plek[], double pgtk[], double peqk[], Integer ivalid[], NagError *fail)

3  Description

Let X = Xi: i=1 , 2 ,, m  denote a vector of random variables each having a Poisson distribution with parameter λi >0. Then
Prob Xi = ki = e -λi λi ki ki! ,   ki = 0,1,2,
The mean and variance of each distribution are both equal to λi.
nag_prob_poisson_vector (g01skc) computes, for given λi and ki the probabilities: ProbXiki, ProbXi>ki and ProbXi=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 arguments by re-using elements of any arrays that are shorter than the total number of evaluations required. See Section 2.6 in the g01 Chapter Introduction for further information.

4  References

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

5  Arguments

1:     llIntegerInput
On entry: the length of the array l
Constraint: ll>0.
2:     l[ll]const doubleInput
On entry: λi, the parameter of the Poisson distribution with λi=l[j], j=i-1 mod ll, for i=1,2,,maxll,lk.
Constraint: 0.0<l[j-1]106, for j=1,2,,ll.
3:     lkIntegerInput
On entry: the length of the array k
Constraint: lk>0.
4:     k[lk]const IntegerInput
On entry: ki, the integer which defines the required probabilities with ki=k[j], j=i-1 mod lk.
Constraint: k[j-1]0, for j=1,2,,lk.
5:     plek[dim]doubleOutput
Note: the dimension, dim, of the array plek must be at least maxll,lk.
On exit: Prob Xi ki , the lower tail probabilities.
6:     pgtk[dim]doubleOutput
Note: the dimension, dim, of the array pgtk must be at least maxll,lk.
On exit: Prob Xi > ki , the upper tail probabilities.
7:     peqk[dim]doubleOutput
Note: the dimension, dim, of the array peqk must be at least maxll,lk.
On exit: Prob Xi = ki , the point probabilities.
8:     ivalid[dim]IntegerOutput
Note: the dimension, dim, of the array ivalid must be at least maxll,lk.
On exit: ivalid[i-1] indicates any errors with the input arguments, with
ivalid[i-1]=0
No error.
ivalid[i-1]=1
On entry,λi0.0.
ivalid[i-1]=2
On entry,ki<0.
ivalid[i-1]=3
On entry,λi>106.
9:     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_ARRAY_SIZE
On entry, array size=value.
Constraint: lk>0.
On entry, array size=value.
Constraint: ll>0.
NE_BAD_PARAM
On entry, argument value had an illegal value.
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.
NW_IVALID
On entry, at least one value of l or k was invalid.
Check ivalid for more information.

7  Accuracy

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

8  Further Comments

The time taken by nag_prob_poisson_vector (g01skc) to calculate each probability depends on λi and ki. For given λi, the time is greatest when kiλi, and is then approximately proportional to λi.

9  Example

This example reads a vector of values for λ and k, and prints the corresponding probabilities.

9.1  Program Text

Program Text (g01skce.c)

9.2  Program Data

Program Data (g01skce.d)

9.3  Program Results

Program Results (g01skce.r)


nag_prob_poisson_vector (g01skc) (PDF version)
g01 Chapter Contents
g01 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012