exponenta event banner

Прогнозная модель состояния-пространства, содержащая изменение режима в горизонте прогноза

В этом примере показано, как прогнозировать изменяющуюся во времени модель пространства состояния, в которой происходит изменение режима в горизонте прогноза.

Предположим, что вы наблюдали многомерный процесс в течение 75 периодов, и вы хотите прогнозировать процесс 25 периодов в будущем. Также предположим, что можно указать процесс как модель пространства состояний. Для периодов с 1 по 50 модель state-space имеет одно состояние: стационарная модель AR (2) с постоянным членом. В период 51 модель состояния-пространства включает в себя случайную прогулку. Состояния наблюдаются непредвзято, но с аддитивной погрешностью измерения. Символично, что модель

[x1, tx2, tx3, tx4, t] = [0.5-0.210100000100001] [x1, t-1x2, t-1x3, t-1x4, t-1] + [0.10000000.5] [u1, tu2, t] yt = [10000001] [x1, tx2, tx3, tx4, t] + [0.3000.2] [ε1, tε2, t].

Для периодов с 1 по 50 процесс случайного обхода отсутствует в модели.

Укажите матрицы коэффициентов в выборке.

A1 = {[0.5 0.2 1; 1 0 0; 0 0 1]};                % A for periods 1 - 50
A2 = {[0.5 0.2 1; 1 0 0; 0 0 1; 0 0 0]};         % A for period 51
A3 = {[0.5 0.2 1 0; 1 0 0 0; 0 0 1 0; 0 0 0 1]}; % A for periods 51 - 75
A = [repmat(A1,50,1); A2; repmat(A3,24,1)];

B1 = {[0.1; 0; 0]};              % B for periods 1 - 50
B3 = {[0.1 0; 0 0; 0 0; 0 0.5]}; % B for periods 51 - 75
B = [repmat(B1,50,1); repmat(B3,25,1)];

C1 = {[1 0 0]};            % C for periods 1 - 50
C3 = {[1 0 0 0; 0 0 0 1]}; % C for periods 51 - 75
C = [repmat(C1,50,1); repmat(C3,25,1)];

D1 = {0.3};            % D for periods 1 - 50
D3 = {[0.3 0; 0 0.2]}; % D for periods 51 - 75
D = [repmat(D1,50,1); repmat(D3,25,1)];

Укажите модель пространства состояний, а также средство начального состояния и ковариационную матрицу. Рекомендуется указывать типы каждого состояния с помощью 'StateType' аргумент пары имя-значение. Укажите только параметры начального состояния для трех состояний, которые запускают модель state-space.

Mean0 = [1/(1-0.5-0.2); 1/(1-0.5-0.2); 1];
Cov0 = [0.02 0.01 0; 0.01 0.02 0; 0 0 0];
StateType = [0; 0; 1];
Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType)
Mdl = 
State-space model type: ssm

State vector length: Time-varying
Observation vector length: Time-varying
State disturbance vector length: Time-varying
Observation innovation vector length: Time-varying
Sample size supported by model: 75

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...

State equations of period 1, 2, 3,..., 50:
x1(t) = (0.50)x1(t-1) + (0.20)x2(t-1) + x3(t-1) + (0.10)u1(t)
x2(t) = x1(t-1)
x3(t) = x3(t-1)

State equations of period 51:
x1(t) = (0.50)x1(t-1) + (0.20)x2(t-1) + x3(t-1) + (0.10)u1(t)
x2(t) = x1(t-1)
x3(t) = x3(t-1)
x4(t) = (0.50)u2(t)

State equations of period 52, 53, 54,..., 75:
x1(t) = (0.50)x1(t-1) + (0.20)x2(t-1) + x3(t-1) + (0.10)u1(t)
x2(t) = x1(t-1)
x3(t) = x3(t-1)
x4(t) = x4(t-1) + (0.50)u2(t)


Observation equation of period 1, 2, 3,..., 50:
y1(t) = x1(t) + (0.30)e1(t)

Observation equations of period 51, 52, 53,..., 75:
y1(t) = x1(t) + (0.30)e1(t)
y2(t) = x4(t) + (0.20)e2(t)


Initial state distribution:

Initial state means
  x1    x2   x3 
 3.33  3.33   1 

Initial state covariance matrix
     x1    x2    x3 
 x1  0.02  0.01   0 
 x2  0.01  0.02   0 
 x3   0     0     0 

State types
     x1          x2         x3    
 Stationary  Stationary  Constant 

Mdl является изменяющимся во времени, ssm модель без неизвестных параметров. Программное обеспечение устанавливает средства начального состояния и значения ковариации на основе типа состояния.

Моделирование 75 наблюдений из Mdl.

rng(1); % For reproducibility
Y = simulate(Mdl,75);

y представляет собой клеточный вектор 75 на 1. Ячейки 1-50 содержат скаляры, а ячейки 51-75 содержат числовые векторы 2 на 1. Ячейка j соответствует наблюдениям периода j, определенным моделью наблюдения.

Постройте график смоделированных откликов.

y1 = cell2mat(Y(51:75));              % Observations for periods 1 - 50
d1 = cell2mat(Y(51:75));
y2 = [d1(((1:25)*2)-1) d1((1:25)*2)]; % Observations for periods 51 - 75

figure
plot(1:75,[y1;y2(:,1)],'-k',1:75,[nan(50,1);y2(:,2)],'-r','LineWidth',2')
title('In-sample Observations')
ylabel('Observations')
xlabel('Period')
legend({'AR(2)','Random walk'})

Figure contains an axes. The axes with title In-sample Observations contains 2 objects of type line. These objects represent AR(2), Random walk.

Предположим, что процесс случайного обхода выпадает из пространства состояния в 20-м периоде горизонта прогноза.

Укажите матрицы коэффициентов для периода прогноза.

A4 = {[0.5 0.2 1 0; 1 0 0 0; 0 0 1 0; 0 0 0 1]};  % A for periods 76 - 95
A5 = {[0.5 0.2 1 0; 1 0 0 0; 0 0 1 0]};           % A for period 96
A6 = {[0.5 0.2 1; 1 0 0; 0 0 1]};                 % A for periods 97 - 100
fhA = [repmat(A4,20,1); A5; repmat(A6,4,1)];

B4 = {[0.1 0; 0 0; 0 0; 0 0.5]}; % B for periods 76 - 95
B6 = {[0.1; 0; 0]};              % B for periods 96 - 100
fhB = [repmat(B4,20,1); repmat(B6,5,1)];

C4 = {[1 0 0 0; 0 0 0 1]}; % C for periods 76 - 95
C6 = {[1 0 0]};            % C for periods 96 - 100
fhC = [repmat(C4,20,1); repmat(C6,5,1)];

D4 = {[0.3 0; 0 0.2]}; % D for periods 76 - 95
D6 = {0.3};            % D for periods 96 - 100
fhD = [repmat(D4,20,1); repmat(D6,5,1)];

Прогнозные наблюдения на горизонте прогноза.

FY = forecast(Mdl,25,Y,'A',fhA,'B',fhB,'C',fhC,'D',fhD);

FY является клеточным вектором 25 на 1. Ячейки с 1 по 20 содержат числовые векторы 2 на 1, а ячейки с 51 по 75 содержат скаляры. Ячейка j соответствует наблюдениям периода j, определяемым прогнозно-горизонтальной моделью наблюдений.

Постройте график прогнозов с результатами наблюдений в выборке.

d2 = cell2mat(FY(1:20));
FY1 = [d2(((1:20)*2)-1) d2((1:20)*2)]; % Forecasts for periods 76 - 95
FY2 = cell2mat(FY(21:25));             % Forecasts for periods 96 - 100

figure
plot(1:75,[y1;y2(:,1)],'-k',1:75,[nan(50,1);y2(:,2)],'-r',...
    76:100,[FY1(:,1); FY2],'.-k',76:100,[FY1(:,2); nan(5,1)],'.-r',...
    75:76,[y2(end,1) FY1(1,1)],':k',75:76,[y2(end,2) FY1(1,2)],':r',...
    'LineWidth',2')
title('In-sample and Forecasted Observations')
ylabel('Observations')
xlabel('Period')
xlim([50,100])
legend({'In-sample AR(2)','In-sample random walk',...
    'AR(2), forecasted observations',...
    'Random walk, forecasted observations'},'Location','Best')%% Title

Figure contains an axes. The axes with title In-sample and Forecasted Observations contains 6 objects of type line. These objects represent In-sample AR(2), In-sample random walk, AR(2), forecasted observations, Random walk, forecasted observations.

См. также

| | |

Связанные примеры

Подробнее