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

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

Предположим, что скрытый процесс является этим 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.1.

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

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

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

xt=ϕxt-1+σ1utyt=xt+σ2εt.

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

A = NaN;

Задайте матрицу коэффициентов загрузки воздействия состояния.

B = NaN;

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

C = 1;

Задайте матрицу коэффициентов инноваций наблюдения

D = NaN;

Задайте модель в пространстве состояний с помощью содействующих матриц. Кроме того, задайте среднее значение начального состояния, отклонение и распределение (который является стационарным).

Mean0 = 0;
Cov0 = 10;
StateType = 0;
Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType);

Mdl является моделью ssm. Проверьте, что модель правильно задана с помощью отображения в Командном окне.

Передайте наблюдения, чтобы оценить, чтобы оценить параметр. Установите начальное значение для параметра к params0. σ1 и σ2 должно быть положительным, таким образом, устанавливает ограничения нижней границы с помощью аргумента пары "имя-значение" 'lb'. Укажите что нижняя граница ϕ isinf.

params0 = [0.9; 0.5; 0.1];
EstMdl = estimate(Mdl,y,params0,'lb',[-Inf; 0; 0])
Method: Maximum likelihood (fmincon)
Sample size: 100
Logarithmic  likelihood:     -140.532
Akaike   info criterion:      287.064
Bayesian info criterion:      294.879
      |     Coeff      Std Err   t Stat    Prob  
-------------------------------------------------
 c(1) | 0.45425       0.19870   2.28612  0.02225 
 c(2) | 0.89013       0.30359   2.93205  0.00337 
 c(3) | 0.38751       0.57857   0.66976  0.50301 
      |                                          
      |  Final State   Std Dev   t Stat    Prob  
 x(1) | 1.52989       0.35621   4.29496  0.00002 
EstMdl = 
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.45)x1(t-1) + (0.89)u1(t)

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1 
 x1  10 

State types
     x1     
 Stationary 

EstMdl является моделью ssm. Результаты оценки появляются в Командном окне, содержат подходящие уравнения пространства состояний и содержат таблицу оценок параметра, их стандартных погрешностей, t статистика и p-значения.

Можно использовать или отобразиться, например, подходящая матрица Грина с помощью записи через точку.

EstMdl.A
ans = 0.4543

Передайте EstMdl forecast, чтобы предсказать наблюдения, или simulate, чтобы провести исследование Монте-Карло.

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

| | |

Похожие темы