时间序列(时间序列模型只适合短时期预测,不适合长时期)

  • 平稳时间序列


    1)平稳性检验及自协方差函数、自相关函数的估计
       1.平稳性 Daniel 检验


x0=[1.37 2.96 1.91 3.10 2.08 2.54 4.07 3.62 2.91 1.94 3.96 4.19 2.71 3.42 3.02 3.54 2.66 4.11 4.25 3.76];
x0=x0';
x0=x0(:)';
n=length(x0);
alpha=0.05
[xsort,ind]=sort(x0);
%按从小到大的次序排列数据
%[B,I] = sort(A,dim),B - 已排序数组;I - 排序索引rt(ind)=1:n;
%计算秩t=1:n;qs=1-6/(n*(n^2-1))*sum((t-rt).^2)
%计算qs的值,t=qs*sqrt(n-2)/sqrt(1-qs^2)
%计算 t 统计量的值t_0=tinv(1-alpha/2,n-2)
%计算上 alpha/2的分位点
%若t>t_0,则拒绝H0,认为序列是非平稳的,若qs>0,则序列有上升趋势
  1. ARMA 时间序列及其特性
    A R M A 时 间 序 列 = { A R 模 型 , 即 自 回 归 序 列 M A 序 列 , 即 滑 动 平 均 序 列 A R M A 序 列 , 即 自 回 归 滑 动 平 均 序 列 ARMA 时间序列=\begin{cases} AR 模型,即自回归序列 \\ MA 序列,即滑动平均序列 \\ ARMA 序列,即自回归滑动平均序列 \end{cases} ARMA时间序列=⎩⎪⎨⎪⎧​AR模型,即自回归序列MA序列,即滑动平均序列ARMA序列,即自回归滑动平均序列​
    理论描述没懂







(性质太多,不写了。看书吧《数学建模算法与应用》p507)

  • ARIMA 序列与季节性序列


     设 X t X_t Xt​ 是 A R I M A ( p , d , q ) ARIMA( p,d,q) ARIMA(p,d,q) 序列,则当 p = 0 p = 0 p=0 时,称为 I M A ( d , q ) IMA(d,q) IMA(d,q) 序列;当 q = 0 q = 0 q=0时,称为 A R I ( p , d ) ARI( p,d) ARI(p,d) 序列。
    系数拖着长长的尾巴,就是拖尾,值是慢慢减少的;
    系数是突然收敛到临界值水平范围内的,就是截尾,值突然变的很小。
    截尾和拖尾: x i + 1 = e − m x 1 x_{i+1}=e^{- mx_{1}} xi+1​=e−mx1​表明误差越来越小。
AR模型: 自相关系数拖尾,偏自相关系数截尾
MA模型: 自相关系数截尾,偏自相关函数拖尾
ARMA模型: 自相关函数和偏自相关函数均拖尾


解:

a=[17.0 16.6 16.3 16.1 17.1 16.9 16.8 17.4 17.1 17.0
16.7 17.4 17.2 17.4 17.4 17.0 17.3 17.2 17.4 16.8
17.1 17.4 17.4 17.5 17.4 17.6 17.4 17.3 17.0 17.8
17.5 18.1 17.5 17.4 17.4 17.1 17.6 17.7 17.4 17.8
17.6 17.5 16.5 17.8 17.3 17.3 17.1 17.4 16.9 17.3
17.6 16.9 16.7 16.8 16.8 17.2 16.8 17.6 17.2 16.6
17.1 16.9 16.6 18.0 17.2 17.3 17.0 16.9 17.3 16.8
17.3 17.4 17.7 16.8 16.9 17.0 16.9 17.0 16.6 16.7
16.8 16.7 16.4 16.5 16.4 16.6 16.5 16.7 16.4 16.4
16.2 16.4 16.3 16.4 17.0 16.9 17.1 17.1 16.7 16.9
16.5 17.2 16.4 17.0 17.0 16.7 16.2 16.6 16.9 16.5
16.6 16.6 17.0 17.1 17.1 16.7 16.8 16.3 16.6 16.8
16.9 17.1 16.8 17.0 17.2 17.3 17.2 17.3 17.2 17.2
17.5 16.9 16.9 16.9 17.0 16.5 16.7 16.8 16.7 16.7
16.6 16.5 17.0 16.7 16.7 16.9 17.4 17.1 17.0 16.8
17.2 17.2 17.4 17.2 16.9 16.8 17.0 17.4 17.2 17.2
17.1 17.1 17.1 17.4 17.2 16.9 16.9 17.0 16.7 16.9
17.3 17.8 17.8 17.6 17.5 17.0 16.9 17.1 17.2 17.4
17.5 17.9 17.0 17.0 17.0 17.2 17.3 17.4 17.4 17.0
18.0 18.2 17.6 17.8 17.7 17.2 17.4 0 0 0];
a=nonzeros(a');
%按照原来数据的顺序去掉零元素
r11=autocorr(a);
%计算自相关系数
r12=parcorr(a);
%计算偏相关函数
figure
subplot(211),autocorr(a);
subplot(212),parcorr(a);
%将原始数据的自相关与偏自相关数据画在一个图上
%由于r11为正,即不是被负指数控制的,所以计算一阶差分:
da=diff(a);
r21=autocorr(da);
%计算自相关系数
r22=parcorr(da);
%计算偏相关函数
adf=adftest(da);
%若adf==1,则表明是平稳时间序列。
figure
subplot(211),autocorr(da);
subplot(212),parcorr(da);
%将一阶查分后的自相关与偏自相关数据画在一个图上,由图可以明显看出数据变成平稳数列。
n=length(da);
%计算差分后的数据个数
%由图形可看出
k=0;for i = 0:3for j = 0:3 %0:L,L的值不确定 if i == 0 & j == 0continueelseif i == 0ToEstMd = arima('MALags',1:j,'Constant',0); %指定模型的结构elseif j == 0ToEstMd = arima('ARLags',1:i,'Constant',0); %指定模型的结构elseToEstMd = arima('ARLags',1:i,'MALags',1:j,'Constant',0); %指定模型的结构endk = k + 1;R(k) = i;M(k) = j;[EstMd,EstParamCov,LogL,info] = estimate(ToEstMd,da);%模型拟合,估计模型参数numParams = sum(any(EstParamCov));%计算拟合参数的个数[aic(k),bic(k)] = aicbic(LogL,numParams,n);end
end
fprintf('R,M,AIC,BIC的对应值如下\n%f');%显示计算结果
check  = [R',M',aic',bic'];
%模型验证:res=infer(EstMd,da);
%求条件方差,条件方差增加,波动性增加
figure
subplot(2,2,1)
plot(res./sqrt(EstMd.Variance))
%画出标准化残差
title('Standardized Residuals')
subplot(2,2,2),qqplot(res)
%QQ图中残差基本完全落在45°线上即为符合正态性假设。否则模型可能出现错误.
subplot(2,2,3),autocorr(res)
subplot(2,2,4),parcorr(res)%定阶:
%由差分后的自相关图与偏自相关数据图可知:
%自相关系数在滞后1阶后就快速的减为0,偏自相关系数同自相关系数
%所以,p=1,q=1%模型预测:
p=input('输入阶数P=');
q=input('输入阶数q=');
ToEstMd=arima('ARLags',1:p,'MALags',1:q,'Constant',0);
%指定模型的结构[EstMd,EstParamCov,LogL,info] = estimate(ToEstMd,da);%模型拟合,估计模型参数
%  dx_forest=forecast(EstMd,10,'Y0',da);%预测确定的模型输出dx_forest=forecast(EstMd,10,'Y0',da);%dx_forest预测的响应,'10'表示求10步预测值x_forest=a(end)+cumsum(dx_forest)%计算原始数据的10步预测值
%画图:
figure
h4 = plot(a,'b');hold onh5 = plot(length(a)+1:length(a)+10,x_forest,'r','LineWidth',2);hold off
  • 季节性序列及其预报
      由季节性因素或其它周期因素引起的周期性变化的时间序列,我们称为季节性时间序列,相应的模型为季节性模型。




    解:
water=[9.40 8.81 8.65 10.01 11.07 11.54 12.73 12.43 11.64 11.39 11.1 10.85
10.71 10.24 8.48 9.88 10.31 10.53 9.55 6.51 7.75 7.8 5.96 5.21
6.39 6.38 6.51 7.14 7.26 8.49 9.39 9.71 9.65 9.26 8.84 8.29
7.21 6.93 7.21 7.82 8.57 9.59 8.77 8.61 8.94 8.4 8.35 7.95
7.66 7.68 7.85 8.53 9.38 10.09 10.59 10.83 10.49 9.21 8.66 8.39
8.27 8.14 8.71 10.43 11.47 11.73 11.61 11.93 11.55 11.35 11.11 10.49
10.16 9.96 10.47 11.70 10.1 10.37 12.47 11.91 10.83 10.64 10.29 10.34];
water=water';
x=water(:)';
%water(:)为将water中的数据转化为一列数据
r11=autocorr(x);
%计算自相关系数
r12=parcorr(x);
%计算偏相关函数
figure
subplot(211),autocorr(r11);
subplot(212),parcorr(r12);
s=12;
%地下水按照12个月的季节性变化
n=12;
%预报数据的个数
m1=length(x);
%原始数据的个数
for i=s+1:m1y(i-s)=x(i)-x(i-s);%周期差分:相邻两个年份同一个月分的地下水位的差
end
m2=length(y);
%周期差分后数据的个数
w=diff(y);
%消除趋势性的差分运算
r21=autocorr(w);
%计算自相关系数
r22=parcorr(w);
%计算偏相关函数
adf=adftest(w);
%若adf==1,则表明是平稳时间序列。
figure
subplot(211),autocorr(r21);
subplot(212),parcorr(r22);
m3=length(w);
%计算最终差分后数据的个数
k=0;
for i = 0:3for j = 0:3 %0:L,L的值不确定 if i == 0 & j == 0continueelseif i == 0ToEstMd = arima('MALags',1:j,'Constant',0); %指定模型的结构elseif j == 0ToEstMd = arima('ARLags',1:i,'Constant',0); %指定模型的结构elseToEstMd = arima('ARLags',1:i,'MALags',1:j,'Constant',0); %指定模型的结构endk = k + 1;R(k) = i;M(k) = j;[EstMd,EstParamCov,LogL,info] = estimate(ToEstMd,w');%模型拟合,估计模型参数numParams = sum(any(EstParamCov));%计算拟合参数的个数[aic(k),bic(k)] = aicbic(LogL,numParams,m2);end
end
fprintf('R,M,AIC,BIC的对应值如下\n%f');%显示计算结果
check  = [R',M',aic',bic']%模型验证:res=infer(EstMd,w');
%求条件方差,条件方差增加,波动性增加
figure
subplot(2,2,1)
plot(res./sqrt(EstMd.Variance));
%画出标准化残差
title('Standardized Residuals');
subplot(2,2,2),qqplot(res);
%QQ图中残差基本完全落在45°线上即为符合正态性假设。否则模型可能出现错误.
subplot(2,2,3),autocorr(res);
subplot(2,2,4),parcorr(res);%定阶:
%由差分后的由差分后的自相关图与偏自相关数据图可知:
%自相关系数在滞后1阶后就快速的减为0,偏自相关系数同自相关系数
%所以,p=1,q=1%模型预测:
p=input('输入阶数P=');
q=input('输入阶数q=');
ToEstMd=arima('ARLags',1:p,'MALags',1:q,'Constant',0);
%指定模型的结构[EstMd,EstParamCov,LogL,info] = estimate(ToEstMd,w');%模型拟合,估计模型参数dy_forest=forecast(EstMd,n,'Y0',w');%预测确定的模型输出,注意已知数据应为列向量,所以用w'.yhat=y(m2)+cumsum(dy_forest);%求一阶差分的还原值yhat=yhat';for j=1:nx(m1+j)=yhat(j)+x(m1+j-s);%求x的预测值endwhat=x(m1+1:end);%截取n个预报值%画图:figureh4 = plot(x,'b');hold onh5 = plot(length(x)+1:length(x)+n,what,'r','LineWidth',2);hold off

MATLAB时间序列2(ARIMA,季节性序列及其预报)------2019/8/14相关推荐

  1. 理论加实践,终于把时间序列预测ARIMA模型讲明白了

    上篇我们一起学习了一些关于时间序列预测的知识.而本文将通过一段时间内电力负荷波动的数据集来实战演示完整的ARIMA模型的建模及参数选择过程,其中包括数据准备.随机性.稳定性检验.本文旨在实践中学习,在 ...

  2. 时间序列分析模型——ARIMA模型

    时间序列分析模型--ARIMA模型 一.研究目的 传统的经济计量方法是以经济理论为基础来描述变量关系的模型.但经济理论通常不足以对变量之间的动态联系提供一个严密的说明,而且内生变量既可以出现在方程的左 ...

  3. matlab armax和arima区别,ARMA和ARIMA的区别是什么?

    问题详述:老师 ARMA和ARIMA不是一回事吧? 解答 1.运用对象不同 AR,MA,ARMA都是运用于原始数据是平稳的时间序列. ARIMA运用于原始数据差分后是平稳的时间序列. 2.时间序列不同 ...

  4. Python、MATLAB股票投资:ARIMA模型最优的选股、投资组合方案与预测

    全文链接:http://tecdat.cn/?p=31651 我们基于当前统计的股票数据为客户选择最优的选股方案和投资组合方案,以及预测股票价格未来一段时间的走向趋势以及波动程度,具有很大的实用价值. ...

  5. 时间序列预测--ARIMA、LSTM

    时间序列预测–ARIMA.LSTM ARIMA ARIMA模型全称为差分自回归移动平均模型(Auto regressive Integrated Moving Average Model,简记ARIM ...

  6. 【Python】Python时间序列预测 | 经典季节性分解

    今天给大家分享一种方法,,时间序列预测之seasonal_decompose使用移动平均线对时间序列数据进行季节性分解,Python实现和原理介绍.这是我在学习时间序列异常检测时遇到的一个问题,通过收 ...

  7. 【价格预测】基于matlab时间序列股票价格预测【含Matlab源码 450期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [价格预测]基于matlab时间序列股票价格预测[含Matlab源码 450期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  8. matlab神经网络 时间序列,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?请教一下该神经网络的预测问题 我用网上的一个案例:知道2015年降雨我要预测该年水位.用往年 ...

  9. matlab narxnet,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?请教一下该神经网络的预测问题 我用网上的一个案例:知道2015年降雨我要预测该年水位.用往年 ...

最新文章

  1. Generator-ing Values
  2. JAVA test代码运行
  3. 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_是海尔?也是雷神?不足1千克MixBook Air超轻薄笔记本...
  4. two.js文档阅读笔记-two.js的基本使用
  5. Spring配置事务的五种方式
  6. 滚轮y坐标html,web交互之js事件
  7. security工作笔记003---SpringSecurity框架启动报错.bcrypt.BCryptPasswordEncoder‘ that could not be found.
  8. matplotlib.pyplot
  9. 我的Java自学之路
  10. 游戏策划入门(6)——把模块变成现实
  11. 【阅读笔记】BI系统介绍及建设思路
  12. extra argument in call
  13. MySQL的Binlog原理
  14. Open Infrastructure丹佛峰会即将召开,这些边缘计算议题等你来听
  15. 关于ios程序的后台运行
  16. 安装32位Pycharm出现的系列问题if you already have a 32-bit JDK installed详细解决方法
  17. 太赫兹通信芯片关键技术与系统发展浅析
  18. Linux下使用samba工具共享文件
  19. 基于安装django报错信息的处理方案
  20. 黑子链sust是什么?

热门文章

  1. 猫眼APP影院静态界面
  2. sql2000不显示服务器失败,安装sql server 2000数据库提示程序配置服务器失败.(解决方法)...
  3. 代数与逻辑:作业一 线性模型
  4. 无意中发现我这个北漂的几张照片
  5. 富士莱医药深交所上市:市值61亿 净利1.2亿同比降15%
  6. 在堆栈中,push为入栈操作,pop为出栈操作
  7. 联通 受限服务器未响应,联通设置宽带的时候服务器未响应
  8. 类静态数据成员的定义及初始化
  9. 原反补码的相互转换、补码加减法计算规则及例题
  10. Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户