R 中速率变量的回归

标签 r regression glm poisson

我的任务是开发一个回归模型,观察不同项目的学生入学情况。这是一个非常好的、干净的数据集,其中注册计数很好地遵循泊松分布。我在 R 中拟合了一个模型(同时使用 GLM 和零膨胀泊松。)结果残差似乎是合理的。

但是,我随后被指示将学生人数更改为“比率”,计算为学生/学校_人口(每所学校都有自己的人口。))这现在不再是计数变量,而是介于 0 和 1 之间的比例. 这被认为是程序中的“入学比例”。

这个“比率”(学生/人口)不再是泊松,但肯定也不正常。因此,我对适当的分布以及表示它的后续模型有点迷茫。

对数正态分布似乎很适合这个速率参数,但是我有很多 0 值,所以它实际上并不适合。

关于这个新参数的最佳分布形式有什么建议,以及如何在 R 中对其进行建模?

谢谢!

最佳答案

正如评论中所建议的,您可以保留泊松模型并使用偏移量进行操作:

glm(response~predictor1+predictor2+predictor3+ ... + offset(log(population),
     family=poisson,data=...)

或者你可以使用二项式 GLM,或者
glm(cbind(response,pop_size-response) ~ predictor1 + ... , family=binomial,
        data=...)

或者
glm(response/pop_size ~ predictor1 + ... , family=binomial,
        weights=pop_size,
        data=...)

后一种形式有时更方便,尽管使用不那么广泛。
请注意,通常从泊松切换到二项式会改变
从 log 到 logit 的链接函数,尽管您可以使用 family=binomial(link="log"))若你宁可。

使用 Poisson + offset 组合可能更容易建模零通胀(我不确定 pscl 包,ZIP 的最常见方法,是否处理偏移量,但我认为确实如此),这将更普遍与零膨胀二项式模型相比。

我想 glmmADMB会做一个零膨胀二项式模型,但我还没有测试过。

关于R 中速率变量的回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046726/

相关文章:

r - 来自不同数据文件的相同字符串在 R 中不匹配

r - 如何在 R 中将 str_split 与正则表达式一起使用?

python - 使用 pandas 使用时间作为自变量滚动 OLS

`glmnet` 的岭回归给出的系数与我通过 "textbook definition"计算的系数不同?

r - 计算加权 Logit 模型的边际效应

r - 预测 3 个水平的因子并返回每个因子的百分比

r - 带有 bquote 函数的 geom_text/geom_label

r - kable 函数 : "id" in the columns

python-3.x - 回归与分类的特征选择

r - 来自具有交互作用的多元回归 glm 的 LC50/LD50 置信区间