如何解决R遥远软件包中的发现数据集:如何使用因变量和自变量进行预测?泊松回归
##这里我使用了遥远软件包中的“发现”数据集。
library('faraway')
data("discoveries")
#从1860年到1959年设定了可变的“年份”
year = 1860:1959
##我在这里建立了泊松回归模型,发现与依存性相关,年份与独立性相关。
fit_pois = glm(discoveries ~ year,data = discoveries,family = poisson)
##问题是,“ 1960”年有4个发现的概率是多少(假设模型是正确的并且正在预测未来)。我试图用
pred_pr = predict.glm(fit_pois,data.frame(discoveries = 4,year = 1960,type = 'response'))
##但是,当我对数据进行预测时,它会给出不是概率的数字。请帮助!!
解决方法
让我们从复制模型开始:
library('faraway')
data("discoveries")
year = 1860:1959
fit_pois <- glm(discoveries ~ year,data = discoveries,family = poisson)
现在,如果我们使用predict
,我们的fit_pois
模型将告诉我们任何给定年份的预计发现率。它将完全忽略传递给discoveries
的{{1}}参数的数据框中的任何newdata
,因为我们的模型仅基于predict
变量来预测发现。
还要注意,在您的示例中,您将year
作为变量包含在type = "response"
数据框中,而不是将其作为参数传递给newdata
。因此预测行应如下所示:
predict
我们得到的结果是:
pred_pr = predict.glm(fit_pois,newdata = data.frame(year = 1960),type = 'response')
让我们思考一下这意味着什么。由于我们正在进行Poisson回归,因此该数字代表1960年pred_pr
#> 1
#> 2.336768
的期望值。这意味着,如果我们检查带有期望值的Poisson分布,则可以估计恰好有4个发现的概率(也称为2.336768的 lambda )。让我们使用discoveries
来查看如果lambda为2.336768则获得0到6个发现的概率:
dpois
因此,在1960年有4个发现的概率为:
plot(0:6,dpois(0:6,pred_pr),type = "h")
即几乎完全是12%
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。