estimate

Класс: 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 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.

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

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

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

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

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

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

ЗначениеОписание
'hessian'Отрицательная, инвертированная матрица Гессия
'opg'Векторное произведение градиентов (ОПГ)
'sandwich'Гессиан и ОПГ

Пример: '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 в Optimization 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' и a T -by d числовой матрицей. T - количество периодов, а d - количество переменных. Строка t соответствует наблюдаемым предикторам в периоде t (Zt) в расширенном уравнении наблюдения

ytZtβ=Cxt+Dut.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Одномерное лечение может ускорить и улучшить числовую стабильность фильтра Калмана. Однако все инновации в области наблюдений должны быть некоррелированными. То есть Dt Dt 'должны быть диагональными, где 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 максимизирует целевую функцию правдоподобия, удовлетворяющуюlbθub, где θ - вектор, содержащий каждый Mdl параметр.

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

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

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

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

Если вы задаете lb и ub, затем estimate максимизирует целевую функцию правдоподобия, удовлетворяющуюlbθ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);

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

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

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

A = NaN;

Задайте матрицу коэффициентов возмущения-нагрузки.

B = NaN;

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

C = 1;

Задайте матрицу коэффициентов инноваций и наблюдений

D = NaN;

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

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

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

Передайте наблюдения в estimate для оценки параметра. Установите начальное значение параметра равным params0. σ1 и σ2 должен быть положительным, поэтому установите нижние ограничения с помощью '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). Символически, и в форме пространство состояний, модель является

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 аргумент пары "имя-значение".

В этом примере используйте те же данные и модель, что и в Estimate Diffuse State-Space Model, содержащей регрессионный компонент.

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

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. Следовательно, s можете принять любое действительное значение, но w должно быть положительным.

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

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

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

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

    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 затем, во время алгоритма фильтрации, программное обеспечение последовательно обновляется, а не обновляется сразу. Эта практика может ускорить оценку параметра, особенно для маломерной, инвариантной по времени модели.

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

    [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. Это различие особенно важно при проведении анализа окна качения. Для получения дополнительной информации смотрите Анализ окон Timeseries моделей.

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

Ссылки

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

Введенный в R2015b