【问题标题】:Prediction using Poisson regression使用泊松回归进行预测
【发布时间】:2020-04-27 17:17:49
【问题描述】:

我想知道如何使用我的数据预测 2018:2030 时间范围内的结果,这些数据包括 YEAR、AGE、FEMALE 和 RACE 等变量。

我正在使用 svydesign 设置进行此预测,并且通过简单的制表即可获得准确的结果,如下所示。


hiptotal1 <- svyby(~hipPJI, ~YEAR, design = mydesign, FUN = svytotal, vartype = "ci")

   YEAR    hipPJI      ci_l      ci_u
2015 2015 10580.001  9861.132 11298.869
2016 2016 11390.000 10601.341 12178.659
2017 2017 11800.003 10961.674 12638.332

然后我尝试创建一个预测模型,我肯定做错了,但我不确定是什么。我的代码是:

AdjPoissonHip <- svyglm(hipPJI ~ YEAR, family = poisson(), design = mydesign)
years <- data.frame(YEAR = 2018:2030)
predictHip <- predict(AdjPoissonHip, newdata = years, type = "response", se.fit =TRUE, interval = "predict") 

    response    SE
1  0.0082704 2e-04
2  0.0084020 2e-04
3  0.0085357 2e-04
4  0.0086715 2e-04
5  0.0088095 2e-04
6  0.0089496 3e-04
7  0.0090920 3e-04
8  0.0092367 3e-04
9  0.0093837 3e-04
10 0.0095330 4e-04
11 0.0096847 4e-04
12 0.0098388 4e-04
13 0.0099953 5e-04

我不确定为什么我的结果如此偏离。我只是使用了错误的选项来生成我的结果吗?

这个问题的第二部分是,如果我想将 AGE、FEMALE 和 RACE 作为预测值,但仍只想查看年份的估计值,而不是按 AGE、FEMALE 和 RACE 分层,我该怎么做这?

【问题讨论】:

    标签: r glm predict survey


    【解决方案1】:

    你没有说你的数据结构是什么。一种可能是数据集中的每个人都有一条记录。

    如果是这样,您致电svytotal 将加权并累加每年所有记录中的髋部骨折数量,并估计每年髋部骨折的人口总数。如您所见,这些数字会很大。

    您对svyglm 的调用将模拟一个数据集,其中大多数记录的髋部骨折为零,而有些记录有一个(或更多)。该模型的拟合概率将在个人水平,给出 2015 年、2016 年、2017 年人群中典型个体的预期髋部骨折数。如您所示,这些数字会很小。

    可以从predict.svyglm 获得总体预测,但您需要协变量的总体预测。从帮助页面

    predict 为协变量的特定新值提供拟合值和抽样变异性。当 newdata 是总体均值时,它给出了均值的回归估计量,而当 newdata 是总体总计并且指定了总计时,它给出了总体总计的回归估计量。也可以通过calibrate获得均值和总的回归估计量。

    因此,您需要确定 AGE、FEMALE 和 RACE 的人口总数,并在 newdata 参数中使用这些总数调用 predict.svyglm,并在 total= 参数中给出人口规模.

    如果您考虑一下,您需要有关年龄、性别和种族的人口信息来进行预测。例如,2030年髋部骨折的数量将取决于2030年人口的年龄分布。

    【讨论】:

    • 谢谢,我认为您所描述的正是正在发生的事情。我会尝试使用你描述的总论点,看看会发生什么
    猜你喜欢
    • 2018-08-03
    • 2017-04-20
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多