exponenta event banner

очиститься

Класс: dssm

Уточнение исходных параметров для облегчения оценки модели диффузного состояния и пространства

Описание

пример

refine(Mdl,Y,params0) находит набор начальных значений параметров для использования при подборе модели state-space 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 аппроксимируется, задается как числовая матрица или вектор ячейки числовых векторов.

  • Если 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 соответствуют неизвестным параметрам в матрицах модели state-space A, B, C, и Dи, необязательно, начальное состояние означает Mean0 и ковариационная матрица Cov0.

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

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

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

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

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

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

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

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

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

yt Ztβ = Cxt + Dut.

Другими словами, серии предикторов служат дефляторами наблюдений. β - d-на-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      

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

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

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, которая является второй структурой в массиве структуры 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