我根据泊松Poisson回归、GAM样条曲线模型对一个十字路口的骑自行车者的数量进行预测
使用Poisson回归预测周日、周一有多少骑自行车的人,天气情况是温度85F-70F没有下雨。我们创建一个预测数据框。
可下载资源
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 ......
newbase = data.frame(DAY=as.factor(
最高温度=c(85,85),最低温度=c(70,70,
降雨量=c(0,0))
Poisson模型(泊松回归模型)是用于描述单位时间、单位面积或者单位容积内某事件发现的频数分布情况,通常用于描述稀有事件(即小概率)事件发生数的分布。
上述例子中都明显的一个特点:低概率性,以及单位时间(或面积、体积)内的数量。通常情况下,满足以下三个条件时,可认为数据满足Poisson分布:
(1) 平稳性:发生频数的大小,只与单位大小有关系(比如1万为单位,或者100万为单位时患癌症人数不同);
(2) 独立性:发生频数的大小,各个数之间没有影响关系,即频数数值彼此独立没有关联关系;比如前1小时闯红灯的人多了,第2小时闯红灯人数并不会受影响;
(3) 普通性:发生频数足够小,即低概率性。
如果数据符合这类特征时,而又想研究X对于Y的影响(Y呈现出Poisson分布);此时则需要使用Poisson回归,而不是使用常规的线性回归等。
让我们创建一个包含所有解释变量的模型。
我们还添加一个虚拟变量来指示不下雨的日子,
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 freedom
Residual deviance: 26493 on 203 degrees of freedom
AIC: 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
我们可以可视化四个模型的置信区间
而周日,我们有
换句话说,通过更改模型,我们对预测的置信区间进行了更改(有时区间完全不相交)。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!