exponenta event banner

оценка

Класс: dssm

Оценка параметров максимального правдоподобия диффузных моделей состояния-пространства

Описание

пример

EstMdl = estimate(Mdl,Y,params0) возвращает оценочную модель диффузного состояния-пространства из фитинга dssm модель Mdl к данным ответа Y. params0 - вектор начальных значений для неизвестных параметров в Mdl.

пример

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

пример

[EstMdl,estParams,EstParamCov,logL,Output] = estimate(___) дополнительно возвращает эти аргументы, используя любой из входных аргументов в предыдущих синтаксисах.

  • estParams, вектор, содержащий оцененные параметры

  • EstParamCov, матрица оцененная дисперсия-ковариация оцененных параметров

  • logL, оптимизированная стоимость средств к существованию

  • 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.

Пример: 'CovMethod','hessian','Display','diagnostics','Predictors',Z определяет оценку ковариации асимптотического параметра с использованием отрицательной, перевернутой матрицы Гессена, отображение диагностики оптимизации в командном окне и дефляцию наблюдений с помощью линейной регрессии, содержащей данные предиктора Z.
Варианты оценки

развернуть все

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

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

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

Метод оценки асимптотической ковариации, определяемый как пара, разделенная запятыми, состоящая из 'CovMethod' и значение в этой таблице.

СтоимостьОписание
'hessian'Отрицательная, перевернутая гессенская матрица
'opg'Внешнее произведение градиентов (OPG)
'sandwich'Как гессенский, так и OPG

Пример: 'CovMethod','sandwich'

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

Опция отображения «Командное окно», заданная как разделенная запятыми пара, состоящая из 'Display' и одно или несколько значений в этой таблице.

СтоимостьОтображаемая информация
'diagnostics'Оптимизация диагностики
'full'Оценки параметров максимального правдоподобия, стандартные ошибки, статистика t, информация итеративной оптимизации и диагностика оптимизации
'iter'Итеративная информация об оптимизации
'off'Ничего
'params'Оценки параметров максимального правдоподобия, стандартные ошибки и статистика t

Пример: 'Display','off' хорошо подходит для выполнения моделирования, которое оценивает многие модели.

Пример: 'Display',{'params','diagnostics'} отображает все результаты оценки и диагностику оптимизации.

Типы данных: char | cell | string

Опции оптимизации, указанные как пара, разделенная запятыми, состоящая из 'Options' и optimoptions контроллер оптимизации. Options заменяет параметры оптимизации оптимизатора по умолчанию. Для получения подробной информации об изменении значений по умолчанию оптимизатора см. контроллер оптимизации. optimoptions, ограниченная функция оптимизации fmincon, или неограниченная функция оптимизации fminunc в Toolbox™ оптимизации.

Например, чтобы изменить допуск ограничения на 1e-6, комплект Options = optimoptions(@fmincon,'ConstraintTolerance',1e-6,'Algorithm','sqp'). Затем, пройти Options в estimate использование 'Options',Options.

По умолчанию:

  • Для оптимизации с ограничениями estimate максимизирует целевую функцию правдоподобия с помощью fmincon и его параметры по умолчанию, но наборы 'Algorithm','interior-point'.

  • Для неограниченной оптимизации, estimate максимизирует целевую функцию правдоподобия с помощью fminunc и его параметры по умолчанию, но наборы 'Algorithm','quasi-newton'.

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

yt Ztβ = Cxt + Dut.

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

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

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

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

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

Конечный период для инициализации диффузного состояния, указанный как пара, разделенная запятыми, состоящая из 'SwitchTime' и положительное целое число. То есть estimate использует наблюдения от периода 1 к периоду SwitchTime в качестве примера реализации точного начального фильтра Калмана (см. Диффузный фильтр Калмана и [1]). После инициализации диффузных состояний estimate применяет стандартный фильтр Калмана к наблюдениям из периодов SwitchTime от + 1 до T.

Значение по умолчанию для SwitchTime - последний период, в котором оцененная матрица точности сглаженного состояния является сингулярной (т.е. обратной матрице ковариации). Эта спецификация представляет наименьшее число наблюдений, необходимых для инициализации диффузных состояний. Поэтому рекомендуется использовать значение по умолчанию.

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

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

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

Порог неопределенности прогноза, указанный как пара, разделенная запятыми, состоящая из 'Tolerance' и неотрицательный скаляр.

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

Рекомендуется устанавливать Tolerance в малое число, например, le-15, для преодоления численных препятствий при оценке.

Пример: 'Tolerance',le-15

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

Одномерная обработка флага многомерного ряда, определяемого как пара, разделенная запятыми, состоящая из 'Univariate' и true или false. Одномерная обработка многомерного ряда также известна как последовательная фильтрация.

Одномерное лечение может ускорить и улучшить численную стабильность фильтра Калмана. Однако все нововведения в области наблюдения должны быть некоррелированы. То есть DtDt 'должен быть диагональным, где Dt, t = 1,...,T, является одним из следующих:

  • Матрица D{t} в изменяющейся во времени модели состояния-пространства

  • Матрица D в инвариантной по времени модели «состояние-пространство»

Пример: 'Univariate',true

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

Опции оптимизации с ограничениями для fmincon

развернуть все

Преобразователь параметра ограничения линейного равенства для максимизации целевой функции с ограниченным правдоподобием, указанный как пара, разделенная запятыми, состоящая из 'Aeq' и матрица.

При указании Aeq и beq, то estimate максимизирует функцию цели вероятности, используя ограничение равенства Aeqθ = beq, где θ - вектор, содержащий каждый Mdl параметр.

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

Определить Aeq и beq вместе, в противном случае estimate возвращает ошибку.

Aeq непосредственно соответствует входному аргументу Aeq из fmincon, не к матрице коэффициентов перехода к состоянию Mdl.A.

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

Преобразователь параметра ограничения линейного неравенства для максимизации объективной функции ограниченного правдоподобия, указанный как пара, разделенная запятыми, состоящая из 'Aineq' и матрица.

При указании Aineq и bineq, то estimate максимизирует целевую функцию правдоподобия, используя ограничение неравенства Aineqθ≤bineq, где Mdl параметр.

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

Определить Aineq и bineq вместе, в противном случае estimate возвращает ошибку.

Aineq непосредственно соответствует входному аргументу A из fmincon, не к матрице коэффициентов перехода к состоянию Mdl.A.

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

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

Линейные ограничения равенства преобразованных параметров для ограничения максимизации целевой функции правдоподобия, определяемой как пара, разделенная запятыми, состоящая из 'beq' и числовой вектор.

При указании Aeq и beq, то estimate максимизирует функцию цели вероятности, используя ограничение равенства Aeqθ = beq, где θ - вектор, содержащий каждый Mdl параметр..

Определить Aeq и beq вместе, в противном случае estimate возвращает ошибку.

beq непосредственно соответствует входному аргументу beq из fmincon, и не связан ни с одним компонентом Mdl.

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

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

Ограничение линейного неравенства верхних границ преобразованных параметров для максимизации объективной функции ограниченного правдоподобия, определяемое как пара, разделенная запятыми, состоящая из 'bineq' и числовой вектор.

При указании Aineq и bineq, то estimate максимизирует целевую функцию правдоподобия, используя ограничение неравенства Aineqθ≤bineq, где Mdl параметр.

Определить Aineq и bineq вместе, в противном случае estimate возвращает ошибку.

bineq непосредственно соответствует входному аргументу b из fmincon, и не связан ни с одним компонентом Mdl.

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

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

Нижние границы параметров для максимизации целевой функции ограниченного правдоподобия, указанной как пара, разделенная запятыми, состоящая из 'lb' и числовой вектор.

При указании lb и ub, то estimate максимизирует объективную функцию правдоподобия, подлежащую tolb≤θ≤ub, где Mdl параметр.

Упорядочить элементы lb около Mdl.A, Mdl.B, Mdl.C, Mdl.D, Mdl.Mean0, Mdl.Cov0и коэффициент регрессии (если модель имеет единицу).

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

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

Верхние границы параметров для максимизации целевой функции ограниченного правдоподобия, указанной как пара, разделенная запятыми, состоящая из 'ub' и числовой вектор.

При указании lb и ub, то estimate максимизирует объективную функцию правдоподобия, подлежащую tolb≤θ≤ub, где Mdl параметр.

Упорядочить элементы ub около Mdl.A, Mdl.B, Mdl.C, Mdl.D, Mdl.Mean0, Mdl.Cov0и коэффициент регрессии (если модель имеет единицу).

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

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

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

развернуть все

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

estimate использует диффузный фильтр Калмана и максимальную вероятность для вычисления всех оценок параметров.

Независимо от способа создания Mdl, EstMdl хранилища:

  • Оценки параметров матриц коэффициентов в свойствах A, B, C, и D.

  • Начальное состояние означает и ковариационная матрица в свойствах Mean0 и Cov0.

Примечание

EstMdl не хранит наблюдаемые ответы или данные предиктора. Если планируется фильтрация (с помощью filter), прогноз (с использованием forecast) или гладкой (с использованием smooth) с использованием EstMdl, то нужно предоставить соответствующие данные.

Оценки максимального правдоподобия параметров модели, известных оптимизатору, возвращаемые в виде числового вектора. estParams имеет те же размеры, что и params0.

estimate упорядочивает оценки в estParams соответствует неизвестным параметрам в этом порядке.

  1. EstMdl.A(:), то есть оценки в EstMdl.A список по столбцам

  2. EstMdl.B(:)

  3. EstMdl.C(:)

  4. EstMdl.D(:)

  5. EstMdl.Mean0

  6. EstMdl.Cov0(:)

  7. В моделях с предикторами оценочные коэффициенты регрессии перечислены по столбцам

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

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

estimate упорядочивает оценки в строках и столбцах EstParamCov соответствует неизвестным параметрам в этом порядке.

  1. EstMdl.A(:), то есть оценки в EstMdl.A список по столбцам

  2. EstMdl.B(:)

  3. EstMdl.C(:)

  4. EstMdl.D(:)

  5. EstMdl.Mean0

  6. EstMdl.Cov0(:)

  7. В моделях с предикторами оценочные коэффициенты регрессии перечислены по столбцам

Оптимизированное значение логарифма, возвращаемое как скаляр.

Отсутствующие наблюдения не влияют на средства к существованию. Наблюдения после первого SwitchTime периоды способствуют только обеспечению средств к существованию.

Сведения об оптимизации, возвращаемые в виде массива структуры.

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

ОбластьОписание
ExitFlagФлаг выхода оптимизации, описывающий условие выхода. Для получения более подробной информации см. fmincon и fminunc.
OptionsПараметры оптимизации, используемые оптимизатором для численной оценки. Для получения более подробной информации см. optimoptions.

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

Примеры

развернуть все

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

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

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

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

Укажите матрицу состояния-перехода. Использовать NaN значения для неизвестных параметров.

A = NaN;

Укажите матрицу коэффициентов нарушения состояния и нагрузки.

B = NaN;

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

C = 1;

Определение матрицы коэффициентов наблюдения и инноваций

D = NaN;

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

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

Mdl является dssm модель. Убедитесь, что модель правильно задана, просмотрев ее отображение в окне команд.

Передайте наблюдения в estimate для оценки параметра. Задайте начальное значение параметра как params0. start1 и start2 должны быть положительными, поэтому установите ограничения нижней границы, используя 'lb' аргумент пары имя-значение. Укажите, что нижняя граница -Inf.

params0 = [0.9; 0.5; 0.1];
EstMdl = estimate(Mdl,y,params0,'lb',[-Inf; 0; 0])
Method: Maximum likelihood (fmincon)
Effective Sample size:             99
Logarithmic  likelihood:     -138.968
Akaike   info criterion:      283.936
Bayesian info criterion:      291.752
      |     Coeff      Std Err   t Stat    Prob  
-------------------------------------------------
 c(1) | 0.56114       0.18045   3.10975  0.00187 
 c(2) | 0.75836       0.24569   3.08661  0.00202 
 c(3) | 0.57129       0.27455   2.08086  0.03745 
      |                                          
      |  Final State   Std Dev   t Stat    Prob  
 x(1) | 1.24096       0.46532   2.66690  0.00766 
EstMdl = 
State-space model type: dssm

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.56)x1(t-1) + (0.76)u1(t)

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1  
 x1  Inf 

State types
    x1   
 Diffuse 

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

Используйте точечную нотацию, чтобы использовать или отображать подгоняемую матрицу состояния-перехода.

EstMdl.A
ans = 0.5611

Проход EstMdl кому forecast для прогнозирования наблюдений или simulate провести исследование Монте-Карло.

Предположим, что интерес представляет линейная зависимость между уровнем безработицы и номинальным валовым национальным продуктом (нВНП). Предположим далее, что уровень безработицы является серией 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 = diff(DataTable.UR(~isNaN));
T = size(gnpn,1);                          % The sample size
Z = price2ret(gnpn);

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

Укажите матрицы коэффициентов.

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

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

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

Оцените параметры. Укажите компонент регрессии и его начальное значение для оптимизации с помощью 'Predictors' и 'Beta0' аргументы пары имя-значение соответственно. Просмотрите оценки и всю диагностическую информацию по оптимизации. Ограничьте оценку λ всеми положительными, вещественными числами.

params0 = [0.3 0.2]; % Initial values chosen arbitrarily
Beta0 = 0.1;
EstMdl = estimate(Mdl,y,params0,'Predictors',Z,'Display','full',...
    'Beta0',Beta0,'lb',[-Inf 0 -Inf]);
____________________________________________________________
   Diagnostic Information

Number of variables: 3

Functions 
Objective:                            @(c)-fML(c,Mdl,Y,Predictors,unitFlag,sqrtFlag,mexFlag,mexTvFlag,tol,ind,switchTime,precaution)
Gradient:                             finite-differencing
Hessian:                              finite-differencing (or Quasi-Newton)

Constraints
Nonlinear constraints:                do not exist
 
Number of linear inequality constraints:    0
Number of linear equality constraints:      0
Number of lower bound constraints:          1
Number of upper bound constraints:          0

Algorithm selected
   interior-point


____________________________________________________________
   End diagnostic information
                                            First-order      Norm of
 Iter F-count            f(x)  Feasibility   optimality         step
    0       4    5.084683e+03    0.000e+00    5.096e+04
    1       8    6.405732e+02    0.000e+00    7.720e-02    1.457e+04
    2      12    6.405620e+02    0.000e+00    7.713e-02    1.058e-01
    3      16    6.405063e+02    0.000e+00    7.683e-02    5.285e-01
    4      20    6.402322e+02    0.000e+00    7.531e-02    2.632e+00
    5      24    6.389682e+02    0.000e+00    6.816e-02    1.289e+01
    6      28    6.346900e+02    0.000e+00    4.146e-02    5.821e+01
    7      32    6.314789e+02    0.000e+00    1.601e-02    8.771e+01
    8      36    6.307024e+02    0.000e+00    7.462e-03    5.266e+01
    9      40    6.304200e+02    0.000e+00    4.104e-03    4.351e+01
   10      44    6.303324e+02    0.000e+00    4.116e-03    3.167e+01
   11      48    6.303036e+02    0.000e+00    4.120e-03    2.418e+01
   12      52    6.302943e+02    0.000e+00    4.121e-03    1.813e+01
   13      56    6.302913e+02    0.000e+00    4.121e-03    1.377e+01
   14      60    6.302903e+02    0.000e+00    4.121e-03    1.054e+01
   15      64    6.302899e+02    0.000e+00    4.121e-03    8.514e+00
   16      68    6.302897e+02    0.000e+00    4.121e-03    6.414e+00
   17      72    6.302895e+02    0.000e+00    4.121e-03    1.473e+01
   18      77    6.302888e+02    0.000e+00    4.121e-03    3.693e+01
   19      82    6.302888e+02    0.000e+00    4.121e-03    9.659e+00
   20      86    6.302888e+02    0.000e+00    4.121e-03    3.747e+00
   21      90    6.302888e+02    0.000e+00    4.121e-03    1.636e+00
   22      94    6.302888e+02    0.000e+00    4.121e-03    7.311e-01
   23      98    6.302887e+02    0.000e+00    4.121e-03    2.570e+00
   24     102    6.302884e+02    0.000e+00    4.121e-03    5.536e+00
   25     106    6.302879e+02    0.000e+00    4.121e-03    4.704e+00
   26     110    6.302850e+02    0.000e+00    4.121e-03    1.319e+01
   27     114    6.302775e+02    0.000e+00    4.122e-03    1.043e+01
   28     118    6.302263e+02    0.000e+00    4.123e-03    3.985e+01
   29     122    6.300733e+02    0.000e+00    4.130e-03    5.389e+01
   30     126    6.285455e+02    0.000e+00    1.027e-02    4.891e+02

                                            First-order      Norm of
 Iter F-count            f(x)  Feasibility   optimality         step
   31     130    6.221921e+02    0.000e+00    8.010e-02    3.036e+03
   32     134    5.783191e+02    0.000e+00    3.672e-01    6.748e+03
   33     139    5.469912e+02    0.000e+00    8.592e-01    2.099e+03
   34     144    5.289896e+02    0.000e+00    2.206e+00    1.055e+03
   35     149    5.212317e+02    0.000e+00    5.408e+00    5.302e+02
   36     154    4.762810e+02    0.000e+00    1.009e+01    2.670e+02
   37     159    3.950959e+02    0.000e+00    1.412e+01    1.344e+02
   38     164    3.123782e+02    0.000e+00    4.446e+00    6.761e+01
   39     170    3.031269e+02    0.000e+00    1.426e+01    1.699e+01
   40     175    2.752681e+02    0.000e+00    2.376e+01    2.539e+01
   41     181    2.693457e+02    0.000e+00    3.818e+00    6.388e+00
   42     188    2.692219e+02    0.000e+00    9.327e+00    2.585e+00
   43     193    2.691856e+02    0.000e+00    2.360e+00    1.401e+00
   44     197    2.684493e+02    0.000e+00    1.064e+00    2.720e+00
   45     201    2.682262e+02    0.000e+00    1.040e+00    9.688e-01
   46     205    2.666842e+02    0.000e+00    9.162e+00    7.987e+00
   47     209    2.619443e+02    0.000e+00    2.550e+01    2.709e+01
   48     213    2.109143e+02    0.000e+00    4.111e+01    1.310e+02
   49     218    1.491443e+02    0.000e+00    1.686e+01    4.840e+01
   50     224    1.419609e+02    0.000e+00    2.894e+01    1.114e+01
   51     230    1.404849e+02    0.000e+00    4.590e+01    2.384e+00
   52     234    1.390759e+02    0.000e+00    3.303e+01    7.990e+00
   53     238    1.336615e+02    0.000e+00    2.421e+01    4.426e+00
   54     242    1.265960e+02    0.000e+00    2.718e+01    3.314e+00
   55     247    1.222370e+02    0.000e+00    5.928e+01    5.867e+00
   56     251    1.130348e+02    0.000e+00    9.454e+00    1.853e+00
   57     255    1.109453e+02    0.000e+00    4.978e+00    1.710e+00
   58     259    1.106272e+02    0.000e+00    3.155e+00    4.086e-01
   59     263    1.104927e+02    0.000e+00    1.494e+00    2.692e-01
   60     267    1.104775e+02    0.000e+00    1.889e-01    6.233e-02

                                            First-order      Norm of
 Iter F-count            f(x)  Feasibility   optimality         step
   61     271    1.104772e+02    0.000e+00    5.404e-02    3.187e-02
   62     275    1.104771e+02    0.000e+00    1.616e-02    8.914e-03
   63     279    1.104771e+02    0.000e+00    2.622e-03    6.138e-03
   64     283    1.104771e+02    0.000e+00    6.555e-04    4.428e-04
   65     287    1.104771e+02    0.000e+00    1.311e-04    1.071e-05
   66     291    1.104771e+02    0.000e+00    1.311e-06    2.817e-06
   67     295    1.104771e+02    0.000e+00    9.537e-07    1.194e-07

Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.


Method: Maximum likelihood (fmincon)
Effective Sample size:             60
Logarithmic  likelihood:     -110.477
Akaike   info criterion:      226.954
Bayesian info criterion:      233.287
           |      Coeff       Std Err    t Stat    Prob 
--------------------------------------------------------
 c(1)      |   0.59436       0.09408     6.31738  0     
 c(2)      |   1.52554       0.10758    14.17991  0     
 y <- z(1) | -24.26161       1.55730   -15.57930  0     
           |                                            
           |    Final State   Std Dev     t Stat   Prob 
 x(1)      |   2.54764        0           Inf     0     

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

Для моделей диффузного состояния и пространства программа реализует диффузный фильтр Калмана до тех пор, пока он не удовлетворит условию регулярности. Для выполнения этого условия программное обеспечение требует достаточного количества данных предварительного отбора. После того, как программное обеспечение удовлетворяет условию, оно переключается на использование стандартного фильтра Калмана. По умолчанию программа определяет, сколько данных предварительного отбора требуется, и использует столько, сколько требуется. Однако можно поэкспериментировать, указав другие значения для SwitchTime аргумент пары имя-значение.

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

Загрузите набор данных Нельсона-Плоссера.

load Data_NelsonPlosser

isNaN = any(ismissing(DataTable),2);
gnpn = DataTable.GNPN(~isNaN);
y = DataTable.UR(~isNaN);
T = size(gnpn,1);                          
Z = log(gnpn);

Укажите матрицы коэффициентов.

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

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

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

Оцените параметры несколько раз. Для каждого времени измените период для перехода на стандартный фильтр Калмана.

params0 = [0.3 0.2]; % Initial values chosen arbitrarily
Beta0 = 0.1;

[~,estParams1] = estimate(Mdl,y,params0,'Predictors',Z,'Display','off',...
    'Beta0',Beta0,'lb',[-Inf 0 -Inf],'SwitchTime',1);
[~,estParams5] = estimate(Mdl,y,params0,'Predictors',Z,'Display','off',...
    'Beta0',Beta0,'lb',[-Inf 0 -Inf],'SwitchTime',5);
[~,estParams10] = estimate(Mdl,y,params0,'Predictors',Z,'Display','off',...
    'Beta0',Beta0,'lb',[-Inf 0 -Inf],'SwitchTime',10);

Сравните оценки параметров.

estParams1
estParams1 = 1×3

    1.0101    1.3574  -24.4585

estParams5
estParams5 = 1×3

    1.0102    1.3832  -24.4852

estParams10
estParams10 = 1×3

    1.0094    1.2735  -26.4448

Поскольку estimate использует меньшее количество точек данных для последующих оценок, оценки немного отличаются.

Ограничения

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

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

Совет

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

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

  • Оптимальная практика заключается в том, чтобы избегать ограничений равенства и неравенства во время оптимизации. Например, чтобы ограничить параметр w положительным, неявно задайте модель «состояние-пространство» с помощью функции сопоставления «параметр-матрица». В функции задайте w = exp (s) в функции. Затем используйте неограниченную оптимизацию для оценки. Следовательно, s может принимать любое реальное значение, но w должно быть положительным.

Предикторы и соответствующие коэффициенты

  • Чтобы включить общее среднее значение для модели наблюдения, включите столбец 1s в Зт.

  • Чтобы учесть эффекты предиктора при моделировании, необходимо сдувать наблюдения вручную. Для дефляции наблюдений используйте Wt = Yt Ztβ ^.

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

    function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ParamMap(params,Y,Z)
    		...
    		DeflateY = Y - exp(params(9) + params(10)*Z);
    		...
    end
    В этом примере: Y является матрицей наблюдений и Z - матрица предикторов. Функция возвращает DeflateY, которая является матрицей дефлированных наблюдений. Определить Y и Z в рабочей области MATLAB до, а затем пройти ParamMap кому ssm с использованием следующего синтаксического шаблона.

    Mdl = ssm(@(params)ParamMap(params,Y,Z))

    Это также полезно, если для каждой серии ответов требуется отдельный набор предикторов.

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

Модели диффузного состояния и пространства

  • Метод квадратного корня нельзя использовать для фильтрации и сглаживания моделей диффузного состояния и пространства. В качестве обходного решения можно преобразовать модель диффузного состояния-пространства в стандартную модель состояния-пространства с помощью ssmЗатем можно выполнить фильтрацию с помощью метода квадратного корня. При преобразовании все диффузные состояния имеют конечную, хотя и большую, начальную дисперсию распределения 1e7.

  • Лучшая практика - позволять estimate определить значение SwitchTime. Однако в редких случаях во время оценки, фильтрации или сглаживания моделей диффузного состояния и пространства могут возникнуть числовые проблемы. В таких случаях попробуйте экспериментировать с различными SwitchTime спецификации или рассмотрим другую структуру модели. Другими словами, упростите модель или убедитесь, что модель идентифицируется. Например, преобразовать модель диффузного состояния-пространства в стандартную модель состояния-пространства с помощью ssm.

Дополнительные советы

  • Программное обеспечение вмещает недостающие данные. Указать отсутствующие данные с помощью NaN значения в наблюдаемых откликах (Y).

  • Рекомендуется проверять состояние сходимости программы оптимизации путем отображения Output.ExitFlag.

  • Если алгоритм оптимизации не сходится, то можно увеличить число итераций с помощью 'Options' аргумент пары имя-значение.

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

Алгоритмы

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

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

  • Для явно созданных моделей пространства состояний, estimate применяет все предикторы к каждой серии ответов. Однако каждый ряд ответов имеет свой набор коэффициентов регрессии.

  • Если ограничения оптимизации не заданы, то estimate использование fminunc для неограниченной численной оценки. Если задана какая-либо пара ограничений оптимизации, то estimate использование fmincon для ограниченной численной оценки. Для любого типа оптимизации параметры оптимизации задаются с помощью аргумента пары «имя-значение». Options должны соответствовать параметрам алгоритма оптимизации.

  • estimate передает аргументы пары имя-значение Options, Aineq, bineq, Aeq, beq, lb, и ub непосредственно к оптимизатору fmincon или fminunc.

  • estimate подгоняет коэффициенты регрессии вместе со всеми другими параметрами модели состояния-пространства. Программное обеспечение достаточно гибкое, чтобы можно было применять ограничения к коэффициентам регрессии, используя опции оптимизации с ограничениями. Дополнительные сведения см. в разделе Name,Value аргументы пары и fmincon.

  • Если установить 'Univariate',true затем во время алгоритма фильтрации программное обеспечение последовательно обновляет, а затем обновляет все одновременно. Эта практика может ускорить оценку параметров, особенно для маломерной, инвариантной по времени модели.

  • Предположим, что требуется создать модель «state-space» с помощью функции сопоставления «parameter-to-matrix» с этой сигнатурой

    [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = paramMap(params,Y,Z)
    и указать модель с помощью анонимной функции
    Mdl = dssm(@(params)paramMap(params,Y,Z))
    Наблюдаемые ответы Y и данные предиктора Z не являются входными аргументами в анонимной функции. Если Y и Z существует в рабочей области MATLAB перед созданием Mdl, то программное обеспечение устанавливает связь с ними. В противном случае, если вы пройдете Mdl кому estimate, программное обеспечение выдает ошибку.

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

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

Ссылки

[1] Дурбин Дж., и С. Дж. Копман. Анализ временных рядов по методам пространства состояний. 2-й ред. Оксфорд: Oxford University Press, 2012.

Представлен в R2015b