我正在尝试建模具有双峰的数据,并且峰之间有足够的重叠,我无法独立处理它们。数据的直方图可能如下所示:
我为此创建了两个模型:一个使用两个 Poisson 分布,另一个使用两个负二项式分布(以解释过度分散)。判断哪个模型更准确地拟合数据的适当方法是什么?
我最初的想法是,我可以使用 Kolmogorov-Smirnov 检验将每个模型与数据进行比较,然后进行似然比检验,看看一个模型是否更适合。这有意义吗?如果是这样,我不确定如何执行似然比检验。卡方是否合适,我有多少自由度?
如果有帮助,模型的一些(非常简化的)R 代码可能如下所示:
## inital data points
a <- read.table("data")
#create model data
model.pois = c(rpois(1000000,200),rpois(500000,250))
model.nb = c(rnbinom(1000000,200,0.5),rnbinom(500000,275,0.5)
#Kolmogorov-Smirnov test
#use ks.boot, since it's count data that may contain duplicate values
kpois = ks.boot(model.pois,a)
knb = ks.boot(model.nb,a)
#here's where I'd do some sort of likelihood ratio test
# . . .
编辑:这是一张可以解释我更适合的数据和分布的图像。从可视化中可以完全清楚地看出,第二个模型(使用负二项式分布来解释过度分散)更适合。不过,我想定量地展示这一点。
(红色 - 数据,绿色 - 模型)