【问题标题】:(R)Discovery dataset from faraway package: How can you make predictions with both dependent and independent variables? Poission Regression(R)Discovery dataset from faraway package:如何同时使用因变量和自变量进行预测?泊松回归
【发布时间】:2020-10-04 08:49:01
【问题描述】:

##这里我使用了 faraway 包中的“discoveries”数据集。

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'))

##然而,当我预测数据时,它给出的数字不是概率。请帮忙!!

【问题讨论】:

  • 没有错误,从文档中,type “替代“响应”在响应变量的范围内。“预测概率仅适用于二项式模型。

标签: r statistics regression predict poisson


【解决方案1】:

让我们从复制您的模型开始:

library('faraway')
data("discoveries")

year = 1860:1959
fit_pois <- glm(discoveries ~ year, data = discoveries, family = poisson)

现在,如果我们使用predict,我们的fit_pois 模型将告诉我们任何给定年份的预测发现率。它将完全忽略传递给predictnewdata 参数的数据框中的任何discoveries,因为我们的模型仅根据year 变量预测发现。

还请注意,在您的示例中,您已将type = "response" 作为变量包含在newdata 数据框中,而不是将其作为参数传递给predict。所以预测线应该是这样的:

pred_pr = predict.glm(fit_pois, newdata = data.frame(year = 1960), type = 'response')

而我们得到的结果是:

pred_pr
#>        1 
#> 2.336768

让我们想想这意味着什么。由于我们正在进行泊松回归,这个数字代表了 1960 年 discoveries 的预期值。这意味着如果我们检查具有预期值的泊松分布(也称为作为 2.336768 的 lambda)。如果 lambda 为 2.336768,让我们使用dpois 来查看获得 0 到 6 个发现的概率:

plot(0:6, dpois(0:6, pred_pr), type = "h")

所以 1960 年恰好有 4 次发现的概率是:

dpois(4, pred_pr)
#> [1] 0.1200621

即几乎正好是 12%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2017-04-20
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多