Симулируйте состояния и наблюдения инвариантной по времени модели пространства состояний

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

Предположим, что латентный процесс является моделью AR (1). Уравнение состояния

xt=0.5xt-1+ut,

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

Сгенерируйте случайную серию из 100 наблюдений xt, принимая, что серия начинается с 1,5.

T = 100;
ARMdl = arima('AR',0.5,'Constant',0,'Variance',1);
x0 = 1.5;
rng(1); % For reproducibility
x = simulate(ARMdl,T,'Y0',x0);

Предположим далее, что скрытый процесс подвержен аддитивной ошибке измерения. Уравнение наблюдения

yt=xt+εt,

где εt является Гауссовым со средним 0 и стандартным отклонением 0,75. Вместе латентный процесс и уравнения наблюдений составляют модель пространства состояний.

Используйте процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.

y = x + 0.75*randn(T,1);

Задайте четыре матрицы коэффициентов.

A = 0.5;
B = 1;
C = 1;
D = 0.75;

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

Mdl = ssm(A,B,C,D)
Mdl = 
State-space model type: ssm

State vector length: 1
Observation vector length: 1
State disturbance vector length: 1
Observation innovation vector length: 1
Sample size supported by model: Unlimited

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

State equation:
x1(t) = (0.50)x1(t-1) + u1(t)

Observation equation:
y1(t) = x1(t) + (0.75)e1(t)

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1   
 x1  1.33 

State types
     x1     
 Stationary 

Mdl является ssm модель. Проверьте, что модель правильно задана, используя отображение в Командном окне. Программное обеспечение делает вывод, что процесс состояния является стационарным. Впоследствии программное обеспечение устанавливает среднее значение начального состояния и ковариацию в среднее значение и отклонение стационарного распределения модели AR (1).

Симулируйте по одному пути каждое из состояний и наблюдений. Задайте, что пути охватывают 100 периодов.

[simY,simX] = simulate(Mdl,100);

simY является вектором 100 на 1 симулированных откликах. simX является вектором 100 на 1 моделируемых состояний.

Постройте график значений истинного состояния с моделируемыми состояниями. Кроме того, постройте график наблюдаемых реакций с симулированными откликами.

figure
subplot(2,1,1)
plot(1:T,x,'-k',1:T,simX,':r','LineWidth',2)
title({'True State Values and Simulated States'})
xlabel('Period')
ylabel('State')
legend({'True state values','Simulated state values'})
subplot(2,1,2)
plot(1:T,y,'-k',1:T,simY,':r','LineWidth',2)
title({'Observed Responses and Simulated responses'})
xlabel('Period')
ylabel('Response')
legend({'Observed responses','Simulated responses'})

Figure contains 2 axes. Axes 1 with title True State Values and Simulated States contains 2 objects of type line. These objects represent True state values, Simulated state values. Axes 2 with title Observed Responses and Simulated responses contains 2 objects of type line. These objects represent Observed responses, Simulated responses.

По умолчанию simulate моделирует один путь для каждого состояния и наблюдения в модели пространства состояний. Чтобы провести исследование Монте-Карло, задайте, чтобы симулировать большое количество путей.

См. также

|

Похожие темы

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