在R中进行速率变量回归

5
我被赋予开发一个回归模型来查看不同课程的学生注册情况。这是一个非常好,干净的数据集,其中注册数量很好地遵循泊松分布。我在R中拟合了一个模型(使用GLM和Zero Inflated Poisson)。结果残差似乎合理。
然而,我随后被指示将学生人数更改为“率”,该比率计算为学生/学校人口(每个学校都有自己的人口)。现在这不再是计数变量,而是0到1之间的比例。这被认为是课程“入学比例”。
这个“率”(学生/人口)不再是泊松分布,但也肯定不是正常分布。所以,我对适当的分布和随后的模型表示它有点迷失。
对于这个新参数,对数正态分布似乎很合适,但是我有很多0值,所以它实际上不适用。
有关此新参数的最佳分布形式以及如何在R中对其进行建模的建议吗?
谢谢!

2
我认为这是使用曝光/偏移变量的情况(http://en.wikipedia.org/wiki/Poisson_regression#.22Exposure.22_and_offset)。也许,需要在http://stats.stackexchange.com/上提问。 - Rcoster
1
已在 r-help 上发布:http://thread.gmane.org/gmane.comp.lang.r.general/291112 - Ben Bolker
1个回答

7

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

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

您可以使用二项式广义线性模型(binomial GLM)。

glm(cbind(response,pop_size-response) ~ predictor1 + ... , family=binomial,
        data=...)

或者

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

后一种形式有时更方便,但使用较少。请注意,通常从泊松分布切换到二项分布将改变链接函数从对数到logit,但如果您喜欢,可以使用family=binomial(link="log"))
使用泊松分布+抵消组合可能更容易对零膨胀进行建模(我不确定最常见的ZIP方法pscl包是否处理抵消,但我认为它会),它比零膨胀二项模型更常用。
我认为glmmADMB将执行零膨胀二项模型,但我还没有测试过。

1
Ben - 很棒的回答。你说得对,pscl包将允许在ZIP模型中使用偏移量。然而,当我尝试使用偏移量来拟合它时,它的拟合效果不如没有偏移量的模型。这似乎很奇怪。此外,我不知道预测值会受到什么影响。如果我在pscl中使用zeroinfl()函数,在公式中加入偏移量是否会改变预测值的解释? - Noah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接