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

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

Предположим, что скрытый процесс включает AR (2) и модель MA (1). Существует 50 периодов и MA (1), процесс выпадает из модели в течение итоговых 25 периодов. Следовательно, уравнение состояния в течение первых 25 периодов

и в течение последних 25 периодов, это

где и являются Гауссовыми со средним значением 0 и стандартным отклонением 1.

Скрытые процессы измеряются с помощью

в течение первых 25 периодов, и

в течение последних 25 периодов, где является Гауссовым со средним значением 0 и стандартным отклонением 1.

Вместе, скрытые уравнения процесса и наблюдения составляют модель в пространстве состояний. Если коэффициенты являются неизвестными параметрами, модель в пространстве состояний

в течение первых 25 периодов,

в течение периода 26, и

в течение последних 24 периодов.

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


% Copyright 2015 The MathWorks, Inc.

function [A,B,C,D,Mean0,Cov0,StateType] = diffuseAR2MAParamMap(params,T)
%diffuseAR2MAParamMap Time-variant diffuse state-space model parameter
%mapping function
%
% This function maps the vector params to the state-space matrices (A, B,
% C, and D) and the type of state (StateType). From periods 1 to T/2, 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 T/2 + 1 to T, the state model is
% just the AR(2) model.  The AR(2) model is diffuse.
    A1 = {[params(1) params(2) 0 0; 1 0 0 0; 0 0 0 params(3); 0 0 0 0]};
    B1 = {[1 0; 0 0; 0 1; 0 1]}; 
    C1 = {params(4)*[1 0 1 0]};
    Mean0 = [];
    Cov0 = [];
    StateType = [2 2 0 0];
    A2 = {[params(1) params(2) 0 0; 1 0 0 0]};
    B2 = {[1; 0]};
    A3 = {[params(1) params(2); 1 0]};
    B3 = {[1; 0]}; 
    C3 = {params(5)*[1 0]};
    A = [repmat(A1,T/2,1);A2;repmat(A3,(T-2)/2,1)];
    B = [repmat(B1,T/2,1);B2;repmat(B3,(T-2)/2,1)];
    C = [repmat(C1,T/2,1);repmat(C3,T/2,1)];
    D = 1;
end

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

Создайте рассеянную модель в пространстве состояний путем передачи функционального diffuseAR2MAParamMap как указателя на функцию к dssm. Этот пример использует 50 наблюдений.

T = 50;
Mdl = dssm(@(params)diffuseAR2MAParamMap(params,T));

dssm неявно создает рассеянную модель в пространстве состояний. Обычно, вы не можете проверить рассеянные модели в пространстве состояний, которые неявно создаются.

dssm содержит неизвестные параметры. Можно моделировать данные и затем оценить параметры с помощью estimate.

Смотрите также

| |

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте