?? predict1.m
字號:
function MSE=Predict1(data,m,tau,P,lmd,MaxStep)
%單步預測
% disp('--------最大預測步數---------')
% MaxStep=round(1/lmd)
% % MaxStep=5;
% % MaxStep=MaxStep+5;%避免預測太長控制在10步
deltaT=1;
for i=1:MaxStep
i
newdata=data(1:length(data)-MaxStep+i-1);
pre_value(i) = FunctionChaosPredict(newdata,length(newdata),P,deltaT,tau,m,1);%調用AOLMM進行多步預報
end
%figure(1)
% plot(length(data)-MaxStep+1:length(data),data(length(data)-MaxStep+1:length(data)),'b-',length(data)-MaxStep+1:length(data),pre_value,'r-*');
% legend('Original','Predict(局域法)');
% %-----------求標準差-----------------
% delt=std(data(length(newdata)+1:length(data))-newdata1(length(newdata)+1:length(data)))
disp('-----------求RMSE----------------------')
old=data(length(data)-MaxStep+1:length(data))';
q=mean(old);
RMSE=norm(pre_value-old,2)/norm(old-q,2)
disp('-------------中誤差-----------------')
v=abs(pre_value-old);
MSE=sqrt(sum(v.^2)/length(old))
disp('----------MAPE平均絕對百分比誤差---------------')
for i=1:length(old)
a(i)=abs((old(i)-pre_value(i))/old(i));
end
MAPE=sum(a)/length(old)*100
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -