Этот пример показывает аппроксимацию модели пространства состояний, которая имеет регрессионый компонент наблюдений-уравнений.
Предположим, что интерес представляет линейная связь между изменением уровня безработицы и номинальным темпом роста валового национального продукта (ННП). Предположим далее, что первым различием уровня безработицы является серия ARMA (1,1). Символически, и в форме пространство состояний, модель является
где:
- изменение уровня безработицы в момент t.
является фиктивным состоянием для эффекта MA (1).
наблюдаемое изменение уровня безработицы отклоняется темпами роста nGNP ().
- Гауссов ряд нарушений порядка состояния, имеющих среднее 0 и стандартное отклонение 1.
- гауссов ряд инноваций наблюдений, имеющих среднее 0 и стандартное отклонение .
Загрузите набор данных Нельсона-Плоссера, который содержит, среди прочего, уровень безработицы и серию nGNP.
load Data_NelsonPlosser
Предварительно обработайте данные, взяв естественный логарифм серии nGNP и первое различие каждого. Также удалите стартовую NaN
значения из каждой серии.
isNaN = any(ismissing(DataTable),2); % Flag periods containing NaNs gnpn = DataTable.GNPN(~isNaN); u = DataTable.UR(~isNaN); T = size(gnpn,1); % Sample size Z = [ones(T-1,1) diff(log(gnpn))]; y = diff(u);
Этот пример переходит к использованию ряда без NaN
значения. Однако, используя среду фильтра Калмана, программное обеспечение может включать серии, содержащие отсутствующие значения.
Задайте матрицы коэффициентов. Использование NaN
значения для указания неизвестных параметров.
A = [NaN NaN; 0 0]; B = [1; 1]; C = [1 0]; D = NaN;
Задайте модель пространства состояний используя ssm
. С тех пор является процессом ARMA (1,1), и является белым шумом, укажите, что они являются стационарными процессами.
StateType = [0; 0];
Mdl = ssm(A,B,C,D,'StateType',StateType);
Оцените параметры модели. Задайте регрессионный компонент и его начальное значение для оптимизации с помощью 'Predictors'
и 'Beta0'
Аргументы пары "имя-значение", соответственно. Ограничьте оценку для всех положительных, вещественных чисел, но позволяют всем остальным параметрам быть неограниченными.
params0 = [0.3 0.2 0.1]; % Chosen arbitrarily EstMdl = estimate(Mdl,y,params0,'Predictors',Z,'Beta0',[0.1 0.1],... 'lb',[-Inf,-Inf,0,-Inf,-Inf]);
Method: Maximum likelihood (fmincon) Sample size: 61 Logarithmic likelihood: -99.7245 Akaike info criterion: 209.449 Bayesian info criterion: 220.003 | Coeff Std Err t Stat Prob ---------------------------------------------------------- c(1) | -0.34098 0.29608 -1.15164 0.24948 c(2) | 1.05003 0.41377 2.53771 0.01116 c(3) | 0.48592 0.36790 1.32079 0.18657 y <- z(1) | 1.36121 0.22338 6.09358 0 y <- z(2) | -24.46711 1.60018 -15.29024 0 | | Final State Std Dev t Stat Prob x(1) | 1.01264 0.44690 2.26592 0.02346 x(2) | 0.77718 0.58917 1.31912 0.18713
Таблица оценок и статистики, выводимых в Командное окно. EstMdl
является ssm
модель, и вы можете получить доступ к ее свойствам с помощью записи через точку.
estimate
| forecast
| simulate
| ssm