应用时间序列

时间序列分析是一种重要的数据分析方法,应用广泛。以下列举了几个时间序列分析的应用场景:

  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模型分析的更多相关文章

  1. 基于R语言的时间序列指数模型

    时间序列: (或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列.时间序列分析的主要目的是根据已有的历史数据对未来进行预测.(百度百科) 主要考虑的因素: 1.长期趋势(Lon ...

  2. R语言解读多元线性回归模型

    转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止 ...

  3. R语言利用ROCR评测模型的预测能力

    R语言利用ROCR评测模型的预测能力 说明 受试者工作特征曲线(ROC),这是一种常用的二元分类系统性能展示图形,在曲线上分别标注了不同切点的真正率与假正率.我们通常会基于ROC曲线计算处于曲线下方的 ...

  4. R语言解读一元线性回归模型

    转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...

  5. 【机器学习与R语言】13- 如何提高模型的性能?

    目录 1.调整模型参数来提高性能 1.1 创建简单的调整模型 2.2 定制调整参数 2.使用元学习来提高性能 2.1 集成学习(元学习)概述 2.2 bagging 2.3 boosting 2.4 ...

  6. 【机器学习与R语言】12- 如何评估模型的性能?

    目录 1.评估分类方法的性能 1.1 混淆矩阵 1.2 其他评价指标 1)Kappa统计量 2)灵敏度与特异性 3)精确度与回溯精确度 4)F度量 1.3 性能权衡可视化(ROC曲线) 2.评估未来的 ...

  7. R语言做文本挖掘 Part5情感分析

    Part5情感分析 这是本系列的最后一篇文章,该.事实上这种单一文本挖掘的每一个部分进行全部值获取水落石出细致的研究,0基础研究阶段.用R里面现成的算法,来实现自己的需求,当然还參考了众多网友的智慧结 ...

  8. R语言学习笔记-Corrplot相关性分析

    示例图像 首先安装需要的包 install.packages("Corrplot") #安装Corrplot install.packages("RColorBrewer ...

  9. R语言画全基因组关联分析中的曼哈顿图(manhattan plot)

    1.在linux中安装好R 2.准备好画曼哈顿图的R脚本即manhattan.r,manhattan.r内容如下: #!/usr/bin/Rscript #example : Rscript plot ...

  10. 吴裕雄--天生自然 R语言开发学习:功效分析(续一)

    #----------------------------------------# # R in Action (2nd ed): Chapter 10 # # Power analysis # # ...

随机推荐

  1. tuxedo 12c 安装

    tuxedo12c 安装命令 静默安装 控制台安装 tuxedo版本介绍 Tuxedo Release Name Tuxedo Release Number Note which contains L ...

  2. 使用EFCode First模式

    1.添加EntityFrameworkCoreg和EntityFrameworkCore.Design这两个包 2.添加EF上下文类 例如下图如下: 1 using EntityModel; 2 us ...

  3. 插入Mybatis教学

    ------------恢复内容开始------------ 1.Mybatis的CRUD 首先第一点要注意: namespace中的包名称,一定要和mapper接口的包名称要一一对应. 有上面的图可 ...

  4. python调用adb shell

    最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现. 不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命令了 ...

  5. vulnhub靶场之HARRYPOTTER: ARAGOG (1.0.2)

    准备: 攻击机:虚拟机kali.本机win10. 靶机:HarryPotter: Aragog (1.0.2),下载地址:https://download.vulnhub.com/harrypotte ...

  6. java 面向对象 --static

    java 面向对象 --static package charpter5.Demo09; //static public class Student { private static int age; ...

  7. Linux报错:audit: backlog limit exceeded(审计:超出积压限制)

    Linux报错:audit: backlog limit exceeded(审计:超出积压限制) 系统版本:CentOS Linux release 7.6.1810 (Core) 问题现象:一次巡检 ...

  8. 算法总结--ST表

    声明(叠甲):鄙人水平有限,本文为作者的学习总结,仅供参考. 1. RMQ 介绍 在开始介绍 ST 表前,我们先了解以下它以用的场景RMQ问题.RMQ (Range Minimum/Maximum Q ...

  9. 为什么wait()需要在同步代码块内使用

    我们还是通过源代码和代码注释来学习这个问题 我们先来看看wait方法的注释,这里截取最根源的native方法给的注释 Causes the current thread to wait until e ...

  10. 二进制安装Kubernetes(k8s) v1.23.7 IPv4/IPv6双栈

    二进制安装Kubernetes(k8s) v1.23.7 IPv4/IPv6双栈 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可能第一时间更新 ...