用于零截断负二项式 GEE 的 R/Stata 包?

机器算法验证 r 状态 计数数据 面板数据 截断
2022-02-02 17:20:28

这是我的第一篇文章。我真的很感谢这个社区。

我正在尝试分析零截断的纵向计数数据(响应变量 = 0 的概率为 0)和均值!= 方差,因此选择了负二项分布而不是泊松。

我排除的功能/命令:

R

  • R 中的 gee() 函数不考虑零截断或负二项分布(即使加载了 MASS 包也不考虑)
  • R 中的 glm.nb() 不允许使用不同的相关结构
  • VGAM 包中的 vglm() 可以使用 posnegbinomial 系列,但它与 Stata 的 ztnb 命令(见下文)存在相同的问题,因为我无法使用非独立相关结构重新拟合模型。

斯塔塔

  • 如果数据不是纵向的,我可以使用 Stata 包 ztnb 来运行我的分析,但是该命令假定我的观察是独立的。

由于各种方法/哲学原因,我还排除了 GLMM。

现在,我已经确定了 Stata 的 xtgee 命令(是的,我知道 xtnbreg 也做同样的事情),它考虑了非独立相关结构和负二项式系列,但不考虑零截断。使用 xtgee 的额外好处是,我还可以计算 qic 值(使用 qic 命令)来确定最适合我的响应变量的相关结构。

如果 R 或 Stata 中有一个包/命令可以考虑 1)nbinomial 系列,2)GEE 和 3)零截断,我很想知道。

我非常感谢您可能有的任何想法。谢谢你。

-凯西

4个回答

对于 R 有两个选项浮现在脑海中,这两个选项我充其量只是模糊地熟悉。

第一个是pscl包,它可以以非常漂亮、灵活的方式适应零截断充气和跨栏模型。pscl包建议使用sandwich提供“横截面、时间序列和纵向数据的模型稳健标准误差估计器”的包。因此,您可以拟合您的计数模型,然后使用该sandwich包估计残差的适当协方差矩阵,同时考虑数据的纵向性质。

第二种选择可能是查看geepack看起来可以执行您想要的操作的包,但仅适用于具有已知 theta 的负二项式模型,因为它适合 Rglm()函数可以的任何类型的 GLM(因此请使用 MASS 中的族函数) .

第三种选择引起了人们的注意:gamlss它是附加包gamlss.tr后者包含一个函数gen.trun(),可以灵活地将支持的任何分布gamlss()转换为截断分布 - 例如,您可以指定左截断为 0 负二项分布。gamlss()本身包括对随机效应的支持,它应该照顾数据的纵向性质。但是,目前尚不清楚您是否必须在模型中使用至少一个协变量的平滑函数,或者只能将所有内容建模为 GLM 中的线性函数。

嗯,好的第一个问题!我不知道符合您精确要求的软件包。我认为 Stata 的xtgee是一个不错的选择,如果您还指定了vce(robust)提供 Huber-White 标准错误的选项,或者vce(bootstrap)如果这很实用。尽管忽略零截断会导致模型错误指定,但这些选项中的任何一个都将确保一致地估计标准误差。

这就留下了一个问题,即忽略零截断将对您感兴趣的点估计产生什么影响。值得快速搜索一下是否有相关文献,即不一定在 GEE 上下文中——我认为您可以非常安全地假设任何此类结果在 GEE 案例中也是相关的。如果找不到任何东西,您始终可以使用零截断和已知效应估计来模拟数据,并通过模拟评估偏差。

我的论文中有同样的问题。在 Stata 中,我刚刚为自己构建了一个自定义的 .ado 程序,其中包含两次对 xtgee 的调用。

为此,我发现 Partha Deb、Willard Manning 和 Edward Norton 的“建模医疗保健成本和计数”幻灯片/程序很有用。他们不谈论纵向数据,但这是一个有用的起点。

我正在寻找有关 glmmADMB 解释的答案,我看到了您的帖子。我知道那是很久以前的事了,但我可能有答案。

使用跨栏模型时查看包 glmmADMB。您必须将数据分析分成两部分:其中一个只处理非零数据。您可以添加混合效果并选择分布。条件是数据必须是零膨胀的,我不知道这是否符合您的要求!无论如何,我希望你很久以前就知道了!