R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量

原文链接:http://tecdat.cn/?p=18550

我根据泊松Poisson回归、GAM样条曲线模型对一个十字路口的骑自行车者的数量进行预测,


str(base)'data.frame': 214 obs.$ 日期 : chr "1-Apr" "2-Apr" "3-Apr7" "4-Apr" ...$ 最高温度 : num 46 62.1 63 51.1 63 48.9 48 55.9 66 73.9 ...$ 最低温度 : num 37 41 50 46 46 41 43 39.9 45 55 ...$ 降雨量 : num 0 0 0.03 1.18 0 0.73 0.01 0 0 0 ...$ 数量: int 606 2021 2470 723 2807 461 1222 1674 2375 3324 ...$ 温差 : num 9 21.1 13 5.1 17 7.9 5 16 21 18.9 ......

使用Poisson回归预测周日、周一有多少骑自行车的人,天气情况是温度85F-70F没有下雨。我们创建一个预测数据框。



newbase = data.frame(DAY=as.factor(最高温度=c(85,85),最低温度=c(70,70,降雨量=c(0,0))

让我们创建一个包含所有解释变量的模型。

我们还添加一个虚拟变量来指示不下雨的日子,


summary(reg)

Coefficients:Estimate Std. Error z value Pr(|z|)(Intercept) 6.8844970 0.0110463 623.241 2e-16 ***最高温度 0.0210950 0.0003133 67.328 2e-16 ***最低温度 -0.0114006 0.0003351 -34.024 2e-16 ***降雨量 -0.6570450 0.0071899 -91.384 2e-16 ***I(降雨量 == 0)TRUE 0.1303908 0.0033283 39.176 2e-16 ***

---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 70021 on 213 degrees of freedomResidual deviance: 26493 on 203 degrees of freedomAIC: 28580

Number of Fisher Scoring iterations: 4

所以变量似乎都显著。如果我们要检查非线性效应,可以将样条曲线放在所有连续变量上

gam(数量~bs(最高温度)+bs(最低温度)+bs(降雨量)+I(降雨量==0),poisson

最高温度或最低温度

以及下面的降雨量曲线,最大观测值(3)与之前观测值(1.8)之间的线性平滑

我们还可以回归最小温度,以及最大和最小温度之间的温差(在线性模型中,模型是等效的,但是通过非线性变换,可以更简单地给出差异)

现在,我们可以比较这四个模型及其预测。例如,对于线性模型(虚拟变量表示没有下雨),

predict(reg,newdata=newbase,type="response se.fit=TRUE

对于星期一,我们获得λ的95%置信区间


P$fit[1]+c(-2,2)*P$se.fit[1][1] 3349.842 3401.395

对于星期日,95%置信区间为

[1] 2987.497 3033.861

我们可以可视化四个模型的置信区间

而周日,我们有

换句话说,通过更改模型,我们对预测的置信区间进行了更改(有时区间完全不相交)。


(0)

相关推荐