ARIMA模型是基于时间序列的预测模型,也叫做差分整合移动平均自回归模型,又称整合移动平均自回归模型,时间序列预测分析方法之一。ARIMA(p,d,q)中,AR是"自回归",p为自回归项数;MA为"滑动平均",q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。 将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。符合问题二中利用“数字经济”板块指数中成交量的预测。

ARIMA模型定义

具有如下结构的模型称为差分整合移动平均自回归模型,简记为ARIMA(p,d,q)模型:

1-z=1pϕi1-LdXt=1+0=1qθiLiεt#3

其中L是滞后算子(Lag operator)

ARIMA模型含有三个参数:p,d,q

p--代表预测模型中采用的时序数据本身的滞后数(lags)

d--代表时序数据需要进行几阶差分化,才是稳定的

q--代表预测模型中采用的预测误差的滞后数(lags)

通常在时间序列分析中,采用自相关函数(ACF)、偏自相关函数(PACF)来判别ARIMA(p,d,q)模型的系数和阶数。自相关函数(ACF)描述时间序列观测值与其过去的观测值之间的线性相关性。偏自相关函数(PACF)描述在给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性。若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合AR模型;若平稳序列的偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合MA模型;若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合ARMA模型。

ARIMA建模流程以及流程图如图所示:

(1) 获得数据

(2) 判断序列的平稳性

(3) 对序列进行差分平稳化处理

(4) 对平稳的一阶差分序列进行白噪声检验

(5) 拟合与预测

(6) 结果分析

 

案例:华中杯2021年量化投资问题成交量及收盘价预测

代码实现:

%% 数据导入及预处理
Data=xlsread('训练集-成交量');
Y=Data';
data=Y(1:6240);plot(Y) %原始数据图figure %未差分时ACF和PACF图
autocorr(Y)
figure
parcorr(Y)
%% 差分及平滑性检验
y_h_adf = adftest(Y);
y_h_kpss = kpsstest(Y); %平滑性检验,yd1_h_adf =1,yd1_h_kpss =0,通过检验Yd1 = diff(Y); %一阶差分
figure
plot(Yd1) %差分结果作图yd1_h_adf = adftest(Yd1); % 一阶差分,如果依旧不平稳的话,再次求差分,直至通过检验
yd1_h_kpss = kpsstest(Yd1);
Yd1=Yd1';
Y=Y'; %Yd2转换成列向量%% 模型参数选择
LOGL = zeros(4,4); % Initialize
PQ = zeros(4,4);
for p = 1:4for q = 1:4Mdl = arima(p,1,q);[~,~,logL] = estimate(Mdl,Yd1,'Display','off');LOGL(p,q) = logL;PQ(p,q) = p + q;end
endLOGL = reshape(LOGL,16,1);
PQ = reshape(PQ,16,1);
[~,bic] = aicbic(LOGL,PQ+1,100);a=reshape(bic,4,4); %reshape 重构数组a_max=max(a(:));
[x,y]=find(a==min(a(:)));%找最佳lags值 x=2,y=1,即对应ARMA(2,1)模型Mdl = arima(x, 1, y);  %第二个变量值为1,即一阶差分
EstMdl = estimate(Mdl,Y);
[res,~,logL] = infer(EstMdl,Y);   %res即残差stdr = res/sqrt(EstMdl.Variance);
%% 残差检验相关图片
figure
histogram(stdr,10)
figure
autocorr(stdr)
figure
parcorr(stdr)
figure
qqplot(stdr)diffRes0 = diff(res);
SSE0 = res'*res;
DW0 = (diffRes0'*diffRes0)/SSE0 % Durbin-Watson statistic,该值接近2,则可以认为序列不存在一阶相关性。%% 预测
step = 1; %预测步数为1
forData=zeros(1,6240);
for i=5328:6240
EstMdl = estimate(Mdl,Y(1:i));
[forData(i+1),YMSE] = forecast(EstMdl,step,'Y0',Y(1:i));
lower = forData(i+1) - 1.96*sqrt(YMSE); %95置信区间下限
upper = forData(i+1) + 1.96*sqrt(YMSE); %95置信区间上限
end%% 预测结果与原始数据对比
figure()
plot(5329:6240,Y(5329:6240))
hold on
plot(5329:6240,forData(5329:6240))
legend('原始数据','预测数据')%% 优度函数计算,均方根百分比误差
RMSPE = sqrt(sum((format(1:end,1)-Data(1:end,1)).^2)/sum(Data(1:end,1)).^2); 

学习笔记-ARIMA模型相关推荐

  1. CSS 学习笔记 - 盒模型

    CSS学习笔记 - 盒模型 外边距margin 内边距padding 背景background 背景图background-image 边框border 样式 宽度 颜色 圆角 边框图片border- ...

  2. 学习笔记_OSI模型

    学习笔记_OSI模型 OSI模型简介 OSI模型各层说明 OSI模型简介 OSI/RM协议由ISO(国际标准化组织)指定,功能为 给开发者提供一个通用的.必须的概念以便开发及完善:可以用来解释连接不同 ...

  3. labview学习笔记--3D模型(3)

    labview学习笔记–3D模型(3) 这次的内容是设置模型的运动–平移和旋转 1.首先,我们先找到设置平移和设置旋转的控件:程序框图->编程->图形与声音->三维图片控件-> ...

  4. arima 预测模型_预测未来:学习使用Arima模型进行预测

    arima 预测模型 XTS对象 (XTS Objects) If you're not using XTS objects to perform your forecasting in R, the ...

  5. 《南溪的目标检测学习笔记》——模型预处理的学习笔记

    1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...

  6. CV学习笔记-相机模型(欧式变换及仿射变换)

    相机模型 1.相机模型原理 1. 相机成像 相机成像是一个小孔成像模型,将现实生活中的三维空间物体映射到二维的成像平面上,进而生成二维的图像. 相机模型中的坐标系: 世界坐标系Pw(Xw, Yw, Z ...

  7. EntityFramework Core 学习笔记 —— 创建模型

    原文地址:https://docs.efproject.net/en/latest/modeling/index.html 前言: EntityFramework 使用一系列的约定来从我们的实体类细节 ...

  8. 《如何了解软件的设计》学习笔记0——模型-接口-实现

    如何理解软件的设计?一套流程:模型-接口-实现. 模型 找类与类之间的关系,绘制整体图,这个步骤就是找模型.有个整体地图. 接口 类中的各方法就是接口. 接口反映模型. 实现 类中方法的函数体就是实现 ...

  9. 深度学习笔记——生成模型

    什么是生成模型 生成模型可以描述一个生成数据的模型,属于一种概率模型. 通过这个模型我们可生成不包含在训练数据集中的新的数据. 每次生成模型要输出不同的内容.如果说某些特定的图片服从某些概率分布,生成 ...

最新文章

  1. 苹果服务器消息转发,iOS 消息推送原理及简单实现
  2. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
  3. 超级vga显示卡_VGA 显示卡简介
  4. Http中Get/Post请求区别
  5. oracle删除已创建的用户,ORACLE用户创建删除
  6. PCL综合开发(一):Qt 5.14 + PCL 1.8.1 +VS 2017环境配置
  7. Android NDK开发之旅12 JNI JNI引用
  8. spring-boot推送实时日志到前端页面显示
  9. getpass函数用法
  10. 使用OQL语言查询对象信息
  11. 基于双二阶广义积分器(DSOGI)的软件锁相环需求的根源及s域仿真
  12. 作为一名优秀的程序员,如何得体地辞职
  13. [北京活动]Ruby网站架构案例分享──财帮子FreeWheel(10.19 北京)
  14. 2007高校BBS上几个睿智的冷笑话
  15. c++小游戏:飞机游戏
  16. 【学术期刊】2023CCF推荐的A,B,C类英文科技期刊目录最新发布
  17. 学习笔记四:word2vec和fasttext
  18. 计算机科学期刊是a类还是b类,期刊发表a类期刊和b类期刊有什么区别?
  19. atm机存款场景图_atm机可以存钱吗(自动存款机存钱演示图)
  20. 期待您加入!CSDN招募优质英文布道者

热门文章

  1. 循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
  2. 利用arduino制作BadUSB
  3. 二手房简约改造 90平开阔舒适之家
  4. 恒生电子研发中心总经理章乐焱:“全领域”金融软件企业的 Fintech 探索之路
  5. labview与USB通信
  6. 万利达Zpad双雄征战平板江湖
  7. Echarts 自动切换选中状态
  8. 【APM】开发环境配置
  9. 单层感知器线性分类、多层感知器非线性分类样例 调用matlab神经网络工具箱实现
  10. linux系统重启网卡的方法步骤详解