Learn R Programming

DnE (version 1.0)

is.pois: is.pois

Description

judge if the data obey poisson distribution

Usage

is.pois(x, a, lambda = NULL)

Arguments

x
x
a
confidence level
lambda
parameter, the number of successful events in unit time.

Value

  • if data obey the distribution, return a value represent the likelihood, the larger the better; else return -1.

Details

Given a set of observations from a certain distribution, this function is used to test whether the observations are from a distribution of possion distribution or not.

References

ROBERT V. HOGG/ALLEN T. CRAIG (Fifth Edition) Introduction Mathematical Statistics.

See Also

is.dt , DnE-package

Examples

Run this code
require(stats)
examplecheck<-rpois(100,10)
is.pois(examplecheck,0.05)
#examplecheck is a dataset with a defined distribution you want to check. Suppose you want the confidence level to be 0.05#
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function(x,a,lambda=NULL)
{
	re=1;
	for(i in 1:length(x))
		if(x[i]<0&&round(x)!=x)
			re=-1;
	di=max(x)-min(x)+1;
	p=rep(0,di+1);
	y=rep(0,di+1);
	q=0;
	if(re==-1)
	{
		return(-1);
	}
	else
	{
		if(is.null(lambda))
		{
			lambda=mean(x);
			df=di-1;
		}
		else
		{
			df=di;
		}
		if(lambda>=0)
		{
			for(i in 1:di)
			{
				p[i]=dpois(min(x)+i-1,lambda);
			if(p[i]==0)
			{
				break;
			}
				for(j in 1:length(x))
				if(x[j]==min(x)+i-1)
					y[i]=y[i]+1;
			q=q+(y[i]-(length(x)*p[i]))^2/(length(x)*p[i]);
			}
		p[di+1]=1-ppois(max(x),lambda);
		q=q+length(x)*p[di+1];
		q0=qchisq(1-a,df);
		if(q<=q0)
		{
			return(q0-q);
		}
		else
		{
			return(-1);
		}
		}
		else 
		{
			return(-1);
		}
	}
}

Run the code above in your browser using DataLab