1

我有两个按年龄分类的人群的数据,每个人群都有不同的分类。

人口 1 中的年龄区间:18-24、25-29、30-34、35-45、46-60、61+

人口分布 1

人口 2 中的年龄区间:15-19、20-24、25-29、30-34 ... 85-89、90+

人口分布2

我想从这些分箱数据中推断出一个连续分布,以便更直接地比较这两个群体。我尝试拟合未截断的负二项式分布,但它低估了较低的 bin:

nbinom 适合弹出 1

所以,现在我想尝试截断的负二项分布。我做了以下事情:

library(truncdist)
library(fitdistrplus)

dtruncated_nbinom <- function(x) 
  dtrunc(x, "nbinom", a=18, b=100)
ptruncated_nbinom <- function(q) 
  ptrunc(q, "nbinom", a=18, b=100)

pop1_nbinom <- fitdistcens(pop1_dt, "truncated_nbinom")

但我收到以下错误:

Error in computing default starting values.
Error in manageparam(start.arg = start, fix.arg = fix.arg, obs = pseudodata,  : 
  Error in start.arg.default(obs, distname) : 
  Unknown starting values for distribution truncated_nbinom.

关于如何处理/解决这个问题的任何建议?

这是pop 1的数据:

pop1 <- data.table(left = c(18,25,30,35,46,61), right = c(25,30,35,46,61,100), counts = c(2745,3115,2726,3433,1368,204))
pop1_dt <- pop1[rep(1:nrow(pop1), pop1[,counts]), .(left, right)]
4

0 回答 0