refine

Класс: dssm

Уточните начальные параметры, чтобы помочь в оценке модели рассеянного пространства состояний

Описание

пример

refine(Mdl,Y,params0) находит набор начальных значений параметров, которые будут использоваться при подборе модели пространства состояний Mdl к данным отклика Y, используя набор сырой нефти начальных значений параметров params0. Программа использует несколько стандартные программы и отображает полученную логарифмическую правдоподобность и начальные значения параметров для каждой стандартной программы.

пример

refine(Mdl,Y,params0,Name,Value) отображает результаты стандартных программ с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Для примера можно включать линейный регрессионый компонент, состоящий из предикторов и начального значения для коэффициентов.

пример

Output = refine(___) возвращает массив структур (Output), содержащий вектор уточненных, начальных значений параметров, логарифмическую правдоподобность, соответствующую начальным значениям параметров, и метод расчета, дающий значения. Можно использовать любой из входных параметров в предыдущих синтаксисах.

Входные параметры

расширить все

Диффузная модель пространства состояний, содержащая неизвестные параметры, заданная как dssm объект модели, возвращенный dssm.

  • Для явно созданных моделей пространства состояний программное обеспечение оценивает все NaN значения в матрицах коэффициентов (Mdl.A, Mdl.B, Mdl.C, и Mdl.D) и начальное состояние означает и ковариационная матрица (Mdl.Mean0 и Mdl.Cov0). Для получения дополнительной информации о явном и неявном создании модели смотрите dssm.

  • Для неявно созданных моделей пространства состояний вы задаете структуру модели и расположение неизвестных параметров, используя функцию отображения параметра в матрицу. Неявно создайте модель пространства состояний, чтобы оценить сложные модели, наложить параметр ограничения и оценить начальные состояния. Функция преобразования параметров может также включать дополнительные выходные аргументы.

Примечание

Mdl не хранит наблюдаемые отклики или данные предиктора. Предоставьте данные по мере необходимости, соответствующие входы и аргументы пары "имя-значение".

Наблюдаемые данные отклика на которые Mdl is fit, заданный как числовая матрица или вектор камеры из числовых векторов.

  • Если Mdl является инвариантным по времени относительно уравнения наблюдения, тогда Y является T -by - n матрицей. Каждая строка матрицы соответствует периоду, и каждый столбец соответствует конкретному наблюдению в модели. Поэтому T - размер выборки, а n - количество наблюдений за период. Последняя строка Y содержит последние наблюдения.

  • Если Mdl время изменяется относительно уравнения наблюдения, затем Y - вектор камеры T -by-1. Y{t} содержит nt -мерный вектор наблюдений для периода t, где t = 1,..., T. Соответствующие размерности матриц коэффициентов в Mdl.C{t} и Mdl.D{t} должна быть согласована с матрицей в Y{t} для всех периодов. Последняя камера Y содержит последние наблюдения.

Предположим, что вы создаете Mdl неявно путем определения функции отображения параметра в матрицу, и функция имеет входные параметры для наблюдаемых откликов или предикторов. Затем функция отображения устанавливает ссылку на наблюдаемые отклики и данные предиктора в MATLAB® рабочая область, которая переопределяет значение Y.

NaN элементы указывают на отсутствующие наблюдения. Для получения дополнительной информации о том, как фильтр Калмана принимает отсутствующие наблюдения, см. Алгоритмы.

Типы данных: double | cell

Начальные значения неизвестных параметров для числовой максимальной оценки правдоподобия, заданные как числовой вектор.

Элементы params0 соответствуют неизвестным параметрам в матрицах модели пространства состояний A, B, C, и D, и, опционально, начальное состояние означает Mean0 и ковариационная матрица Cov0.

  • Если вы создали Mdl явным образом (то есть путем задания матриц без функции отображения параметра в матрицу), затем программное обеспечение отображает элементы params на NaNs в матрицах модели пространства состояний и начальных значениях состояний. Программа ищет NaNs столбцово, следуя порядку A, B, C, D, Mean0, Cov0.

  • Если вы создали Mdl неявно (то есть путем задания матриц с функцией отображения параметра в матрицу), затем установите начальные значения параметров для матриц модели пространства состояний, начальных значений состояний и типов состояний в функции отображения параметра в матрицу.

Типы данных: double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Начальные значения коэффициентов регрессии, заданные как разделенная разделенными запятой парами, состоящая из 'Beta0' и a d -by n числовой матрицей. d - количество переменных предиктора (см Predictors) и n количество наблюдаемых серий отклика (см Y).

По умолчанию Beta0 - обычная оценка методом наименьших квадратов Y на Predictors.

Типы данных: double

Данные предиктора для компонента регрессии в уравнении наблюдения, заданные как разделенная разделенными запятой парами, состоящая из 'Predictors' и a T -by d числовой матрицей. T - количество периодов, а d - количество переменных. Строка t соответствует наблюдаемым предикторам в периоде t (Zt) в расширенном уравнении наблюдения

ytZtβ=Cxt+Dut.

Другими словами, ряд предикторов служит дефляторами наблюдений. β является d -by n инвариантной по времени матрицей коэффициентов регрессии, которые программное обеспечение оценивает со всеми другими параметрами.

  • Для n наблюдений за период программное обеспечение регрессирует все серии предикторов на каждое наблюдение.

  • Если вы задаете Predictors, затем Mdl должно быть инвариантным по времени. В противном случае программа возвращает ошибку.

  • По умолчанию программа исключает регрессионный компонент из модели пространства состояний.

Типы данных: double

Выходные аргументы

расширить все

Информация о начальных значениях параметров, возвращенная как массив структур 1 на 5. Программа использует пять алгоритмов, чтобы найти начальные значения параметров и каждый элемент Output соответствует алгоритму.

В этой таблице описываются поля Output.

ОбластьОписание
Description

Алгоритм уточнения.

Каждый элемент Output соответствует одному из следующих алгоритмов:

'Loose bound interior point'
'Nelder-Mead algorithm'
'Quasi-Newton'
'Starting value perturbation'
'Starting value shrinkage'

LoglikelihoodЛогарифмическая правдоподобность, соответствующая начальным значениям параметров.
ParametersВектор уточненных начальных значений параметров. Порядок параметров совпадает с порядком в params0. Если вы передаете эти начальные значения в estimate, тогда результаты оценки могут улучшиться.

Примеры

расширить все

Предположим, что скрытый процесс является случайной ходьбой. Следовательно, уравнение состояния

xt=xt-1+ut,

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

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

T = 100; 
rng(1); % For reproducibility 
u = randn(T,1);
x = cumsum([1.5;u]);
x = x(2:end);

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

yt=xt+εt,

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

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

y = x + randn(T,1);

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

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

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

A = NaN;
B = NaN;
C = 1;
D = NaN;

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

StateType = 2;
Mdl = dssm(A,B,C,D,'StateType',StateType);

Mdl является dssm объект модели. Программное обеспечение устанавливает значения для среднего начального состояния и отклонения равными 0 и Inf. Проверьте, что модель задана правильно, используя отображение в Командном окне.

Найдите хороший набор начальных параметров для оценки.

params0 = [1 1 1]; % Initial values chosen arbitrarily
Output = refine(Mdl,y,params0);

Output - массив структур 1 на 5, содержащий рекомендуемые начальные значения параметров.

Выберите начальные значения параметров, соответствующие наибольшей логарифмической правдоподобности

logL = cell2mat({Output.LogLikelihood})';
[~,maxLogLIndx] = max(logL)
maxLogLIndx = 3
refinedParams0 = Output(maxLogLIndx).Parameters
refinedParams0 = 1×3

    0.9781    0.8965    0.9336

Description = Output(maxLogLIndx).Description
Description = 
'Loose bound interior point'

Алгоритм, который приводит к наибольшему значению логарифмической правдоподобности Quasi-Newton, который является первым struct в массиве структур Output.

Оценка Mdl использование refinedParams0, который является вектором уточненных начальных значений параметров.

EstMdl = estimate(Mdl,y,refinedParams0,'lb',[-Inf,0,0]);
Method: Maximum likelihood (fmincon)
Effective Sample size:             99
Logarithmic  likelihood:     -179.018
Akaike   info criterion:      364.036
Bayesian info criterion:      371.851
      |     Coeff       Std Err   t Stat     Prob  
---------------------------------------------------
 c(1) |  0.97805       0.02947   33.18393   0      
 c(2) |  0.89651       0.18465    4.85529  0.00000 
 c(3) |  0.93355       0.15187    6.14707   0      
      |                                            
      |   Final State   Std Dev    t Stat    Prob  
 x(1) | -3.95108       0.72269   -5.46719   0      

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

Предположим, что связь между уровнем безработицы и номинальным валовым национальным продуктом (ННП) линейна. Предположим далее, что уровень безработицы является серией AR (1). Символически, и в форме пространство состояний, модель является

xt=ϕxt-1+σutyt-βZt=xt,

где:

  • xt - уровень безработицы в момент t.

  • yt - наблюдаемый уровень безработицы, дефлируемый журналом nGNP (Zt).

  • ut - Гауссов ряд нарушений порядка состояния, имеющих среднее 0 и неизвестное стандартное отклонение σ.

Загрузите набор данных Нельсона-Плоссера, который содержит данные о уровне безработицы и рядах nGNP.

load Data_NelsonPlosser

Предварительно обработайте данные, взяв первое различие уровня безработицы и преобразовав nGNP в серию возвратов. Удалите наблюдения, соответствующие последовательности NaN значения в начале ряда уровней безработицы.

isNaN = any(ismissing(DataTable),2);       % Flag periods containing NaNs
gnpn = DataTable.GNPN(~isNaN);
y = DataTable.UR(~isNaN);
y = diff(y);
T = size(y,1);
Z = [ones(T,1) price2ret(gnpn)];

Этот пример продолжает использовать серию без NaN значения. Однако, используя среду фильтра Калмана, программное обеспечение может включать серии, содержащие отсутствующие значения.

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

A = NaN;
B = NaN;
C = 1;

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

StateType = 2;
Mdl = dssm(A,B,C,'StateType',StateType);

Mdl является dssm объект модели.

Найдите хороший набор начальных параметров для оценки.

params0 = [150 1000]; % Initial values chosen arbitrarily
Beta0 = [1 -100];
Output = refine(Mdl,y,params0,'Predictors',Z,'Beta0',Beta0);

Output - массив структур 1 на 5, содержащий рекомендуемые начальные значения параметров.

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

logL = cell2mat({Output.LogLikelihood})';
[~,maxLogLIndx] = max(logL)
maxLogLIndx = 5
refinedParams0 = Output(maxLogLIndx).Parameters
refinedParams0 = 1×4

    0.2070   -1.3229    1.3610  -24.8848

Description = Output(maxLogLIndx).Description
Description = 
'Starting value shrinkage'

Алгоритм, который приводит к наибольшему значению логарифмической правдоподобности Nelder-Mead simplex, которая является вторым struct в массиве структур Output.

Оценка Mdl использование уточненных начальных значений параметров refinedParams0.

EstMdl = estimate(Mdl,y,refinedParams0(1:(end - 2)),'Predictors',Z,...
    'Beta0',refinedParams0((end - 1):end));
Method: Maximum likelihood (fminunc)
Effective Sample size:             60
Logarithmic  likelihood:     -101.924
Akaike   info criterion:      211.849
Bayesian info criterion:      220.292
           |      Coeff       Std Err    t Stat     Prob  
----------------------------------------------------------
 c(1)      |   0.20700       0.12330     1.67891  0.09317 
 c(2)      |  -1.32287       0.08415   -15.71964   0      
 y <- z(1) |   1.36101       0.23736     5.73388   0      
 y <- z(2) | -24.88484       1.78021   -13.97861   0      
           |                                              
           |    Final State   Std Dev     t Stat    Prob  
 x(1)      |   1.21611        0           Inf      0      

Совет

  • Поверхности вероятностей моделей пространства состояний могут быть сложными, например, они могут содержать несколько локальных максимумов. Если estimate не сходится или сходится к неудовлетворительному решению, затем refine может найти лучший набор начальных значений параметров, которые будут переданы в estimate.

  • Уточненные начальные значения параметров возвращаются refine могут показаться похожими друг на друга и на params0. Выберите набор дающих оценки, которые имеют экономический смысл и соответствуют относительно большим значениям логарифмической правдоподобности.

  • Если попытка уточнения прекращается, то программное обеспечение отображает ошибки и устанавливает соответствующую логарифмическую правдоподобность равной -Inf. Он также устанавливает свои начальные значения параметров [].

Алгоритмы

Фильтр Калмана принимает отсутствующие данные, не обновляя фильтрованные оценки состояния, соответствующие отсутствующим наблюдениям. Другими словами, предположим, что ваши данные имеют отсутствующее наблюдение в период t. Затем прогноз состояния для периода t, основанный на предыдущих наблюдениях t-1, эквивалентен отфильтрованному состоянию для периода t.

Введенный в R2015b