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

Этот пример показывает, как неявно создать рассеянную модель в пространстве состояний, которая содержит компонент регрессии в уравнении наблюдения. Модель состояния содержит ARMA (1,1) и случайный обход состояния.

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


% Copyright 2015 The MathWorks, Inc.

function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = diffuseRegressionParamMap(params,y,z)
% Diffuse state-space model with a regression component parameter mapping
% function example. This function maps the vector params to the state-space
% matrices (A, B, C, and D) and indicates the type of states (StateType).
% The state model contains an ARMA(1,1) model and a random walk.
    varu1 = exp(params(3)); % Positive variance constraint
    vare1 = exp(params(5));
    A = [params(1) params(2); 0 0];
    B = [sqrt(varu1) 0; 1 0]; 
    C = [varu1 0];
    D = sqrt(vare1);
    Mean0 = []; % Let software infer Mean0
    Cov0 = [];  % Let software infer Cov0
    StateType = [0 0 2];
    DeflateY = y - params(6)*z;
end

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

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

Mdl = dssm(@(params)diffuseRegressionParamMap(params,y,z));

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

Прежде, чем создать модель, гарантируйте, что переменные y и z существуют в вашей рабочей области.

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

Похожие темы