Answers:
这是一些可能有用的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")
我想最简单的方法就是进行卡方拟合优度检验。
实际上,这里有一个很好的java applet可以做到这一点!
对于泊松分布,平均值等于方差。如果样本均值与样本方差非常不同,则可能没有泊松数据。这里也提到的色散测试是该概念的形式化。
如果您的方差比平均值大得多(通常是这种情况),则可能要接下来尝试负二项分布。
我认为主要问题是sidmaestro提出的...实验设置或数据生成机制是否支持数据可能来自泊松分布的前提。
我不是测试分布假设的忠实拥护者,因为这些测试通常不是很有用。对我而言,似乎更有用的是使分布或模型假设灵活且对模型偏离具有合理的鲁棒性(通常出于推理目的)。以我的经验,均值=方差并不常见,因此负二项式模型似乎更合适,并且将泊松算子作为特例。
如果您要这样做,则在进行分布测试的另一点很重要,就是要确保没有涉及到的层次使您观察到的分布混合了其他分布。各个层的特定分布可能会出现泊松现象,但观察到的混合物可能不会出现泊松现象。回归的类似情况仅假设Y | X 的条件分布是正态分布,而不是Y本身的分布。
检验分位数的另一种方法是分位数分位数图。在R中,有qqplot。这将直接针对均值和sd相似的正态分布绘制值