在R中用KS检验与回归比较负二项和泊松分布拟合优度
负二项分布与泊松分布适配性判断问题解答
1. 可用于KS检验的其他R包
除你提到的包外,还有这些实用选择:
- 基础包
stats:自带的ks.test()可直接使用,但需先手动估计分布参数。比如通过极大似然或矩估计得到泊松的λ、负二项的均值和离散参数,再将参数传入对应理论分布函数(如ppois、pnbinom)完成检验。 fitdistrplus包:专注于分布拟合,先用fitdist(dt, "pois")和fitdist(dt, "nbinom")分别拟合泊松、负二项分布,得到参数估计后,再结合ks.test()完成检验,流程更连贯。nortest包:虽主打正态性检验,但支持传入自定义参数的离散分布KS检验,需先完成参数估计再调用对应函数。
2. 用glm结合AIC对比分布适配性
完全可行,具体操作如下:
- 变量定义:Y就是你的数据集
dt,无需额外X变量(仅用截距项拟合单变量分布即可)。 - 泊松模型构建:用基础glm函数拟合仅含截距项的泊松模型:
poisson_model <- glm(dt ~ 1, family = poisson()) - 负二项模型构建:借助
MASS包的glm.nb()函数拟合仅含截距项的负二项模型:library(MASS) nb_model <- glm.nb(dt ~ 1) - AIC对比:提取两个模型的AIC值,数值更小的模型对应的分布更适配你的数据:
AIC(poisson_model) AIC(nb_model)
额外补充:你使用dgof的ks.test时的参数初始化问题,可通过极大似然估计快速解决:泊松的λ直接取mean(dt);负二项的参数可用MASS::fitdistr(dt, "negative binomial")获取,之后代入pnbinom即可完成KS检验。
内容的提问来源于stack exchange,提问作者vp_050
相关产品推荐
相关产品推荐

