The simplest Singular Structure Analysis forecasting algorithm

Use one of the following data samples to show the forecast

Contents

file: demo_ssa_forecast

1) electricity consumption

x = [0.1925 0.2059 0.2731 0.4828 0.7077 0.9331 1.0521 1.0980 1.1000 1.0424 0.9528 0.9129 0.9097 0.8249 0.7598 0.7562 0.7005 0.7156 0.8270 0.8471 0.5891 0.3213 0.1987 0.1732 0.1466 0.1635 0.1892 0.3744 0.5850 0.7753 0.8808 0.9656 0.9297 0.8573 0.8851 0.8724 0.8489 0.8242 0.7763 0.7158 0.6584 0.6521 0.8567 0.8930 0.6392 0.3693 0.2284 0.1793 0.1726 0.1695 0.2098 0.4510 0.6292 0.8091 0.9150 0.9644 0.9509 0.9200 0.9153 0.8913 0.9090 0.9308 0.8675 0.7714 0.6928 0.7089 0.8377 0.8639 0.5720 0.3275 0.1999 0.1613 0.1352 0.1041 0.1456 0.3835 0.6100 0.7426 0.8700 0.9062 0.8766 0.8698 0.9330 0.9349 0.9033 0.8457 0.7573 0.6992 0.6422 0.6323 0.8158 0.8855 0.6103 0.3356 0.2118 0.1000]';
t = [733470 + 0.0417 *(1:length(x))]';
K = 24;   % period
M = 24*3; % forecast horizon

The simplest Singular Structure Analysis forecasting algorithm: electricity consumption

2) triangle example

% x = [1 2 3 2 1 2 3 2 1 2 3]';
% t = [1:length(x)]';
% K = 3;
% M = 6;

The simplest Singular Structure Analysis forecasting algorithm: triangle example

3) trapezoid example

% x = [0 0 1 1 0 0 -1 -1 0 0 1 1 0 0 -1 -1]';
% t = [1:length(x)]';
% K = 8;
% M = 10;

The simplest Singular Structure Analysis forecasting algorithm: trapezoid example

4) sine example

% t = linspace(-2*pi,2*pi, 160)';
% x = sin(t) + sin(4*t);
% K = 10;
% M = 120;

The simplest Singular Structure Analysis forecasting algorithm: sine example

run the forecasting algorithm

x1 = ssaMtick(x,M,K); % see comments in the code

show the results

h=figure; hold('on');
t = [t; t(end)+((t(2)-t(1))*[1:M]')];
x = [x; NaN*ones(M,1)];
plot(t',x, 'b-');
plot(t',x1,'r-');
plot(t',x1,'r.');
plot(t',x, 'b.');
plot(t',x, 'b-');
legend('history', 'forecasting');
datetick('x','d')
ylabel('consumption');
xlabel('time');
axis tight
hold off
%saveas(h,'img/ssa_frc_consum.png','png');
close(h);
% end

Vadim Victor

Vadim V. Strijov, Data Analysis & Machine Learning professor at the FRCCSC of the RAS, Doctor of Physics and mathematics sciences

You may also like...