文章主要是总结一学期所学,基本覆盖了所有常见的指令,足够完成arima模型的数据选择到模型预测。
     时间序列应用广泛,不能仅仅局限于理论学习,代码实践更为重要。
往期文章链接:
基于 ARIMA-GARCH 模型人名币汇率分析与预测[论文完整][2020年]

文章目录

  • 1 安装包指令
  • 2 加载包指令
  • 3 help指令的使用
  • 4 读取不同格式数据
    • 4.1 读取csv格式的数据
    • 4.2 读取txt格式的数据
    • 4.3 读取xls和xlsx格式的数据
    • 4.4 参数使用
  • 5 ts生成时间序列的对象
    • 5.1 时间间隔为年的情况
    • 5.2 时间间隔为月的情况
    • 5.3 时间间隔为日的情况
    • 5.4 参数使用
  • 6 plot绘制时间序列的折线图
  • 7 平稳性检验的三种方式
    • 7.1 图检法
    • 7.2 通过acf自相关系数图
    • 7.3 通过adf函数p值判断(不需要主观判断)
  • 8 白噪声(纯随机)检验的方式
  • 9 绘制自相关系数图和偏自相关系数图
  • 10模型选择及其定阶
    • 10.1通过acf图和pacf图
    • 10.2通过auto.arima()自动选择
  • 11AIC,BIC准则判断模型好坏
  • 12 foreca进行模型预测
  • 13 差分命令
  • 14 差分命令
  • 15 完整操作流程图
  • 总结

1 安装包指令

 install.packages("tseries")install.packages("forecast")

2 加载包指令

说明:载入一个包之后,就可以使用一系列新的函数和数据集了。包中往往提供了演示性的小型数据集和示例代码,能够让我们尝试这些新功能

 library(tseries)library(forecast)

3 help指令的使用

说明:使用函数help()可以查看其中任意函数或数据集的更多细节

help(package="tseries")

4 读取不同格式数据

4.1 读取csv格式的数据

data<-read.csv("路径",header=F,sep=",")

4.2 读取txt格式的数据

data<-read.table("路径",header=F,sep=",")

4.3 读取xls和xlsx格式的数据

可以统一将数据文件格式转成csv进行处理

4.4 参数使用

路径(注意反斜杠的方向)
E:/大三上课程/时间序列.csv
E:/大三上课程/时间序列.txt

heaer
这是一个逻辑值,T or F 反映文件的第一行是否包含变量名

sep
文件中的字段分隔符,例如对用制表符分割的文件使用sep="\t"

5 ts生成时间序列的对象

5.1 时间间隔为年的情况

ts(data$V1,frequency = 1,start=c(1975))

frequent=1表示以年为单位间隔 start说明了数据从1975年开始

5.2 时间间隔为月的情况

ts(data$V1,frequency = 12,start=c(1975,1))

frequent=12表示以月为单位间隔 start说明数据从1975年1月开始

5.3 时间间隔为日的情况

ts(data$V1,frequency = 365,start=c(1975,1,1))

frequent=365表示以日为单位间隔 start说明数据从1975年1月1日开始

5.4 参数使用

data
这个必须是一个矩阵,或者向量,再或者数据框frame

补充 :data$v1 表示数据源的第一排 v2表示第二排 容易遗漏
Frequency
这个是时间观测频率数,也就是每个时间单位的数据数目
Start
时间序列开始值(是一个向量),允许第一个个时间单位出现数据缺失

6 plot绘制时间序列的折线图

plot基本用法

plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称",ylab="y轴名称",xlim = c(x轴范围,x轴范围),ylim = c(y轴范围,y轴范围))

实例演示

ts_1<-ts(data$V1,frequency = 365,start=c(1975,1,1))
plot(ts_1,main="ceshi",ylab="大小",xlab="时间",ylim=(-3:3))

7 平稳性检验的三种方式

7.1 图检法

通过plot()绘制时间序列的时序图,如果序列是平稳的,那么序列应该是围绕一个均值上下随机波动。如果序列呈现递增递减则不是平稳时间序列。
        如下图时序图无明显趋势,在一个值上下波动,初步判断为平稳序列。

7.2 通过acf自相关系数图

对于平稳时间序列,其自相关图一般随着阶数的递增,自相关系数会迅速衰减至0附近,而非平稳时间序列则可能存在先减后增或者周期性波动等变动。如下图所示,该时间序列随着阶数的递增迅速衰减至0附近,因此,可以判断该时间序列不是平稳时间序列。

acf(ts_1)

7.3 通过adf函数p值判断(不需要主观判断)

#使用前要加载包  ts_1是通过ts生成的时间序列(不清楚看前面)
install.packages("tseries")
library(tseries)
adf.test(ts_1)


p值为0.02547小于显著性水平0.05接受备择假设,为平稳序列。若p值大于0.05则为非平稳性检验

8 白噪声(纯随机)检验的方式

#其中ts_1是通过ts做出的时序序列,for循环是为了多判断几期p值的判断。
#一般我们判断前12期的p值,期数越大越不容易小于0.05。
for(i in 1:4)print(Box.test(ts_1,lag=2*i))

当p值都小于0.05,我们接受备择假设,该序列为非随机序列。
当p值大于0.05,我们选择原假设,该序列为 纯随机序列。
例如下,p值都小于0.05判断为非随机序列。如果为随机序列则数据之间无关联,只能进行差分或者放弃。

9 绘制自相关系数图和偏自相关系数图

自相关系数图acf

acf(ts_1)


偏自相关系数pacf

pacf(ts_1)

补充
下面指令可以将直接做出时序图,acf,pacf

tsdisplay(ts_1)

10模型选择及其定阶

10.1通过acf图和pacf图

  • 若PACF序列满足在p步截尾,且ACF序列被负指数函数控制收敛到0,则Yn为AR§序列。

  • 若ACF序列满足在q步截尾,且PACF序列被负指数函数控制收敛到0,则Yn为MA(q)序列

  • 若ACF序列和PACF序列满足皆不截尾,但都被负指数函数控制收敛到0,则Yn为ARMA序列。

当我们选择好模型可以通过如下指令进行构建模型

#其中p表示AR的阶数 d表示差分的次数 q表示MA的阶数
all<-arima(ts_1,order=c(p,d,q))
all

10.2通过auto.arima()自动选择

# 无特殊要求使用默认参数即可
auto.arima(ts_1)

如下函数为我们选择的是AR(1) ,aic aicc bic都是用来判断模型的好坏的准则,后面具体说明。

11AIC,BIC准则判断模型好坏

AIC
AIC = -2In(L) + 2k
其中L指对应的最大似然函数,k指对应的模型的变量的个数。

BIC
BIC = -2In(L) + In(n)*k
n指对应的数据数量,L和k同上所述。kln(n)惩罚项在维数过大且训练样本数据相对较少的情况下,可以有效避免出现维度灾难现象。

AIC,BIC越小越好

12 foreca进行模型预测

# all表示模型 all<-arima(ts_1,order=c(1,0,0))
# 60表示预测接下来的60个值
library(forecast)
plot(forecast(all,60))#绘制图形
forecast(all,60) #显示所有预测值

13 差分命令

#s1 表示差分后新的序列
#data$v1表示数据源的第一列,也就是要进行操作的数据
#1表示差分一次
s1<-diff(data$v1,1)

14 差分命令

15 完整操作流程图

总结

最后希望给文章点个赞,整理不易!!!
最后希望给文章点个赞,整理不易!!!
最后希望给文章点个赞,整理不易!!!
如果有错误可以评论私信。
如有需要完整论文及代码数据便于参考学习可评论、私信

基于R语言时间序列分析所有指令[2021]相关推荐

  1. R语言时间序列分析-根据aic值选择arima模型

    在上一篇中,探讨了R语言时间序列分析常用步骤,如何比对AIC值判断最优模型?代码和解释如下: #WWWusage是datasets包自带的每分钟通过服务器连接到因特网的用户数的长度为100的时间序列数 ...

  2. R语言时间序列分析之ARIMA模型预测

    R语言时间序列分析之ARIMA模型预测 今天学习ARIMA预测时间序列. 指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之间相关性没有要求.但是,如果你想使用指数平滑法计算出预测区 ...

  3. R语言时间序列分析小例

    复习心烦,偶遇大作业,故摸鱼 作业题目 自由选取一组数据(可以是R 自带的数据集.或者其它来源,鼓励选取一些有趣的课题进行数据分析),利用我们这学期所学知识建立恰当模型(ARIMA.GARCH 等), ...

  4. 【R语言实验】基于R语言的时间序列平稳性检验

    一.实验项目名称:基于R语言的时间序列平稳性检验 二.实验目的与要求: 平稳时间序列的概念,平稳性检验的时序图检验方法和自相关图检验方法. 三.实验原理: 时序图和自相关图检验时间序列的平稳性依据: ...

  5. 基于R语言的Copula变量相关性分析及应用

    在工程.水文和金融等各学科的研究中,总是会遇到很多变量,研究这些相互纠缠的变量间的相关关系是各学科的研究的重点.虽然皮尔逊相关.秩相关等相关系数提供了变量间相关关系的粗略结果,但这些系数都存在着无法克 ...

  6. Protein Cell:基于R语言的微生物组数据挖掘最佳流程(大众评审截止14号晚6点)...

    Protein & Cell综述:基于R语言的微生物组数据挖掘的最佳流程 近日,中国农业科学院刘永鑫组联合南京农业大学袁军组在国际期刊 Protein & Cell (IF = 15. ...

  7. r软件时间序列分析论文_高度比较的时间序列分析-一篇论文评论

    r软件时间序列分析论文 数据科学 , 机器学习 (Data Science, Machine Learning) In machine learning with time series, using ...

  8. 毕业论文知识点记录(六)——基于R语言优化maxent模型

    毕业论文知识点记录(六)--基于R语言优化maxent模型 第一步:R安装 这个网上都有很多详细的步骤,就不再详细介绍了. 第二步:R安装包 因为优化maxent模型需要用到kuenm程序包,但是官网 ...

  9. 基于R语言的多元线性回归--我国经济增长的定量研究

    基于R语言的多元线性回归--我国经济增长的定量研究 一.实验介绍 1.1 实验内容 经济增长一直以来都是我国宏观经济政策的目标之一,研究影响经济增长的因素对促进我国经济快速发展有着重要意义.本实验运用 ...

最新文章

  1. ISOOSI网络模型的通俗解析
  2. Git在服务器安装完成后续工作
  3. 为什么机器人发展了几十年感觉还是没太大进展
  4. python3 json_Python3 解析复杂结构的 json
  5. linux指令:输出重定向与追加- 输出重定向 - 表示追加
  6. html pie标签,pie.html
  7. 8月SCISSCI期刊目录已更新,警惕这7本期刊
  8. 【直播录像】FLV缺帧视频处理方案
  9. java中的数据字典是什么_JAVA中的数据字典
  10. shadertoy学习记录(1)
  11. 博客总纲 博客目录V1
  12. 解决图片旋转之后的位置问题
  13. opencv4.1无法加载python-cnn模型,编译第三方库libtensorflow_cc.so巨坑
  14. win10系统桌面图标变为白色方框和去除桌面图标快捷方式小箭头的方法
  15. Android GPS定位记录发送功能
  16. 第二十六章 使用 CSP 进行基于标签的开发
  17. 计算机技术网络信息安全
  18. spring security中Authority、Role的区别
  19. HTML报错 Malformed markup: Attribute “xxx“ appears more than once in element
  20. 图解Semaphore信号量之AQS共享锁-非公平模式

热门文章

  1. 慕尼黑工业大学开源含四季的数据集:用于自动驾驶的视觉长期定位
  2. Centos-openstack-Rocky-ironic部署
  3. CVPR2020/UDA/图像翻译-Cross-domain Correspondence Learning for Exemplar-based Image Translation基于范例的跨域对应
  4. 测试打字速度测试程序c语言,打字速度测试软件
  5. interlib android客户端开发,基于Android的移动图书馆设计与开发
  6. dicom文件的处理
  7. DDN - Digital Data Network
  8. 软件测试工程师自我介绍范文_应届生软件测试面试自我介绍范文6篇
  9. 整数n分解成素数乘积c语言,关于几种求素数的方法(C语言描述)
  10. 铁路网络售票是利用计算机,铁路客运计算机售票具体操作图文.pdf