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

科技   科技   2024-11-20 23:00   浙江  

全文链接:http://tecdat.cn/?p=32265


指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求点击文末“阅读原文”获取完整代码数据

相关视频


但是,如果你想使用指数平滑法计算出预测区间,那么预测误差必须是不相关的, 而且必须是服从零均值、 方差不变的正态分布。即使指数平滑法对时间序列连续数值之间相关性没有要求,在某种情况下,我们可以通过考虑数据之间的相关性来创建更好的预测模型。

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

我们以上海空气质量指数AQI做成的时间序列数据查看文末了解数据免费获取方式为例。随着时间增加, 数值变化很大。

下面是excel数据:


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


点击标题查阅往期内容


python用ARIMA模型预测CO2浓度时间序列实现


左右滑动查看更多


01

 

02

03

04



平稳性检验(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 且方差为常数的正态分布(服从零均值、方差不变的正态分布) 是个好主意,同时也要观察连续预测误差是否(自)相关。

#AR(1)

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

AIC

model$aic

#
# [1] 8421.217

找到最小的AIC值

which.min(c(model$aic,model2$aic,model3$aic,model4$aic,model5$aic,model6$aic))

## [1] 5


所以最小的AIC是模型5,因此将模型5作为最优的模型来建模。

## Coefficients:

#
# Warning in sqrt(diag(x$var.coef)): 产生了NaNs

#
#          ar1      ar2     ar3      ma1     ma2  intercept
##       1.4415  -1.3018  0.3937  -0.9435  0.7885    86.8142

评估误差

#MAE  
mean(abs(model5$residuals))

## [1] 24.5714

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

## [1] 4.496127

预测未来的变化趋势

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

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


数据获取


在公众号后台回复“空气质量”,可免费获取完整数据。




本文中分析的数据和代码分享到会员群,扫描下面二维码即可加群!



点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《R语言ARIMA模型分析预测上海空气质量指数AQI时间序列》。




点击标题查阅往期内容

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言多元Copula GARCH 模型时间序列预测
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
R语言中的copula GARCH模型拟合时间序列并模拟分析
matlab使用Copula仿真优化市场风险数据VaR分析
R语言多元Copula GARCH 模型时间序列预测
R语言Copula函数股市相关性建模:模拟Random Walk(随机游走)
R语言实现 Copula 算法建模依赖性案例分析报告
R语言ARMA-GARCH-COPULA模型和金融时间序列案例
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言COPULA和金融时间序列案例
matlab使用Copula仿真优化市场风险数据VaR分析
matlab使用Copula仿真优化市场风险
R语言多元CopulaGARCH模型时间序列预测
R语言Copula的贝叶斯非参数MCMC估计
R语言COPULAS和金融时间序列
R语言乘法GARCH模型对高频交易数据进行波动性预测
R语言GARCH-DCC模型和DCC(MVT)建模估计
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
R语言时间序列GARCH模型分析股市波动率
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模
R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析
R语言多元Copula GARCH 模型时间序列预测
R语言使用多元AR-GARCH模型衡量市场风险
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言用Garch模型和回归模型对股票价格分析
GARCH(1,1),MA以及历史模拟法的VaR比较
matlab估计arma garch 条件均值和方差模型
R语言ARMA-GARCH-COPULA模型和金融时间序列案例



拓端数据部落
拓端(tecdat.cn)创立于2016年,提供专业的数据分析与挖掘服务,致力于充分挖掘数据价值。
 最新文章