用R语言进行时间序列ARMA模型分析
应用时间序列
时间序列分析是一种重要的数据分析方法,应用广泛。以下列举了几个时间序列分析的应用场景:
1.经济预测:时间序列分析可以用来分析经济数据,预测未来经济趋势和走向。例如,利用历史股市数据和经济指标进行时间序列分析,可以预测未来股市的走向。
2.交通拥堵预测:时间序列分析可以用来预测交通拥堵情况。例如,根据历史车流量和天气信息,可以建立一个时间序列模型来预测未来某个时间段的路况。
3.天气预测:时间序列分析可以用于天气预测,例如预测未来几天或几周的降雨量、温度等。这对于农业生产和水资源的管理非常重要。
4.财务规划:时间序列分析可以用来帮助企业进行财务规划。例如,通过分析历史销售数据,可以预测未来销售额,并制定相应的预算计划。
5.工业控制:时间序列分析可以用来优化工业生产过程。例如,根据机器运行状态和历史生产数据,可以建立一个时间序列模型来优化生产线的运行,提高生产效率。
以下是数据的具体时间序列分析步骤:
1.导入数据
a=c(12.373,12.871,11.799,8.850,8.070,7.886,6.920,7.593,7.574,8.230,10.347,9.549,7.461,8.159,9.243,9.160,10.683,10.516,9.077,8.104,7.700,8.640 ,8.736 ,9.027 ,9.380 ,9.783 ,9.648, 8.135 ,8.222, 9.155,8.941, 9.682, 10.331, 10.601, 10.693 ,8.311)
2.更改为时间序列型数据
a=ts(a)
3.绘制时序图
时序图是一种用于展示时间序列数据的图表,通常将时间作为X轴,将变量(如销售额、温度等)作为Y轴。时序图可以帮助我们观察和分析时间序列数据的趋势、季节性、周期性以及异常值等。
一个典型的时序图通常包括以下几个元素:
1-->X轴:表示时间轴,通常根据数据的时间粒度来设置刻度。例如,如果数据是按日收集的,则X轴可能显示日期;如果是按小时收集的,则X轴可能显示小时数。
2-->Y轴:表示变量的取值范围,通常根据数据的特性来设置刻度。例如,如果数据表示某个产品的销售额,则Y轴可能显示金额数值;如果数据表示温度,则Y轴可能显示摄氏度或华氏度。、
3-->数据线:表示时间序列数据的变化趋势,通常用一条连续的曲线或折线来表示。数据线的颜色和样式可以根据需要进行调整,以突出重点信息。
4-->标题和注释:用于说明时序图的含义、数据来源和相关信息。
将时间序列数据可视化成时序图,可以更加直观地观察和分析数据的变化趋势和规律,从而更好地理解数据。
首先可以绘制线图直接观察数据走势粗略判断平稳性,既无趋势也无周期
1 #时序图
2 plot(a,col='blue')

4.自相关图和偏自相关图是用于识别时间序列数据中的自相关性(autocorrelation)和偏自相关性(partial autocorrelation)的工具。
自相关性是指时间序列数据中相邻观测值之间的相关性,即一个滞后版本与原始序列之间的相关程度。偏自相关性则是在控制其他滞后项的影响下,特定滞后项与序列之间的相关性度量。
自相关图和偏自相关图可以帮助我们识别时间序列数据中的自相关性和偏自相关性,从而确定时间序列模型的阶数。这对于进行预测和分析非常重要。
自相关图通常以滞后时间(lag)为X轴,以自相关系数为Y轴绘制。自相关系数是一个介于-1和1之间的值,表示当前时点与滞后版本之间的相关程度。自相关图中的峰值通常表示时间序列数据中的周期性或季节性。
偏自相关图也以滞后时间为X轴,以偏自相关系数为Y轴绘制。偏自相关系数也是介于-1和1之间的值,但它表示特定滞后项与序列之间的相关程度,同时控制了其他滞后项的影响。偏自相关图中的峰 值通常表示时间序列数据中的趋势或周期性。
一个极大的用途是人工定阶:
自相关图 偏自相关图
AR 拖尾 p阶截尾
MA q阶截尾 拖尾
ARMA 拖尾 拖尾
总之,自相关图和偏自相关图是识别时间序列数据中的自相关性和偏自相关性的重要工具。通过观察这些图形的峰值和趋势,可以确定时间序列模型的阶数,并进行进一步的分析和预测。
1 #自相关图与偏自相关图
2 acf(a)
3 pacf(a)


5.纯随机性检验(白噪声检验)
纯随机性检验,也称为白噪声检验(White Noise Test),是一种用于检验时间序列数据是否具有纯随机性的方法。在时间序列分析中,纯随机性通常是假设时间序列数据中不存在任何潜在的模式、趋势或周期性。
白噪声指的是均值为0、方差为常数的纯随机序列。在进行纯随机性检验时,我们希望时间序列数据的残差值(即实际值与预测值之间的误差)符合白噪声假设。如果残差值不符合白噪声假设,则可能存在潜在的模式、趋势或周期性等,需要进一步分析和处理。
常见的纯随机性检验方法包括:
1-->Ljung-Box检验:基于残差序列的自相关和偏自相关系数来检验序列是否具有相关性。
2-->Breusch-Godfrey检验:基于回归模型的残差来检验序列是否具有相关性。
3-->ARCH检验:用于检验序列的异方差性(heteroscedasticity)。
4-->Runs检验:基于序列的正负交替次数来检验序列是否具有趋势或周期性。
在实践中,我们通常会使用多种方法来检验时间序列数据的纯随机性,并结合其他分析方法来判断数据是否存在潜在的模式和趋势。只有在满足纯随机性假设的情况下,才能进行有效的预测和分析。
注:当p值小于0.05时为显著非白噪声序列
1 #纯随机性检验,白噪声检验
2 Box.test(a)
6.单位根检验:ADF检验
单位根检验,也称为增广迪基-福勒检验(Augmented Dickey-Fuller test,ADF test),是一种用于检验时间序列数据是否具有单位根(unit root)的方法。在时间序列分析中,单位根通常是假设时间序列数据中存在一种长期的趋势或非平稳性。
单位根检验旨在验证时间序列数据是否具有平稳性。如果时间序列数据具有单位根,则说明数据存在非平稳性,并且预测和分析可能会出现问题。因此,在进行时间序列分析之前,我们需要先进行单位根检验,以确保数据具有平稳性。
ADF检验是一种常用的单位根检验方法,它通过计算时间序列数据的ADF统计量来判断数据是否具有单位根。ADF统计量与t值类似,表示观测值与滞后版本之间的差异程度,同时考虑了其他因素的影响。如果ADF统计量小于对应的临界值,则拒绝原假设,即数据不存在单位根,表明数据具有平稳性。
除了ADF检验外,还有许多其他的单位根检验方法,例如Dickey-Fuller检验、KPSS检验等。不同的单位根检验方法具有不同的假设条件和适用范围,需要根据具体情况来选择合适的方法。
总之,单位根检验是一种重要的时间序列分析工具,用于验证数据是否具有平稳性。只有在数据具有平稳性的情况下,才能进行有效的预测和分析。
检验假设:H0:存在单位根 vs H1:不存在单位根
如果序列平稳,则不应存在单位根,所以我们希望能拒绝原假设
1 #ADF检验
2 #install.packages('aTSA')
3 library(aTSA)
4 adf.test(a)

7.ARMA参数估计
1 #参数估计
2 result=arima(a,order=c(2,0,1),method = 'CSS')
3 result

8.序列拟合结果图
ts.diag(result)

9.模型预测
1 #预测
2 #install.packages('forecast')
3 library(forecast)
4 pre=forecast(result,h=5)
5 pre
6 plot(pre,lty=2)
7 lines(pre$fitted,col=2)


R语言代码实战:

#题3
a=c(12.373,12.871,11.799,8.850,8.070,7.886,6.920,7.593,7.574 ,8.230,10.347,9.549,7.461,8.159,9.243,9.160,10.683,10.516,9.077,8.104,7.700,8.640 ,8.736 ,9.027 ,9.380 ,9.783 ,9.648, 8.135 ,8.222, 9.155,8.941, 9.682, 10.331, 10.601, 10.693 ,8.311)
a=ts(a)
#时序图
plot(a,col='blue')
#自相关图与偏自相关图
acf(a)
pacf(a)
#纯随机性检验,白噪声检验
Box.test(a)
#ADF检验
#install.packages('aTSA')
library(aTSA)
adf.test(a)
#参数估计
result=arima(a,order=c(2,0,1),method = 'CSS')
result ts.diag(result)
#预测
#install.packages('forecast')
library(forecast)
pre=forecast(result,h=5)
pre
plot(pre,lty=2)
lines(pre$fitted,col=2)
用R语言进行时间序列ARMA模型分析的更多相关文章
- 基于R语言的时间序列指数模型
时间序列: (或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列.时间序列分析的主要目的是根据已有的历史数据对未来进行预测.(百度百科) 主要考虑的因素: 1.长期趋势(Lon ...
- R语言解读多元线性回归模型
转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止 ...
- R语言利用ROCR评测模型的预测能力
R语言利用ROCR评测模型的预测能力 说明 受试者工作特征曲线(ROC),这是一种常用的二元分类系统性能展示图形,在曲线上分别标注了不同切点的真正率与假正率.我们通常会基于ROC曲线计算处于曲线下方的 ...
- R语言解读一元线性回归模型
转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...
- 【机器学习与R语言】13- 如何提高模型的性能?
目录 1.调整模型参数来提高性能 1.1 创建简单的调整模型 2.2 定制调整参数 2.使用元学习来提高性能 2.1 集成学习(元学习)概述 2.2 bagging 2.3 boosting 2.4 ...
- 【机器学习与R语言】12- 如何评估模型的性能?
目录 1.评估分类方法的性能 1.1 混淆矩阵 1.2 其他评价指标 1)Kappa统计量 2)灵敏度与特异性 3)精确度与回溯精确度 4)F度量 1.3 性能权衡可视化(ROC曲线) 2.评估未来的 ...
- R语言做文本挖掘 Part5情感分析
Part5情感分析 这是本系列的最后一篇文章,该.事实上这种单一文本挖掘的每一个部分进行全部值获取水落石出细致的研究,0基础研究阶段.用R里面现成的算法,来实现自己的需求,当然还參考了众多网友的智慧结 ...
- R语言学习笔记-Corrplot相关性分析
示例图像 首先安装需要的包 install.packages("Corrplot") #安装Corrplot install.packages("RColorBrewer ...
- R语言画全基因组关联分析中的曼哈顿图(manhattan plot)
1.在linux中安装好R 2.准备好画曼哈顿图的R脚本即manhattan.r,manhattan.r内容如下: #!/usr/bin/Rscript #example : Rscript plot ...
- 吴裕雄--天生自然 R语言开发学习:功效分析(续一)
#----------------------------------------# # R in Action (2nd ed): Chapter 10 # # Power analysis # # ...
随机推荐
- Leecode 1.两数之和(Java 哈希表)
想法: 1.哈希表hashmap 第一种方法:将数组中元素及其下标right都加入hashmap中,对于每个元素n下标left,在map中查找是否有target-n的元素,若有,则返回其下标right ...
- go设置http代理
打算把之前python写的程序切换到golang, 结果调试时发现fiddler无法正常捕获go的http请求 需要设置代理才可以正常捕获 const HttpProxyUrl = "htt ...
- 基于leaflet地图可视化(一)
最近,在学习地图可视化是基于公司的项目.但公司在项目上居然用图片来代替.无语~~~项目效果图(第一版)如下: 突发奇想,2016年自己就接触过地图可视化.但那是没有深入研究.只会用R语言来实现点基础. ...
- 初探redis缓存击穿、穿透、雪崩问题
现分析Redis缓存使用过程失效的一些问题,在有缓存的情况下,查询数据的顺序是先查询缓存,如果查询到数据则直接返回数据,如果没有查询到数据,则到数据库中查询,数据库中有数据的话,将查询出的数据写到缓存 ...
- group by和union,Laravel分页
$res3 = DB::table('users') ->join('user_folow_boutiques', 'user_folow_boutiques.user_id', '=', 'u ...
- DVWA-SQL Injection(SQL注入)
sql注入是典型.常见的Web漏洞之一,现在在网络中也可能存在,不过大多数为SQL盲注. 攻击者通过恶意的SQL语句来破坏SQL查询语句,达到数据库泄露的目的 LOW 审计源码 <?php // ...
- 网络安全(中职组)-B模块:Web安全渗透测试
Web安全渗透测试任务环境说明: 服务器场景:PYsystem003(关闭链接)服务器操作系统:未知用户名:未知 密码:未知 1. 通过浏览器访问http://靶机服务器IP/1,对该页面进行渗 ...
- 推荐一个前后端分离.NetCore+Angular快速开发框架
今天给大家推荐一个开源项目,基于.NetCore开发的.前后端分离.前端有Vue.Angular.MVC多个版本的快速开发框架. 项目简介 这是一个基于.NetCore开发的快速开发框架,项目采用模块 ...
- nginx的location与proxy_pass配置超详细讲解及其有无斜杠( / )结尾的区别
本文所使用的环境信息如下: windows11 (主机系统) virtual-box-7.0环境下的ubuntu-18.04 nginx-1.22.1 (linux) 斜杠结尾之争 实践中,nginx ...
- 拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能
摘要:智能把控大数据量查询,防患系统奔溃于未然. 本文分享自华为云社区<拒绝"爆雷"!GaussDB(for MySQL)新上线了这个功能>,作者:GaussDB 数据 ...