楼主: 季薇
14308 7

[问答] matlab ARIMA [推广有奖]

  • 2关注
  • 0粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
3
精华
0
在线时间
4 小时
注册时间
2012-7-9
最后登录
2012-11-13

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
y=xlsread('f:\高锰酸钾指数.xls','A1:A72');
%figure(2)
%subplot(2,1,1)
%autocorr(y);     %原序列的自相关函数图MA(q),观察系数是否在区间(-2T^(1/2),-2T^(1/2))内
%subplot(2,1,2)
%parcorr(y);      %原序列的偏相关函数图AR(p),观察系数是否在区间(-2T^(1/2),-2T^(1/2))内
%如果该序列不是平稳的做差分图,否则跳过该步
DX=y;
[H,PValue,TestStat,CriticalValue] = adftest(DX); %是否是稳定序列
for i = 1:10
    if H== 1
       break;
    else
     DX=diff(y,i);  %进行差分
    end
end

figure(3);
subplot(2,1,1)
autocorr(DX)    %差分序列DX自相关函数图MA(q),观察系数是否在区间(-2T^(1/2),-2T^(1/2))内
subplot(2,1,2)
parcorr(DX);    %差分序列DX偏相关函数图AR(p),观察系数是否在区间(-2T^(1/2),-2T^(1/2))内

%对差分后的序列做拟合和预测,求出最好的阶数
DX=reshape(y,72,1);
z=[DX;zeros(12,1)];
z=iddata(DX);%将DX转化为matlab接受的格式
test = [];
% p = [0 1 2 3];    %自回归对应PACF,给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2),这里取
%  T/10=12;
% q = [0 1 2 3];     %移动平均对应ACF
for p = 1:3   %自回归对应PACF,给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2),这里取T/10=12
    for q = 1:3    %移动平均对应ACF
        m = armax(z(1:60),[p,q]);        
        AIC = aic(m);                      %armax(p,q),选择对应FPE最小,AIC值最小的模型
        test = [test;p q AIC];
    end
end
for k = 1:size(test,1)
    if test(k,3) == min(test(:,3))      %选择AIC值最小的模型
        p_test = test(k,1);
        q_test = test(k,2);
        break;
    end
end

%拟合过程
m1 = armax(z(1:60),[p_test q_test]);        %armax(p,q),[p_test q_test]对应AIC值最小
figure(4)
e = resid(m1,z);     %拟合做残差分析
plot(e);
grid;
title('残差序列');
%检验残差的自相关和偏相关函数
figure(5)
subplot(2,1,1)
autocorr(e.OutputData)      %一阶差分序列z自相关函数图MA(q),置信水平0.95
subplot(2,1,2)
parcorr(e.OutputData)    %一阶差分序列z偏相关函数图AR(p),置信水平0.95

%预测过程
p=predict(m1,z,1);%lcl m是任何idmodel对象(idpoly,idss,idgrey或idarx),z是包含输入输出数据的iddata对象。1是预测时间长度
                     % p是模型的预测输出,为包含预测值的iddata对象


这是程序只可以看到72个预测到的数据  要想预测更多数据比如84个、96个怎么写程序  
希望高手们给指导一下
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB atlab matla ARIMA Atl matlab

回帖推荐

Xaero 发表于2楼  查看完整内容

"1是预测时间长度" 不是已经告诉你,这个参数用来调预测时间长度么?

本帖被以下文库推荐

沙发
Xaero 发表于 2012-11-8 14:46:55 |只看作者 |坛友微信交流群
"1是预测时间长度" 不是已经告诉你,这个参数用来调预测时间长度么?
十年一觉扬州梦。
智不足以Academy,才尚不够Industry,情无力于Life。

使用道具

藤椅
季薇 发表于 2012-11-9 21:56:17 |只看作者 |坛友微信交流群
Xaero 发表于 2012-11-8 14:46
"1是预测时间长度" 不是已经告诉你,这个参数用来调预测时间长度么?
DX=reshape(y,72,1);
z=[DX;zeros(12,1)];
z=iddata(DX);%将DX转化为matlab接受的格式

还有这句话是不是有问题 最后z是不是依旧是y的向量,而不是y差分后的向量DX
还有就是想问一下 季节ARIMA中的p,q,PQ怎么定阶
还有 还有 就是说季节差分完定阶出一个PQ 怎么定阶小pq 呢

使用道具

板凳
紫色月光huo 发表于 2013-10-9 11:05:10 |只看作者 |坛友微信交流群
上面的例子中得到的预测值是差分后的数据预测值吗?那怎样还原得到原数据的预测值?

使用道具

报纸
guozifc 发表于 2015-4-24 14:57:10 |只看作者 |坛友微信交流群
哥们我试了下你这个程序。请问你最后的预测值得出来了吗,输出到哪了呢

val =

Time domain data set with 72 samples.
Sample time: 1 seconds               
                                      
Outputs      Unit (if specified)      
   y1                                 
                                      
我弄出来是这样的

使用道具

地板
xiabinghuale 发表于 2015-5-31 20:56:59 |只看作者 |坛友微信交流群
z=[DX;zeros(12,1)]; 这句是什么意思,为什么是12?看不懂。。。求指导

使用道具

7
369043396@qq.co 发表于 2017-2-27 00:15:22 |只看作者 |坛友微信交流群
这个运行不好

使用道具

D02@T_{QA4(EB6UME[[FVV2.png 1L%X``G9F{7PUZZ6DE[06{X.png {10E9_XBF]T7G50EGALJZ~D.png



这是我用这个脚本的结果   请问adftest函数产生了 什么结果  红色部分我不懂

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 07:57