R语言ARIMA模型分析预测上海空气质量指数AQI时间序列

指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求。

由Kaizong Ye,Coin Ge撰写

但是,如果你想使用指数平滑法计算出预测区间,那么预测误差必须是不相关的, 而且必须是服从零均值、 方差不变的正态分布。


即使指数平滑法对时间序列连续数值之间相关性没有要求,在某种情况下,我们可以通过考虑数据之间的相关性来创建更好的预测模型。

自回归移动平均模型( ARIMA) 包含一个确定(explicit)的统计模型用于处理时间序列的不规则部分,它也允许不规则部分可以自相关。

我们以上海空气质量指数AQI做成的时间序列数据为例。 随着时间增加, 数值变化很大。


可下载资源


本文分析的数据和代码分享至会员群

下面是excel数据:

image.png


data=read.xlsx("上海空气质量指数 (1).xlsx") head(data) ##     城市  日期 AQI指数 ## 1 上海市 41640     193 ## 2 上海市 41641     140 ## 3 上海市 41642     195 ## 4 上海市 41643     137 ## 5 上海市 41644      83 ## 6 上海市 41645      59

把数据转换成时间序列格式

data=ts(data[,3],start = c(2014,1,1) ,frequency = 365)

查看数据概览

summary(data)

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.  
##    28.0    59.0    77.0    86.5   103.0   266.0

自适应网页宽度的 Bilibili 视频

视频

时间序列分析模型 ARIMA-ARCH GARCH模型分析股票价格数据

探索见解

去bilibili观看

探索更多视频


自适应网页宽度的 Bilibili 视频

视频

在Python和R语言中建立EWMA,ARIMA模型预测时间序列

探索见解

去bilibili观看

探索更多视频

image.png

平稳性检验(ADF单位根检验)


adf.test(data,k = 5) ##  Augmented Dickey-Fuller Test ## ## data:  data ## Dickey-Fuller = -9.987, Lag order = 5, p-value = 0.01 ## alternative hypothesis: stationary

验出P值小于0.05,不存在单位根,说明原时间序列稳定

找到合适的ARIMA模型

如果你的时间序列是平稳的,或者你通过做 n 次差分转化为一个平稳时间序列, 接下来就是要选择合适的 ARIMA模型,这意味着需要寻找 ARIMA(p,d,q)中合适的 p 值和 q 值。为了得到这些,通常需要检查[平稳时间序列的(自)相关图和偏相关图。

观察 ARIMA 模型的预测误差是否是平均值为 0 且方差为常数的正态分布(服从零均值、方差不变的正态分布) 是个好主意,同时也要观察连续预测误差是否(自)相关。

image.png
image.png

#AR(1)

model=arima(data,c(1,0,0))

评估误差

#MAE  
mean(abs(model5$residuals))

## [1] 24.5714

#RMSE  
mean(sqrt(abs(model5$residuals)))

## [1] 4.496127

R语言泊松Poisson回归模型分析案例

阅读文章


预测未来的变化趋势

 pred=ts(pre$pred,start = c(2016,5,1),frequency =365)
image.png


随时关注您喜欢的主题


####绘制预测数据  
points(pre$pred,
202003281439369701.png


每日分享最新报告和数据资料至会员群

关于会员群

  • 会员群主要以数据研究、报告分享、数据工具讨论为主;
  • 加入后免费阅读、下载相关数据内容,并同步海内外优质数据文档;
  • 老用户可九折续费。
  • 提供报告PDF代找服务

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds