时间序列分析的基本流程(R语言版——实验篇)

news2024/11/15 17:34:12

数据处理

1.导入数据(.csv)

能导入绝大所数形式的格式文件
ex52<-read.table("C:\\Users\\33035\\Desktop\\习题5.2数据.txt",header=T,fileEncoding = 'GBK')
#header :T:表示留第一行
#fileEncoding:有中文时最好改为GBK

 2.对数据切片获取

ex_52<-ex52[,c(2,4,6,8)]#取这几列做成list
ex_ROAD<-t(ex_52)

 3.把一行变一列数据

ex_52data<-as.vector(t(ex_52))

4. 将数据做成时间序列ts

ex_52series<-ts(ex_52data,start = 1750,frequency = 1)
#参数1:数据
#start:从1750开始
#frequency=1:步进为一年

数据处理已经完成,下面进行时序分析

1.画时序图(初步直观感受时间序列的特性)

plot(ex_52series,type="o")

 

看平稳性和白噪声(直观不科学)

非平稳性:有周期性和趋势性

如果存在周期性,那么图像就会有周期性波动,

趋势性:就是有单调性趋势

2. 数据说话:ADF单位根法进行平稳性检验

aTSA::adf.test(ex_52series)#adf检验

结果:

Augmented Dickey-Fuller Test 
alternative: stationary 
 
Type 1: no drift no trend 
     lag    ADF p.value
[1,]   0 -14.52    0.06
[2,]   1 -12.61    0.01
[3,]   2 -14.73    0.06
[4,]   3  -8.42    0.06
Type 2: with drift no trend 
     lag    ADF p.value
[1,]   0 -14.45    0.06
[2,]   1 -12.54    0.01
[3,]   2 -14.65    0.06
[4,]   3  -8.37    0.01
Type 3: with drift and trend 
     lag    ADF p.value
[1,]   0 -14.38    0.06
[2,]   1 -12.48    0.06
[3,]   2 -14.64    0.06
[4,]   3  -8.41    0.01
---- 
Note: in fact, p.value = 0.01 means p.value <= 0.06 

3种类型的ADF检验结果,但我们只需要关注最后的 means p.value <= 0.06 即可,只要<0.05即显著,什么显著呢?(不同假设,就有不同类型的显著)平稳性显著

3.显然不显著,那么就进行差分(逐步差分,每步差分都要进行白噪声检验,避免过差分)

如果是存在周期性就以周期T为步数,作为T步差分

delatex_52series<-diff(ex_52series)#做一阶一步差分

3.1进行白噪声检验(延迟阶数24内就行,因为只需要推翻短期相关性)

#白噪声检验
for(i in 1:4){
  Box=Box.test(delatex_52series,lag = 3*i,type="Ljung-Box")
  print(Box)}
#通过白噪声检验,表示该序列纯随机序列(推翻短期相关性即可)

 平稳序列具有短期相关性,只要短期都不相关,那么久处处不相关了

#白噪声和ACF和PACF其实都是在说相关性
#P<0.5白噪声不显著
#得到了平稳非白噪声序列,进入定阶段环节

 结果:

    Box-Ljung test

data:  delatex_52series
X-squared = 20.982, df = 3, p-value = 0.0001062


    Box-Ljung test

data:  delatex_52series
X-squared = 45.155, df = 6, p-value = 4.359e-08


    Box-Ljung test

data:  delatex_52series
X-squared = 49.727, df = 9, p-value = 1.212e-07


    Box-Ljung test

data:  delatex_52series
X-squared = 50.516, df = 12, p-value = 1.134e-06

看P值即可,看所有的K,只要小于<0.05就表示非白噪声.很显然都是非白噪声,那么表示差分后还具有研究价值

4.得到平稳和非白噪声序列,那么就能进入定阶阶段

定阶阶段:直观:ACF (q阶截尾)和PACF(p阶截尾):定阶只看截尾(横坐标:为延迟期数

纵坐标:为两个时间点的相关系数)

acf(delatex_52series)#拖尾
pacf(delatex_52series)#3阶截尾

 结果:

 

 

数据:AIC 和BIC准则:要求是找出AIC和BIC的max值时对应的阶数(p,q)(原理是阶数越高,描述得越详细越符合现实,但是参数会变多,会增加难度,所以就是让阶数合理,就是让AIC和BIC的式子达到最大值)

 

#数据定阶段AIC和BIC
#选取最大的AIC或者BIc值的模型,小心于系数要大于2标准差,才是显著有关系(非0)
install.packages('forecast')
library(forecast)
auto.arima(delatex_52series,max.p=6,max.q=6,ic="aic")#选择AR(3)模型

最大的p值 ,最大的q值:一般都=6即可,默认为5,ic:aic bic 还有另外一个不需要理

结果:告诉我要选AR(3),ARIMA(p(看pacf),d(阶数),q(看pac)),另外会给出3个系数,下面是s.e是

样本标准差,这里要保证系数要大于2*样本标准差,不然表示相关关系不显著。

结果:

Series: delatex_52series 
ARIMA(3,0,0) with zero mean 

Coefficients:
          ar1      ar2      ar3
      -0.7603  -0.7078  -0.5705
s.e.   0.0818   0.0850   0.0816

sigma^2 = 30.25:  log likelihood = -308.58
AIC=625.15   AICc=625.58   BIC=635.53

这里就已经是选好了模型了。下面要做的就是进行模型的拟合和模型的显著性检验

5.模型拟合:

#有差分运算时采用有漂移项预测更准确Arima
#无差分运算时用arima
f1<-arima(delatex_52series,order=c(3,0,0))

 结果:(与上面AIC定阶一样,不过这是知道阶数才用的,不知道阶数检验用上面的来拟合)

> f1<-arima(delatex_52series,order=c(3,0,0))
> f1

Call:
arima(x = delatex_52series, order = c(3, 0, 0))

Coefficients:
          ar1      ar2      ar3  intercept
      -0.7603  -0.7078  -0.5705     0.0186
s.e.   0.0818   0.0850   0.0816     0.1815

sigma^2 estimated as 29.34:  log likelihood = -308.57,  aic = 627.14

 Arima的最后一个参数改为T,即可。其实区别就在这个参数而已,但是Arima拟合的模型对象不能作为LB检验的对象,arima可以。

6.模型的有效的显著检验(首先我们拟合出来的模型会产生一个新时序,与旧时序的误差,我们拿这误差来分析,显然模型有效就代表能百分百拟合旧序列,也就是说新时序和旧时序是一样的。误差全为随机误差,也就是白噪声序列,那么只要证明它是白噪声序列即可说明模型有效。证明白噪声序列的话有BOX、Q检验和Q检验的加强版(LB检验),我们使用LB检验)

aTSA::ts.diag(f1)

 第一acp和第二个图pacp:如果模型不能通过显著性检验,就可以重新定阶段

第三个图:残差序列白噪声检验图,x为lag,y为Q统计量的P值,要都大于0.05才能说明是白噪声

第四个图:QQ图,y是正态分布的概论分布值,x为残差的概论分布值,只要点集中在y=x,就说明残差服从正态分布。正态分布是白噪声序列的特征

7.发现模型有效之后,就可以拿来预测了。

#拟合好模型后可以进行预测了
library(forecast)
fore<-forecast(f1,h=5)#预测前五期的数据
fore
plot(fore,lty=2)#虚线

      Point Forecast      Lo 80     Hi 80      Lo 95     Hi 95
1850    -1.56005365  -8.501169  5.381062 -12.175574  9.055467
1851    -3.18400834 -11.903549  5.535532 -16.519395 10.151378
1852     4.15225821  -4.613679 12.918195  -9.254086 17.558602
1853     0.04340675  -8.734613  8.821427 -13.381416 13.468230
1854    -1.09900488 -10.476245  8.278235 -15.440256 13.242246

 

蓝线是点估计 深色为80%置信区间  浅色为95%的置信区间 

代码汇总:(有点不符合上述流程,懒得改了)

ex52<-read.table("C:\\Users\\33035\\Desktop\\习题5.2数据.txt",header=T,fileEncoding = 'GBK')
ex_52<-ex52[,c(2,4,6,8)]
ex_ROAD<-t(ex_52)
ex_52data<-as.vector(t(ex_52))
ex_52series<-ts(ex_52data,start = 1750,frequency = 1)
plot(ex_52series,type="o")
delatex_52series<-diff(ex_52series)#做一阶一步差分
plot(delatex_52series,type="o")#画时序图
aTSA::adf.test(delatex_52series)#adf检验
#白噪声检验
for(i in 1:4){
  Box=Box.test(delatex_52series,lag = 3*i,type="Ljung-Box")
  print(Box)}
#通过白噪声检验,表示该序列纯随机序列(推翻短期相关性即可)
#白噪声和ACF和PACF其实都是在说相关性
#P<0.5白噪声不显著
#得到了平稳非白噪声序列,进入定阶段环节
acf(delatex_52series)#拖尾
pacf(delatex_52series)#3阶截尾,19阶后又出现(有问题得看答案)
#数据定阶段AIC和BIC
#选取最大的AIC或者BIc值的模型,小心于系数要大于2标准差,才是显著有关系(非0)
install.packages('forecast')
library(forecast)
auto.arima(delatex_52series,max.p=6,max.q=6,ic="aic")#选择AR(3)模型
#进行拟合
#ar 和 ma 和arma模型选择(已经知道定价之后)
#有差分运算时采用有漂移项预测更准确Arima
#无差分运算时用arima
f1<-arima(delatex_52series,order=c(3,0,0))
f1
#拟合好模型后可以进行预测了
library(forecast)
fore<-forecast(f1,h=5)#预测前五期的数据
fore
plot(fore,lty=2)#虚线
#进行模型评估
win.graph(width = 5,height = 5)#新建一个画布
aTSA::ts.diag(f1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL---DDL

MySQL简介DDL操作 文章目录MySQL简介DDL操作数据库分类关系型数据库&#xff08;SQL&#xff09;非关系型数据库&#xff08;NOSQL&#xff09;区别DBMSMySQL简介概念特点MySQL运行机制SQL通用语法结构化查询语言分类DDL操作数据库操作表查询创建数据类型数值类型字符串类型日期…

入行测试已经4年了 ,进阿里后迷茫了3个月,做完这个项目我决定离职....

转行测试 我是大专非计科&#xff0c;我转行之前从事的工作是商场管理&#xff0c;努力了4年左右的时间才做到楼层经理&#xff0c;但是工资太低并且事情太多&#xff0c;薪资才6K。 更多的是坚定了自己的想法&#xff0c;我要改变自己 恰好有几个大学同学在互联网公司工作&a…

微电网重构|基于群稀疏性的机会约束微电网重构(Matlab代码和Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

python算法对音频信号处理Sonification :Gauss-Seidel迭代算法

可以将44.1kHz单通道.wav文件中的一秒读取到长度为44100的数组&#xff08;称为b&#xff09;中。给定矩阵A&#xff0c;我们寻求系统Ax b的解。通过Gauss-Seidel的迭代&#xff0c;向量如果我们将b记录的录音&#xff0c;则将一些白噪声作为我们的初始猜测&#xff0c;并在每…

JVM常见面试题

目录 一、JVM内存划分 二、JVM类加载 1、什么是类加载 2、类加载的过程 2.1 加载 2.2 连接 2.3 初始化 3、何时触发类加载 4、双亲委派模型 4.1 什么是双亲委派模型 4.2 双亲委派模型的优点 三、JVM的垃圾回收机制 1、什么是GC 2、GC回收哪部分内存 3、判定垃圾…

# Monaco Editor 使用

Monaco Editor 使用 文章目录Monaco Editor 使用安装依赖版本问题vue2Vue3webpack-dev-servermonaco-editor-webpack-pluginVersion Matrix集成步骤Vue2 配置 monaco-editor-webpack-plugin 插件Vue3 vue.config.js测试页面实例属性说明支持的语言类型报错解决控制台报错效果图…

自适应滤波器更新算法-EP2

文章目录1、变步长 SC-MPNLMS 频域分块算法1.1 算法原理1.2 算法代码1.3 算法优缺点2、集成多种自适应滤波算法的回声消除器1.1 算法原理1.2 算法代码1.3算法优缺点1.4 算法自适应准则3、新的变步长的LMS自适应滤波算法3.1算法原理3.2算法代码3.3算法优缺点参考文献本文接上一篇…

钉钉小程序入门3—钉钉扫码登录PC端网站

第一部分、准备材料&#x1f332; 公网环境 老版钉钉扫码中必须要配置一个域名才可以调试&#xff0c;新版支持IP配置调了。我是手机打开热点&#xff0c;电脑连接热点进行调试的&#xff0c;比老版要方便了不少。 查看本机IP地址方法&#xff1a; 如果使用的Windows&#xff…

MySQL高可用复制管理工具 —— Orchestrator使用

Orchestrator介绍 Orchestrator&#xff08;orch&#xff09;&#xff1a;go编写的MySQL高可用性和复制拓扑管理工具&#xff0c;支持复制拓扑结构的调整&#xff0c;自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据&#xff0c;并提供Web界面展示MySQL复…

docker学习笔记2(狂神)

Docker的常用命令 然后我们来学我们最重要的镜像命令&#xff1a; docker images 查看所有本地的主机上的镜像 docker search搜索镜像&#xff1a; docker pull下载镜像&#xff1a; docker pull 镜像名[:tag] 指定版本下载&#xff1a; docker rmi删除镜像&#xff1a; 批量…

[附源码]Python计算机毕业设计Django市场摊位管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

m基于遗传优化的不同等级电动汽车充电站的选址方案matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 作为电动汽车的普及与推广&#xff0c;必要的基础配套服务设施、充电站的建设位置和选址规划对整体行业的发展起着重要的意义&#xff0c;本文中提出了一个不同等级电动汽车充电站的选址与求解算…

Zebec联合Visa推出实体借记卡持续利好生态,$ZBC表现强劲

Zebec生态从今年年初开始&#xff0c;持续的释放利好提振市场信心。此前&#xff0c;Zebec曾以 10 亿美元的完全稀释估值筹集了 850 万美元&#xff0c;该轮融资投资者包括 Circle Ventures、Shima 和 Resolute等知名 Web3 投资机构。这是 Zebec Protocol 继今年年初获得 2800 …

计算机系统基本概念

1.计算机的硬件结构 早期的计算机没有很复杂的图形功能&#xff0c;CPU的核心频率也不高&#xff0c;跟内存的频率一样&#xff0c;它们都是直接连接在同一个总线&#xff08;Bus&#xff09; 上的。由于IO设备诸如显示设备、键盘、软盘和磁盘等速度与CPU和内存相比还是慢很多…

QT:布局管理器消息盒子对话框

让组件在水平和垂直方向对齐 有三种常用布局管理器&#xff1a; 水平&#xff0c;QHBoxLayout 垂直&#xff0c;QVBoxLayout 网格&#xff0c;QGridLayout(使布局好的界面嵌套到主窗口) 1.让组件大小固定 修改属性&#xff1a;minimusize&#xff0c;maxmumsize 最小和最大组件…

使用setuptools构建python包

python包分发方式 源码包分发&#xff1a; 源码包安装过程是先解压&#xff0c;再编译。最后才安装&#xff0c;所以其是跨平台的&#xff0c;由于每次安装都需要进行编译&#xff0c;相对于二进制包安装方式来说安装速度较慢。 解压——编译——安装 源码包本质上是一个压缩…

CDGA|2023年数据治理发展前景预测步骤

CDGA|2023年数据治理发展前景预测步骤 数据治理发展前景预测&#xff0c;就是在数据治理市场调查获得的各种信息和资料的基础上&#xff0c;运用科学的预测技术和方法&#xff0c;对影响数据治理市场供求变化的诸因素进行调查研究&#xff0c;分析和预见数据治理发展趋势&…

《解构领域驱动设计》读书笔记

文章目录书籍信息开篇软件复杂度剖析复杂系统理解能力预测能力领域驱动设计概览基本概念控制软件复杂度领域驱动设计统一过程现存的不足领域驱动设计统一过程全局分析问题空间探索全局分析的 5W 模型高效沟通高效协作商业模式画布业务流程图服务蓝图用例图事件风暴学习循环价值…

windows系统下mysql的主从复制

使用一台物理机实现mysql的主从复制功能。 准备&#xff1a; 1、操作系统&#xff1a;Windows Server 2016 Standard 2、下载mysql免安装包&#xff1a; https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.17-winx64.zip 安装maser 1、解压mysql压缩包&…

Windows下安装hadoop2.7.4

Windows下安装hadoop 案例环境 该压缩包是已经简化配置后的 hadoop2.7.4下载地址文件分享 (weiyun.com) 安装步骤 解压压缩包 配置环境变量 在系统变量中添加 在path中添加 拷贝hadoop2.7.4\bin\hadoop.dll到目录C:\Windows\System32 配置文件 把/etc/hadoop/ 下目录的相…