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%