2013-04-16 141 views
5

我的任务是开发一个回归模型,查看不同课程中的学生入学情况。这是一个非常好的干净的数据集,注册人数很好地遵循泊松分布。我在R中拟合了一个模型(同时使用GLM和零膨胀泊松)。由此产生的残差似乎是合理的。R中的费率变量的回归

然而,当时我被指示将学生人数改为以学生/学校人口计算的“费率”(每所学校都有自己的人口)。这现在不再是一个计数变量,而是一个比例介于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 –

回答

5

正如意见建议你可以保持泊松模型和做它的偏移:

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=...) 

后一种形式有时更方便,虽然使用较少。 请注意,通常从泊松切换到二项式会将链接功能从日志更改为logit,但如果您愿意,也可以使用family=binomial(link="log"))

零膨胀可能更容易用泊松+胶印组合模型(我不确定pscl软件包是最常见的ZIP处理方式,但我认为它是这样做的)通常比零膨胀二项式模型可用。

我认为glmmADMB会做一个零膨胀的二项式模型,但我没有测试它。

+1

Ben - 很好的答案。你是正确的,pscl包将允许ZIP模型的偏移量。但是,当我尝试使用偏移量进行拟合时,它不适合没有偏移量的模型。这似乎很奇怪。另外,我不知道预测值如何受到影响。如果我在pscl中使用zeroinfl()函数,那么公式中的偏移量是否会改变预测值的解释? – Noah