В этом примере показано, как создать данные из известной модели, указать модель пространства состояний, содержащую неизвестные параметры, соответствующие процессу генерации данных, а затем подогнать модель пространства состояний к данным.
Предположим, что скрытый процесс - это процесс AR (1)
+ ut,
где - гауссов со средним значением 0 и стандартным отклонением 1.
Создайте случайную серию из 100 наблюдений из , предполагая, что серия начинается с 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);
Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения, как указано в уравнении.
αt,
где - гауссов со средним значением 0 и стандартным отклонением 0,1.
Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.
y = x + 0.1*randn(T,1);
В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства. Предполагая, что коэффициенты и дисперсии являются неизвестными параметрами, модель state-space является
Укажите матрицу коэффициентов перехода состояния. Использовать NaN значения для неизвестных параметров.
A = NaN;
Укажите матрицу коэффициентов нарушения состояния и нагрузки.
B = NaN;
Укажите матрицу коэффициентов чувствительности к измерениям.
C = 1;
Определение матрицы коэффициентов наблюдения и инноваций
D = NaN;
Укажите модель state-space с помощью матриц коэффициентов. Кроме того, укажите среднее начальное состояние, дисперсию и распределение (которое является стационарным).
Mean0 = 0; Cov0 = 10; StateType = 0; Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType);
Mdl является ssm модель. Убедитесь, что модель правильно задана с помощью отображения в окне команд.
Передайте наблюдения для оценки параметра. Задайте начальное значение параметра как params0. и должны быть положительными, поэтому установите ограничения нижней границы, используя 'lb' аргумент пары имя-значение. Укажите, что нижняя граница -Inf.
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.28611 0.02225
c(2) | 0.89013 0.30359 2.93205 0.00337
c(3) | 0.38750 0.57858 0.66975 0.50302
|
| Final State Std Dev t Stat Prob
x(1) | 1.52989 0.35621 4.29498 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 провести исследование Монте-Карло.
estimate | forecast | simulate | ssm