📄 w_croston.m
字号:
function [Croston, Croston_modify]=w_croston(original_data,c)
%forecast using Croston method(including modified Croston)
%c平滑指数,越小越平缓,越大越接近原曲线,一般c的范围在0.05到0.2之间
%
[a1,a2] = size(original_data);
if a1 ~=1
error('input sample must be like 1*n!--by ww')
end
n=length(original_data); % 数据总数
q=1; %q记录需求间隔
Z(1)=original_data(1); %对需求的平滑预测
sum=original_data(1);
I(1)=1; %对需求间隔的平滑预测
Croston(1)=Z(1)/I(1);
Croston_modify(1) = (1-c/2)*Z(1)/I(1);
for i=2:n
if original_data(i)==0
Z(i)=Z(i-1);
I(i)=I(i-1);
q=q+1;
else
Z(i)=c*original_data(i)+(1-c)*Z(i-1);
I(i)=c*q+(1-c)*I(i-1);
q=1;
end
Croston(i)=Z(i)/I(i); %Croston method result
Croston_modify(i) = (1-c/2)*Z(i)/I(i);%Modified croston method result
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -