exponenta event banner

оценка

Класс: ssm

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

Описание

пример

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

пример

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

пример

[EstMdl,estParams,EstParamCov,logL,Output] = estimate(___) дополнительно возвращает:

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

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

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

  • Output, структура диагностической информации оптимизации

с использованием любого из входных аргументов в предыдущих синтаксисах.

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

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

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

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

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

Примечание

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

Флаг метода фильтра квадратного корня, заданный как разделенная запятыми пара, состоящая из 'SquareRoot' и true или false. Если true, то estimate применяет метод фильтра квадратного корня при реализации фильтра Калмана.

Если предполагается, что собственные значения отфильтрованного состояния или прогнозируемых ковариационных матриц наблюдения близки к нулю, укажите 'SquareRoot',true. Фильтр квадратного корня надежен к числовым проблемам, возникающим из-за конечной точности вычислений, но требует больше вычислительных ресурсов.

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

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

Порог неопределенности прогноза, указанный как пара, разделенная запятыми, состоящая из '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

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

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

Модель пространства состояний, содержащая оценки параметров, возвращаемые как ssm объект модели.

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

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

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

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

Матрицу расчетного коэффициента регрессии см. в разделе estParams.

Примечание

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. В моделях с предикторами оценочные коэффициенты регрессии перечислены по столбцам

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

Отсутствующие наблюдения не влияют на средства к существованию.

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

В этой таблице описываются поля 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 с помощью матриц коэффициентов. Кроме того, укажите среднее начальное состояние, дисперсию и распределение (которое является стационарным).

Mean0 = 0;
Cov0 = 10;
StateType = 0;
Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType);

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

Передайте наблюдения в 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)
Sample size: 100
Logarithmic  likelihood:     -140.532
Akaike   info criterion:      287.064
Bayesian info criterion:      294.879
      |     Coeff      Std Err   t Stat    Prob  
-------------------------------------------------
 c(1) | 0.45425       0.19870   2.28611  0.02225 
 c(2) | 0.89013       0.30359   2.93205  0.00337 
 c(3) | 0.38750       0.57858   0.66975  0.50302 
      |                                          
      |  Final State   Std Dev   t Stat    Prob  
 x(1) | 1.52989       0.35621   4.29498  0.00002 
EstMdl = 
State-space model type: ssm

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

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1 
 x1  10 

State types
     x1     
 Stationary 

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

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

EstMdl.A
ans = 0.4543

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

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

[x1, tx2, t] = [startstart00] [x1, t-1x2, t-1] + [11] u1, tyt-βZt = x1, t +

где:

  • x1, t - изменение уровня безработицы в момент времени t.

  • x2, t - фиктивное состояние для эффекта MA (1).

  • y1, t - наблюдаемое изменение в безработице, сдуваемой темпами роста nGNP (Zt).

  • u1, t - гауссова серия возмущений состояния, имеющих среднее значение 0 и стандартное отклонение 1.

  • δ t - гауссова серия инноваций в области наблюдений, имеющих среднее значение 0 и стандартное отклонение,

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

load Data_NelsonPlosser

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

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

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

Укажите матрицу коэффициентов перехода состояния.

A = [NaN NaN; 0 0];

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

B = [1; 1];

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

C = [1 0];

Укажите матрицу коэффициентов наблюдения и инноваций.

D = NaN;

Укажите модель состояния-пространства с помощью ssm.

Mdl = ssm(A,B,C,D);

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

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

Number of variables: 5

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       6    2.579611e+02    0.000e+00    4.601e+01
    1      20    2.556482e+02    0.000e+00    3.652e+01    1.392e-01
    2      27    2.503349e+02    0.000e+00    4.319e+01    1.908e-01
    3      35    2.379654e+02    0.000e+00    1.294e+01    1.083e+01
    4      41    1.946975e+02    0.000e+00    1.947e+01    7.160e+00
    5      47    1.600478e+02    0.000e+00    2.123e+02    1.185e+01
    6      53    1.257101e+02    0.000e+00    9.100e+01    1.584e+00
    7      59    1.112365e+02    0.000e+00    1.019e+01    2.431e+00
    8      65    1.057826e+02    0.000e+00    1.322e+01    1.608e+00
    9      71    1.038437e+02    0.000e+00    8.182e+00    1.270e+00
   10      79    1.016763e+02    0.000e+00    4.046e+00    1.017e+00
   11      85    1.008654e+02    0.000e+00    3.983e+00    9.373e-01
   12      91    1.001161e+02    0.000e+00    2.640e+00    1.330e+00
   13      97    9.984376e+01    0.000e+00    1.216e+00    2.509e-01
   14     103    9.974672e+01    0.000e+00    9.291e-01    4.018e-01
   15     109    9.973448e+01    0.000e+00    7.202e-01    1.514e-01
   16     115    9.973150e+01    0.000e+00    5.665e-01    7.940e-02
   17     121    9.973097e+01    0.000e+00    5.594e-01    2.317e-03
   18     127    9.973033e+01    0.000e+00    5.217e-01    2.630e-03
   19     133    9.972771e+01    0.000e+00    3.273e-01    1.238e-02
   20     139    9.972600e+01    0.000e+00    2.392e-01    1.381e-02
   21     145    9.972538e+01    0.000e+00    1.024e-01    1.115e-02
   22     151    9.972525e+01    0.000e+00    1.000e-01    4.118e-03
   23     157    9.972458e+01    0.000e+00    2.085e-02    7.839e-03
   24     163    9.972454e+01    0.000e+00    1.739e-03    2.360e-03
   25     169    9.972454e+01    0.000e+00    2.000e-04    1.740e-04
   26     175    9.972454e+01    0.000e+00    1.049e-05    3.276e-05
   27     181    9.972454e+01    0.000e+00    2.000e-06    3.550e-07
   28     187    9.972454e+01    0.000e+00    1.401e-06    4.762e-07
   29     193    9.972454e+01    0.000e+00    1.907e-06    3.446e-07
   30     206    9.972454e+01    0.000e+00    9.082e-07    8.556e-08

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)
Sample size: 61
Logarithmic  likelihood:     -99.7245
Akaike   info criterion:      209.449
Bayesian info criterion:      220.003
           |      Coeff       Std Err    t Stat     Prob  
----------------------------------------------------------
 c(1)      |  -0.34098       0.29608    -1.15164  0.24948 
 c(2)      |   1.05003       0.41377     2.53771  0.01116 
 c(3)      |   0.48592       0.36790     1.32079  0.18657 
 y <- z(1) |   1.36121       0.22338     6.09358   0      
 y <- z(2) | -24.46711       1.60018   -15.29024   0      
           |                                              
           |    Final State   Std Dev     t Stat    Prob  
 x(1)      |   1.01264       0.44690     2.26592  0.02346 
 x(2)      |   0.77718       0.58917     1.31912  0.18713 

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

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

Предположим, что скрытый процесс является AR (1). Уравнение состояния

xt = 0 .5xt-1 + ut,

где ut - гауссов со средним значением 0 и стандартным отклонением 0,3.

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

T = 100;
ARMdl = arima('AR',0.5,'Constant',0,'Variance',0.3^2);
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 с помощью матриц коэффициентов. Кроме того, укажите среднее начальное состояние, дисперсию и распределение (которое является стационарным).

Mean0 = 0;
Cov0 = 10;
StateType = 0;
Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType);

Mdl является ssm модель.

Оценка параметров с помощью estimate два пути:

  • Использование фильтра Калмана по умолчанию

  • Использование вариации фильтра квадратного корня

В обоих случаях укажите, что выходные данные не должны возвращаться в командное окно. Это хорошая практика, если вы планируете работать estimate несколько раз (например, моделирование Монте-Карло).

params0 = [10,10,10];
[~,estParamsSKF,EstParamCovSKF,logLSKF,OutputSKF] = estimate(Mdl,y,params0,...
    'Display','off');
[~,estParamsSR,EstParamCovSR,logLSR,OutputSR] = estimate(Mdl,y,params0,...
    'Squareroot',true,'Display','off');

Проверьте правильность схождения алгоритмов путем печати свойств флага выхода OutputSKF и OutputSR.

exitFlagSKF = OutputSKF.ExitFlag
exitFlagSKF = 1
exitFlagSR = OutputSR.ExitFlag
exitFlagSR = 2

Оба алгоритма имеют флаг выхода 1, что указывает на соответствие программного обеспечения критериям сходимости.

Сравните оценки из каждого алгоритма.

fprintf('\n Parameter Estimates\n')
 Parameter Estimates
table(estParamsSKF',estParamsSR','VariableNames',...
    {'SimpleKalmanFilter','SquarerootFilter'})
ans=3×2 table
    SimpleKalmanFilter    SquarerootFilter
    __________________    ________________

          0.51057              0.51057    
          0.23436              0.23436    
         -0.17904             -0.17904    

fprintf('\nEstimated Parameter Covariance Matrix\n')
Estimated Parameter Covariance Matrix
table(EstParamCovSKF,EstParamCovSR,'VariableNames',...
    {'SimpleKalmanFilter','SquarerootFilter'})
ans=3×2 table
            SimpleKalmanFilter                      SquarerootFilter          
    ___________________________________    ___________________________________

     0.036669    -0.013302    -0.014012     0.036669    -0.013302    -0.014012
    -0.013302    0.0070187    0.0072533    -0.013302    0.0070187    0.0072533
    -0.014012    0.0072533    0.0089019    -0.014012    0.0072533    0.0089019

В этом случае результаты одинаковы.

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

Ограничения

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

Совет

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

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

  • Оптимальная практика заключается в том, чтобы избегать ограничений равенства и неравенства во время оптимизации. Например, чтобы ограничить параметр 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))

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

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

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

  • Программное обеспечение вмещает недостающие данные. Указать отсутствующие данные с помощью 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 = ssm(@(params)paramMap(params,Y,Z))
    Наблюдаемые ответы Y и данные предиктора Z не являются входными аргументами в анонимной функции. Если Y и Z существует в рабочей области MATLAB перед созданием Mdl, то программное обеспечение устанавливает связь с ними. В противном случае, если вы пройдете Mdl кому estimate, программное обеспечение выдает ошибку.

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

Ссылки

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