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 является подходящим в виде числовой матрицы или вектора ячейки из числовых векторов.

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

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

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

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

Аргументы name-value

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

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

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

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

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

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

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

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

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

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

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

ЗначениеОтображенная информация
'diagnostics'Диагностика оптимизации
'full'Оценки параметра наибольшего правдоподобия, стандартные погрешности, статистика t, итеративная информация об оптимизации и диагностика оптимизации
'iter'Итеративная информация об оптимизации
'off''none'
'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' и 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 последний период, в который предполагаемая сглаживавшая матрица точности состояния сингулярна (i.e., инверсия ковариационной матрицы). Эта спецификация представляет наименьшее количество количества наблюдений, требуемых инициализировать рассеянные состояния. Поэтому это - лучшая практика, чтобы использовать значение по умолчанию.

Если вы устанавливаете 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

Типы данных: логический

Ограниченные Опции Оптимизации для 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 хранилища:

  • Оценки параметра содействующих матриц в свойствах ABC, и 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' аргумент пары "имя-значение". Укажите что нижняя граница ϕ isinf.

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 провести исследование Монте-Карло.

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

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

где:

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

  • yt наблюдаемое изменение в уровне безработицы, выкачиваемом возвратом nGNP (Zt).

  • ut серия Gaussian воздействий состояния, имеющих среднее значение 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. Следовательно, 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] Дербин Дж. и С. Дж. Купмен. Анализ Временных рядов Методами Пространства состояний. 2-й редактор Оксфорд: Издательство Оксфордского университета, 2012.

Введенный в R2015b