1

这是我的第一篇文章,所以如果有任何改进或我可以提供的更多信息,请告诉我。

我在运行 10.11.6 的 Mac 上使用 R 3.4.3。

我正在处理计数数据。我对负二项分布的 theta/色散/尺寸参数 (k) 感兴趣(我的理解是这些术语可以互换使用)。我正在将 NB 分布拟合到这些数据中,通过使用该fitdistrplus包的最大似然fitdist函数来估计参数。如果我的不同数据组使用不同的分布更好地建模,我很感兴趣。因此,我将分布拟合到所有数据。然后根据一个 2 水平因子拆分数据,并将分布拟合到这两个单独的组。

当我将分布拟合到整个数据集时,我得到了带有标准误差的 mu 和大小的估计值。然后我拆分数据。同样的方法适用于一半的数据(A 组),但不适用于另一半(B 组),理论上应该在结构上相同。相反,我得到了 mu 和 size 的估计值,但标准误差为 NA。

optim对后面的函数施加 lower = c(0,0) 和 upper = c(inf, inf)fitdist也没有实现任何效果,并且由于输出是 NA 而不是 NaN 我认为它与试图无论如何估计负数(经常讨论的错误100)。

只是出于兴趣,我删除了所有的零,以防它与此有关,而那也没有任何作用。

所以我的问题是为什么要产生 NA(以及最终我如何获得估计的标准误差)?

这是我的数据和代码:

require(fitdistrplus)

data.set <- read.csv("data.set.csv")
count.A <- subset(data.set, category == "A")
count.B <- subset(data.set, category == "B")

    # All Data

plotdist(data.set$count, histo = TRUE, demp = TRUE)

count.nb <- fitdist(data.set$count, "nbinom")
plot(count.nb)
LL.nb <- logLik(count.nb)

count.p <- fitdist(data.set$count, "pois")
plot(count.p)
LL.p <- logLik(count.p)

cdfcomp(list(count.p, count.nb),legendtext = c("Poisson", "negative binomial"))

gofstat(list(count.p, count.nb),fitnames = c("Poisson", "negative binomial"))

    # Group A

plotdist(count.A$count, histo = TRUE, demp = TRUE)

A.count.nb <- fitdist(count.A$count, "nbinom")
plot(A.count.nb)
A.LL.nb <- logLik(A.count.nb)

A.count.p <- fitdist(count.A$count, "pois")
plot(A.count.p)
A.LL.p <- logLik(A.count.p)

cdfcomp(list(A.count.p, A.count.nb),legendtext = c("Poisson", "negative binomial"))

gofstat(list(A.count.p, A.count.nb),fitnames = c("Poisson", "negative binomial"))

    # Group B

plotdist(count.B$count, histo = TRUE, demp = TRUE)

B.count.nb <- fitdist(count.B$count, "nbinom", method = "mle")

plot(B.count.nb)
B.LL.nb <- logLik(B.count.nb)

B.count.p <- fitdist(count.B$count, "pois")
plot(B.count.p)
B.LL.p <- logLik(B.count.p)

cdfcomp(list(B.count.p, B.count.nb),legendtext = c("Poisson", "negative binomial"))

gofstat(list(B.count.p, B.count.nb),fitnames = c("Poisson", "negative binomial"))

这是我的代码

4

0 回答 0