楼主: longzhu123
10176 4

[求助] matlab的arma程序 [推广有奖]

  • 1关注
  • 3粉丝

已卖:842份资源

讲师

10%

还不是VIP/贵宾

-

威望
0
论坛币
3525 个
通用积分
0.0604
学术水平
5 点
热心指数
8 点
信用等级
5 点
经验
13827 点
帖子
326
精华
0
在线时间
369 小时
注册时间
2009-12-9
最后登录
2025-12-4

楼主
longzhu123 发表于 2011-4-28 10:25:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请各位高手看一下,这个程序有问题吗?邮箱:longzhu147@126.com



clear all;clc;
y=xlsread('E:\guo\A3.xls','A1:A96');%填写待处理数据的详细   
ls=length(y);
figure(1);%第1张图
plot(y);
set(gca,'Xlim',[0 ls]);
figure(2);
subplot(2,1,1);
set(gca,'Xlim',[0 ls]);
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]=dfARDTest(y,[],0.05,'T');  %是否是稳定序列
for i = 1:10
    if H == 1
       break;
    else
     DX=diff(y,i);  %进行差分
        [H,PValue,TestStat,CriticalValue] = dfARDTest(DX,[],0.05,'T');
    end
end
figure(3);
plot(DX);%进行差分之后的数列
set(gca,'Xlim',[0 ls]);
figure(4);
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))内
set(gca,'Xlim',[0 ls]);
%对差分后的序列做拟合和预测,求出最好的阶数
z=iddata(DX);%将DX转化为matlab接受的格式
test = [];
% p = [0 1 2 3 4 5 6 7 8 9 10 11 12];    %自回归对应PACF,给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2),这里取
%  T/10=12;
% q = [0 1 2 3 4 5 6 7 8 9 10 11 12];     %移动平均对应ACF
for p = 1:10    %自回归对应PACF,给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2),这里取T/10=12
    for q = 1:10    %移动平均对应ACF
        m = armax(z(1:96),[p q]);        
        AIC = aic(m);                      %armax(p,q),选择对应FPE最小,AIC值最小的模型
        %[H, P, Qstat, CV] = lbqtest(z, [p;q], 0.05)    %Ljung-Box Q-statistic lack-of-fit hypothesis test
        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:96),[p_test q_test]);        %armax(p,q),[p_test q_test]对应AIC值最小
figure(5);
e = resid(m1,z);     %拟合做残差分析
plot(e);
set(gca,'Xlim',[0 ls]);
%检验残差的自相关和偏相关函数
figure(6);
subplot(2,1,1)
autocorr(e.OutputData)      %一阶差分序列z自相关函数图MA(q),置信水平0.95
subplot(2,1,2)
parcorr(e.OutputData)
set(gca,'Xlim',[0 ls]);%一阶差分序列z偏相关函数图AR(p),置信水平0.95
%预测过程
p=predict(m1,z,1);
x=[1:1:95];
po = p.OutputData
figure(7)
plot(x,po,'r');
hold on
x=[1:1:96];
plot(x,y,'b');
set(gca,'Xlim',[0 ls]);
hold off
[Pr,DWr] = dwtest(e.OutputData,z.OutputData);
if Pr<0.05
    disp('can not use this model');
else disp('can use this model');
end
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB atlab matla ARMA ARM MATLAB 程序 ARMA

fg

沙发
longzhu123 发表于 2011-4-28 10:25:39
论文要用这个模型,比较急,谢谢大家了
fg

藤椅
ZXH_KK 发表于 2013-8-1 23:53:48
??? Undefined function or method 'dfARDTest' for input arguments of type
'double'.

Error in ==> aaa at 16
[H,PValue,TestStat,CriticalValue]=dfARDTest(y,[],0.05,'T');  %是否是稳定序列

你的dfARDTest.m是什么

板凳
浮生若梦124 发表于 2013-8-27 11:42:37
楼主同感

报纸
白蓝雪 发表于 2015-3-18 14:12:31
dfARDTest是进行ADF检验,有的matlab版本采用的是adfTest函数,作用是一样的

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-30 00:38