ARIMA模型

ARIMA模型

简介

  • ARIMA模型是由AR、I与MA模型组成
  • AR(p):auto regressive,自回归模型,表示当前的数值与过去p个时间节点的值的回归,不依赖别的值,所以称为自回归;其中 p p 称为自回归的阶数。
  • I(d):integrateed,有的时间序列不是平稳信号,使用对数或者差分的方法可是将数据转化为平稳数据,数据的平稳性可以用数据的ACF(自相关)与PACF(偏自相关)图去判断。d是差分的阶数
  • MA(q):moving average,移动平均模型,表示当前的值,是过去q个时间点的预测误差的回归。 q q <script type="math/tex" id="MathJax-Element-189">q</script>是MA的移动平均的阶数
  • 具体的公式参考链接:http://danzhuibing.github.io/ml_arima_basic.html
  • 关于ACF与PACF的解释:http://www.cnblogs.com/tongji-wu/p/3439372.html

代码

%%
clc,clear,close all

t = 1:100;
t = t';
y = 2*t + 10*sin(t/2) + randn( size(t) );
figure
plot( t, y )

%% ACF和PACF 
figure
subplot(211),autocorr( y );
subplot(212),parcorr( y );
figure
dy = diff( y );
subplot(211),autocorr( dy );
subplot(212),parcorr( dy );

%% ARIMA 模型
Mdl = arima(5,1,0);
EstMdl = estimate(Mdl,y);
res = infer(EstMdl,y);
% 模型验证
figure
subplot(2,2,1)
plot(res./sqrt(EstMdl.Variance))
title('Standardized Residuals')
subplot(2,2,2),qqplot(res)
subplot(2,2,3),autocorr(res)
subplot(2,2,4),parcorr(res)
% 预测
[yF,yMSE] = forecast(EstMdl,20,'Y0',y);
UB = yF + 1.96*sqrt(yMSE);
LB = yF - 1.96*sqrt(yMSE);

figure
h4 = plot(y,'b');
hold on
h5 = plot(101:120,yF,'r','LineWidth',2);
h6 = plot(101:120,UB,'k--','LineWidth',1.5);
plot(101:120,LB,'k--','LineWidth',1.5);
hold off
  • 首先观察数据是否为平稳序列,如果不是,则需要使用差分等方法进行转化,才能使用ARMA模型
  • 一些结果
  • 原始图像
    这里写图片描述

  • 原始数据的ACF与PACF
    这里写图片描述

  • 原始数据差分后的ACF与PACF
    这里写图片描述
  • 模型验证
    这里写图片描述
  • 模型预测
    这里写图片描述
  • 23
    点赞
  • 139
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

littletomatodonkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值