Неявно создайте изменяющуюся во времени модель пространства состояний

Этот пример показывает, как создать изменяющуюся во времени модель пространства состояний путем передачи функции отображения параметров, описывающей модель, в ssm (т.е. неявно создать модель пространства состояний).

Предположим, что из периодов с 1 по 10 модель состояния являются стационарными моделями AR (2) и MA (1), соответственно, и модель наблюдения является суммой двух состояний. Из периодов с 11 по 20 модель состояния включает только первую модель AR (2).

Символически модели следующие:

$$\begin{array}{c}
\left[ {\begin{array}{*{20}{c}}
{{x_{1t}}}\\
{{x_{2t}}}\\
{{x_{3t}}}\\
{{x_{4t}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{\phi _1}}&{{\phi _2}}&0&0\\
1&0&0&0\\
0&0&0&\theta \\
0&0&0&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_{1,t - 1}}}\\
{{x_{2,t - 1}}}\\
{{x_{3,t - 1}}}\\
{{x_{4,t - 1}}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{\sigma _1}}&0\\
0&0\\
0&1\\
0&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{u_{1t}}}\\
{{u_{2t}}}
\end{array}} \right]\\
{y_t} = {a_1}\left( {{x_{1t}} + {x_{3t}}} \right) + {\sigma _2}{\varepsilon _t}.
\end{array}{\rm for\;}t = 1,...,10,$$

$$\begin{array}{c}
\left[ {\begin{array}{*{20}{c}}
{{x_{1t}}}\\
{{x_{2t}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{\phi _1}}&{{\phi _2}}&0&0\\
1&0&0&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_{1,t - 1}}}\\
{{x_{2,t - 1}}}\\
{{x_{3,t - 1}}}\\
{{x_{4,t - 1}}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{\sigma _1}}\\
0
\end{array}} \right]{u_{1t}}\\
{y_t} = {a_2}{x_{1t}} + {\sigma _3}{\varepsilon _t}.
\end{array}{\rm for\;}t = 11,$$

$$\begin{array}{c}
\left[ {\begin{array}{*{20}{c}}
{{x_{1t}}}\\
{{x_{2t}}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{\phi _1}}&{{\phi _2}}\\
1&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{x_{1,t - 1}}}\\
{{x_{2,t - 1}}}
\end{array}} \right] + \left[ {\begin{array}{*{20}{c}}
{{\sigma _1}}\\
0
\end{array}} \right]{u_{1t}}\\
{y_t} = {a_2}{x_{1t}} + {\sigma _3}{\varepsilon _t}.
\end{array}{\rm for\;}t = 12,...,20.$$

Написание функции, которая задает, как параметры в params сопоставить с матрицами модели пространства состояний, начальными значениями состояний и типом состояния.


% Copyright 2015 The MathWorks, Inc.

function [A,B,C,D,Mean0,Cov0,StateType] = timeVariantParamMap(params)
% Time-variant state-space model parameter mapping function example. This
% function maps the vector params to the state-space matrices (A, B, C, and
% D), the initial state value and the initial state variance (Mean0 and
% Cov0), and the type of state (StateType). From periods 1 through 10, the
% state model is an AR(2) and an MA(1) model, and the observation model is
% the sum of the two states. From periods 11 through 20, the state model is
% just the AR(2) model.
    varu11 = exp(params(3));  % Positive variance constraints
    vare11 = exp(params(6));
    vare12 = exp(params(8));
    A1 = {[params(1) params(2) 0 0; 1 0 0 0; 0 0 0 params(4); 0 0 0 0]};
    B1 = {[sqrt(varu11) 0; 0 0; 0 1; 0 1]}; 
    C1 = {params(5)*[1 0 1 0]};
    D1 = {sqrt(vare11)};
    Mean0 = [0.5 0.5 0 0];
    Cov0 = eye(4);
    StateType = [0 0 0 0];
    A2 = {[params(1) params(2) 0 0; 1 0 0 0]};
    B2 = {[sqrt(varu11); 0]};
    A3 = {[params(1) params(2); 1 0]};
    B3 = {[sqrt(varu11); 0]}; 
    C3 = {params(7)*[1 0]};
    D3 = {sqrt(vare12)};
    A = [repmat(A1,10,1);A2;repmat(A3,9,1)];
    B = [repmat(B1,10,1);B2;repmat(B3,9,1)];
    C = [repmat(C1,10,1);repmat(C3,10,1)];
    D = [repmat(D1,10,1);repmat(D3,10,1)];
end

Сохраните этот код как файл с именем timeVariantParamMap.m на пути MATLAB ®.

Создайте модель пространства состояний путем передачи функции timeVariantParamMap как указатель на функцию, чтобы ssm.

Mdl = ssm(@timeVariantParamMap);

ssm неявно создает модель пространства состояний. Обычно вы не можете проверить неявно созданные модели пространства состояний.

Mdl является ssm объект модели, содержащий неизвестные параметры. Можно оценить неизвестные параметры путем передачи Mdl и данные отклика на estimate.

См. также

| |

Похожие примеры

Подробнее о