一、基本理论知识
1、ARMA模型:
对不含季节变动的平稳序列进行建模。
ARMA(p,q) :
y[t] = a[0] + a[1]y[t-1] + … + a[p]y[t-p] + b[1]e[t-1] + … + b[q]e[t-q] + e[t]
2:、ARIMA模型:
如果数据具有非平稳性质,且要适配一个最佳时间序列模型,往往需要先差分以求平稳,在适配ARMA模型。
ARIMA(p,d,q):
X[t] = a[1]X[t-1] + … + a[p]X[t-p] + e[t] + b[1]e[t-1] + … + b[q]e[t-q]
二、数据选取:
2010-01-01~2020-10-27的上证指数收盘价。
三、R的实现步骤:
1、导入数据
导入数据的方法很多,这里用“quantmod”包从“雅虎财经”上下载,并进行初步的处理:

library(quantmod)
library(xts)
setSymbolLookup(SSEC=list(name="000001.SS",src="yahoo"))
#从yahoo上下载好数据
getSymbols("SSEC",from="2010-01-01",to="2020-10-27")
ssec=na.omit(SSEC)#删去不存在数据或数据缺失的整行

2、画出时序图和自相关图:
主要看自相关图,若时序非平稳,则需要先转化为平稳时序,才能用ARMA建模:

ssec1=as.xts(ssec[,-1],as.Date(ssec[,1]))#将数据转化为xts类的时间序列
head(ssec1,3)#查看前3行
plot(ssec1[,3],type="l",col="blue",yax.loc="left",format.labels='%Y-%m-%d',main="SSEC Close")

得到的时序图为:

检验平稳性方法一:
直接用tsdisplay(),结果包含了时序图、acf图、pacf图:

y=log(ssec1[,3])#先取对数
tsdisplay(y)

从结果可以看出acf具有较明显的拖尾特征,故可判断该序列为非平稳序列。

检验平稳性方法二:
ADF检验

library(urca)
y.df=ur.df(y,type=c("trend"),selectlags="AIC")#ADF检验y是否平稳
summary(y.df)#汇总结果
plot(y.df)#绘图诊断残差


截取了部分结果如上图,tau3为t检验,t统计量的值大于任何一种显著水平下的t值,故可以认为该时间序列为非平稳序列。

绘图结果为:

由残差的ACF和PACF可知残差依然与序列相关。

3、平稳化处理:
上一步得出该时序为非平稳,则需要对其进行处理。
R有个方便的指令auto.arima()可以对ARIMA和季节ARIMA进行自动最佳配置:

library(forecast)
yhat=auto.arima(y,ic="aic")
summary(yhat)

得出的结论如下:

这种方法建议的最佳模型为ARIMA(2,1,3),没有给出适配的季节结构的SARMA的模型,下面进行建模分析:

model=arima(y,include.mean=TRUE,order=c(2,1,3));model
tsdiag(model)

两步的结果依次为:

4、模型的检验:

Box.test(model$residuals,type="Ljung-Box")

结果如下:

p值>0.05,残差序列为白噪声,建模成功。

5、模型的预测:

plot(forecast(model,h=20),xlim=c(2500,3000))

为了方便观察,缩小了x轴区间:

可以看出预测未来20个交易日上证指数的收盘价均值在3250附近,以上做法仍然还存有缺陷。从结果看,依照此法得出的预测值参考价值不大。
另外,对于p、q阶数也可以手动比较选取,按照acf图和pacf图找出超过蓝色虚线的值,在设置一个循环结构去逐一实现,找出最佳阶数。

R语言 ARIMA模型(以上证指数为例)相关推荐

  1. R语言ARIMA集成模型预测时间序列分析

    全文链接:http://tecdat.cn/?p=18493 本文我们使用4个时间序列模型对每周的温度序列建模.第一个是通过auto.arima获得的,然后两个是SARIMA模型,最后一个是Buys- ...

  2. R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@[理科班的习习同学

    R语言选模型/用AIC BIC adjustRsq 十折交叉验证 LOOCV等验证/择参 以fama三因子模型和CAMP模型为例@理科班的习习同学 引入包与数据预处理 install.packages ...

  3. R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  4. R语言BIOMOD2模型的物种分布模拟

    随着生物多样性全球大会的举办,不论是管理机构及科研单位.高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合.优化自然保护地,加快推进国家公园体制试点,构建以国家公园为主体的自然保护地体系.针 ...

  5. R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)

    R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录

  6. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度

    R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录

  7. R语言KNN模型数据分类实战

    R语言KNN模型数据分类实战 目录 R语言KNN模型数据分类实战 #KNN基本原理 #案例分析 ​#数据集说明

  8. R语言xgboost模型构建:基于prima糖尿病数据集

    R语言xgboost模型构建:基于prima糖尿病数据集 目录 R语言xgboost模型构建:基于prima糖尿病数据集

  9. R语言回归模型协方差分析(Analysis of Covariance)

    R语言回归模型协方差分析(Analysis of Covariance) 目录 R语言回归模型协方差分析(Analysis of Covariance) 输入数据 ANCOVA分析

最新文章

  1. asp.net 服务器应用程序不可用
  2. scanf_s()函数 (是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数)
  3. 125. Leetcode 91. 解码方法 (动态规划- 字符串系列)
  4. 灰度图像--图像增强 Robert算子、Sobel算子
  5. java获取数据库MetaData
  6. 那一年,爱因斯坦输得很惨很惨,被十几个诺奖得主怼了一遍后,退出了群聊……...
  7. Java的新视差控件(JavaFX)
  8. java初学者指南_Java初学者指南
  9. mysql scrapy 重复数据_MySQL大数据量表中删除重复记录
  10. 产品运营周报报表分析案例
  11. 【华为云技术分享】MongoDB经典故障系列二:如何限制最大连接数?
  12. echart单击后获取横坐标值_Excel综合应用(1): 批量打印格式化后的表格
  13. STM32工作笔记0012---认识老化试验
  14. 国内互联网文章转摘习惯与现状一瞥
  15. 防火墙旁挂,策略路由引流
  16. 互联网舆情数据监测预警分析系统软件不收费的有哪些详解
  17. Ionic -- Refresher InfiniteScroll 下拉刷新与滚动懒加载
  18. 1.2. Linear and Quadratic Discriminant Analysis(线性判别和二次判别分析)(一)
  19. C 中用语言描述出下述方法的功能,文献检索复习题A
  20. 学堂在线答案计算机应用基础,2018计算机应用基础随堂练习与答案.pdf

热门文章

  1. Android Camera2 API和拍照与录像过程
  2. 学习笔记:Controllable Artistic Text Style Transfer via Shape-Matching GAN 基于形状匹配生成对抗网络的可控艺术文本风格迁移
  3. 520送女友什么礼物、520礼物送女友推荐
  4. Libvirt为ovs port配置的ingress qos规则为何不生效呢? (by quqi99)
  5. Venμs高分辨率(5米)多波段(12个)遥感数据介绍及下载
  6. 蜜雪冰城“黑化”热搜第一,这波自“产”自“销”你学到了吗?
  7. PCB中的HDI板生产中的变化
  8. python画兔子代码_【后端开发】如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...
  9. 【干货分享】Win8系统连接蓝牙耳机声音低或者音质低高效解决办法!!!
  10. 《炬丰科技-半导体工艺》硅片镍化学沉积的机理