如何测试给定样本是否来自泊松分布?


Answers:


18

首先,我的建议是您必须避免像对待数据一样尝试泊松分布。我建议您首先要对为什么泊松分布适合特定数据集或现象进行理论分析。

一旦确定了这一点,下一个问题就是分布是否均匀。这意味着数据的所有部分是由相同的泊松分布处理还是基于时间或空间等方面的变化。一旦确定了这些方面,请尝试以下三个测试:

  1. 使用卡方变量进行似然比检验
  2. 使用条件卡方统计量;也称为泊松离散测试或方差测试
  3. 使用基于泊松变量的方差稳定变换的neyman-scott统计量

搜索这些,您将在网上轻松找到它们。


3
“分布是否均匀……一旦您确信了这些方面”,您能否评论一下如何确定这一点?
意思为意思的方式

13

这是一些可能有用的R命令序列。如果发现任何错误,请随时评论或编辑。

set.seed(1)
x.poi<-rpois(n=200,lambda=2.5) # a vector of random variables from the Poisson distr.

hist(x.poi,main="Poisson distribution")

lambda.est <- mean(x.poi) ## estimate of parameter lambda
(tab.os<-table(x.poi)) ## table with empirical frequencies


freq.os<-vector()
for(i in 1: length(tab.os)) freq.os[i]<-tab.os[[i]]  ## vector of emprical frequencies

freq.ex<-(dpois(0:max(x.poi),lambda=lambda.est)*200) ## vector of fitted (expected) frequencies

acc <- mean(abs(freq.os-trunc(freq.ex))) ## absolute goodness of fit index acc
acc/mean(freq.os)*100 ## relative (percent) goodness of fit index

h <- hist(x.poi ,breaks=length(tab.os))
xhist <- c(min(h$breaks),h$breaks)
yhist <- c(0,h$density,0)
xfit <- min(x.poi):max(x.poi)
yfit <- dpois(xfit,lambda=lambda.est)
plot(xhist,yhist,type="s",ylim=c(0,max(yhist,yfit)), main="Poison density and histogram")
lines(xfit,yfit, col="red")

#Perform the chi-square goodness of fit test 
#In case of count data we can use goodfit() included in vcd package
library(vcd) ## loading vcd package
gf <- goodfit(x.poi,type= "poisson",method= "MinChisq")
summary(gf)
plot(gf,main="Count data vs Poisson distribution")

3
这行代码:freq.ex <-(dpois(0:max(x.poi),lambda = lambda.est)* 200)会产生一些真实数据的错误,因为freq.ex的长度与freq不匹配。此行上的obs acc <-平均值(abs(freq.os-trunc(freq.ex)))。我将此行调整为freq.ex <-(dpois(seq(0,max(x.poi))[seq(0:max(x.poi))%in%x.poi],lambda = lambda.est) * 200),但由于goodfit会产生警告,因此仍然不太正确。
russellpierce

使用您的代码,我得到的拟合度指标为121(好)。但这是相对的,不是吗?所以应该在0到100之间,对不对?
MERose


5

您可以使用离散度(方差与均值之比)作为检验统计量,因为泊松应该给出1的离散度。这是如何将其用作模型检验的链接。


+1谢谢。我经常会得到一些“怪异”的结果,例如,正态分布的p值高于泊松的p值,后者的lambda相对较小(因此从外观上看,仅正态和泊松根本不相似)
David B

6
404找不到!
罗德里戈

5

对于泊松分布,平均值等于方差。如果样本均值与样本方差非常不同,则可能没有泊松数据。这里也提到的色散测试是该概念的形式化。

如果您的方差比平均值大得多(通常是这种情况),则可能要接下来尝试负二项分布。


5
因此,如果均值与方差相同,您是否可以得出结论是数据是泊松?几乎不!
PeterR 2010年

真正。必要但不充分。
John D. Cook 2010年

2

您可以绘制一个图形,其中观察到的频率和期望的频率并排绘制。如果分布非常不同,并且方差-均值比也大于1,那么负二项式就是一个很好的候选者。阅读部分的频率分布The R Book。它处理一个非常类似的问题。


1

我认为主要问题是sidmaestro提出的...实验设置或数据生成机制是否支持数据可能来自泊松分布的前提。

我不是测试分布假设的忠实拥护者,因为这些测试通常不是很有用。对我而言,似乎更有用的是使分布或模型假设灵活且对模型偏离具有合理的鲁棒性(通常出于推理目的)。以我的经验,均值=方差并不常见,因此负二项式模型似乎更合适,并且将泊松算子作为特例。

如果您要这样做,则在进行分布测试的另一点很重要,就是要确保没有涉及到的层次使您观察到的分布混合了其他分布。各个层的特定分布可能会出现泊松现象,但观察到的混合物可能不会出现泊松现象。回归的类似情况仅假设Y | X 的条件分布是正态分布,而不是Y本身的分布。


如果X是随机的,那么关于回归的最后一点将是正确的。如果X固定,则Y也将是法线。没有?

是的,这是正确的,但是对于一般的回归问题(与方差分析或设计问题相反),X确实不是固定的,而是来自基础过程的观察结果。但是,对于Poisson案例,这一观点仍然成立,因为Poissson的混合物不一定是Poisson。
阿披吉特(Abhijit)2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.