exponenta event banner

класс dssm

Суперклассы:

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

Описание

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

Вы можете:

  • Укажите инвариантную или изменяющуюся во времени модель.

  • Укажите, являются ли состояния стационарными, статическими или нестационарными.

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

    • Явно путем предоставления матриц

    • Неявно путем предоставления функции, которая отображает параметры в матрицы, то есть функции преобразования параметра в матрицу.

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

Используйте полностью указанную модель (то есть все значения параметров модели известны), чтобы:

  • Фильтрация или сглаживание состояний с помощью filter или smoothсоответственно. Эти функции применяют диффузный фильтр Калмана и данные к модели состояния-пространства.

  • Прогнозные состояния или наблюдения с использованием forecast.

Строительство

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

Mdl = dssm(A,B,C,D) создает модель диффузного состояния-пространства с использованием матрицы состояния-перехода A, матрица возмущений состояния B, матрица чувствительности к измерениям Cи матрица наблюдения и инноваций D.

Mdl = dssm(___,Name,Value) использует любой из входных аргументов в предыдущих синтаксисах и дополнительные параметры, заданные одним или несколькими Name,Value аргументы пары.

Mdl = dssm(ParamMap) создает модель диффузного состояния-пространства с использованием функции отображения «параметр-матрица» (ParamMap), что вы пишете. Функция отображает вектор параметров в матрицы A, B, и C. Дополнительно, ParamMap может сопоставлять параметры с D, Mean0, Cov0. Для указания типов состояний функция может возвращать StateType. Чтобы разместить компонент регрессии в уравнении наблюдения, ParamMap может также возвращать данные дефлированных наблюдений.

Mdl = dssm(SSMMdl) преобразует объект модели состояния-пространства (SSMMdlк объекту диффузной модели состояния-пространства (Mdl). dssm устанавливает все начальные дисперсии диффузных состояний в SSMMdl.Cov0 кому Inf.

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

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

Матрица коэффициентов перехода состояния для явного создания модели пространства состояния, заданная как матрица или вектор ячейки матриц.

Матрица коэффициентов перехода состояния, At, определяет, как ожидается переход состояний xt от периода t-1 к t для всех t = 1,...,T. То есть ожидаемое уравнение состояния-перехода в периоде t равно E (xt 'xt-1) = Atxt-1.

Для инвариантных по времени моделей «состояние-пространство» укажите A как матрица m-by-m, где m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством укажите A в виде массива Т-мерных ячеек, где A{t} содержит матрицу коэффициентов перехода состояния mt-by-mt-1. Если число состояний изменяется с периода t - 1 на t, то mtmt - 1.

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

  • sum(isnan(A(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в A в каждый период.

  • numParamsA неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в A.

Невозможно указать A и ParamMap одновременно.

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

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

Возмущения состояния, ut, являются независимыми гауссовыми случайными переменными со средним значением 0 и стандартным отклонением 1. Матрица коэффициентов нагрузки на помехи состояния Bt определяет структуру аддитивной ошибки в уравнении состояния-перехода от периода t-1 до t для всех t = 1,...,T. То есть уравнение состояния-перехода в периоде t является xt = Atxt-1 + Btut.

Для инвариантных по времени моделей «состояние-пространство» укажите B как матрица m-на-k, где m - число состояний, а k - число возмущений состояния за период. B*B' - ковариационная матрица состояния-возмущения для всех периодов.

Для моделей с изменяющимся во времени состоянием и пространством укажите B в виде массива Т-мерных ячеек, где B{t} содержит матрицу коэффициентов mt-by-kt состояния-возмущения-нагрузки. Если количество состояний или нарушений состояния изменяется в периоде t, то размеры матрицы между B{t-1} и B{t} различаются. B{t}*B{t}' - ковариационная матрица состояния-возмущения для периода t.

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

  • sum(isnan(B(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в B в каждый период.

  • numParamsB неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsB = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),B,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в B.

Невозможно указать B и ParamMap одновременно.

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

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

Матрица Ct коэффициентов чувствительности к измерениям определяет способ линейного объединения состояний в периоде t для формирования наблюдений yt для всех t = 1,...,T. То есть ожидаемое уравнение наблюдения в периоде t равно E (yt 'xt) = Ctxt.

Для инвариантных по времени моделей «состояние-пространство» укажите C как матрица n-by-m, где n - число наблюдений, а m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством укажите C в виде массива Т-мерных ячеек, где C{t} содержит матрицу измерительно-чувствительного коэффициента nt-by-mt. Если число состояний или наблюдений изменяется в периоде t, то размеры матрицы между C{t-1} и C{t} различаются.

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

  • sum(isnan(C(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в C в каждый период.

  • numParamsC неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsC = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),C,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в C.

Невозможно указать C и ParamMap одновременно.

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

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

Нововведения в наблюдениях, αt, являются независимыми гауссовыми случайными величинами со средним значением 0 и стандартным отклонением 1. Матрица коэффициентов наблюдения-нововведения, Dt, определяет структуру аддитивной ошибки в уравнении наблюдения в периоде t, для всех t = 1,...,T. То есть уравнение наблюдения в периоде t равно yt = Ctxt + Dtαt.

Для инвариантных по времени моделей «состояние-пространство» укажите D как матрица n-на-h, где n - количество наблюдений, а h - количество инноваций наблюдения за период. D*D' является ковариационной матрицей наблюдения и инноваций для всех периодов.

Для моделей с изменяющимся во времени состоянием и пространством укажите D в виде массива Т-мерных ячеек, где D{t} содержит матрицу nt-by-ht. Если количество наблюдений или инноваций наблюдений изменяется в период t, то размеры матрицы между D{t-1} и D{t} различаются. D{t}*D{t}' является матрицей ковариации наблюдения и инноваций для периода t.

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

  • sum(isnan(D(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в D в каждый период.

  • numParamsD неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsD = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),D,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в D.

По умолчанию D - пустая матрица, указывающая на отсутствие инноваций наблюдения в модели «состояние-пространство».

Невозможно указать D и ParamMap одновременно.

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

Функция преобразования параметра в матрицу для неявного создания модели состояния-пространства, заданная как дескриптор функции.

ParamMap должна быть функцией, которая принимает по крайней мере один входной аргумент и возвращает по крайней мере три выходных аргумента. Требуемый входной аргумент является вектором неизвестных параметров, а требуемые выходные аргументы соответствуют матрицам коэффициентов A, B, и Cсоответственно. Если для функции сопоставления параметра требуется только аргумент вектора входного параметра, то неявно создайте модель диффузного состояния-пространства, введя следующее:

Mdl = dssm(@ParamMap)

В общем, можно написать промежуточную функцию, например, ParamFun, используя следующий синтаксис:

function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ...
    ParamFun(params,...otherInputArgs...)

В этом общем случае создайте модель диффузного состояния-пространства путем ввода

Mdl = dssm(@(params)ParamMap(params,...otherInputArgs...))

Однако:

  • Следуйте порядку выходных аргументов.

  • params является вектором, и каждый элемент соответствует неизвестному параметру.

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

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

    Mdl = dssm(@(params)ParamFun(params,y,z))

  • Для необязательных выходных аргументов D, Mean0, Cov0, StateType, и DeflateY:

    • Необязательные выходные аргументы соответствуют матрице коэффициентов наблюдения и инноваций D и аргументы пары имя-значение Mean0, Cov0, и StateType.

    • Чтобы пропустить указание необязательного выходного аргумента, задайте для аргумента значение [] в теле функции. Например, пропустить указание D, затем установить D = []; в функции.

    • DeflateY - данные дефлированного наблюдения, которые вмещают компонент регрессии в уравнение наблюдения. Например, в этой функции, которая имеет компонент линейной регрессии, Y - вектор наблюдаемых ответов и Z - вектор данных предиктора.

      function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ParamFun(params,Y,Z)
      	...
      	DeflateY = Y - params(9) - params(10)*Z;
      	...
      end

    • Для значений по умолчанию Mean0, Cov0, и StateType, см. Алгоритмы.

  • Передовой практикой является:

    • Загрузите данные в рабочую область MATLAB ® перед заданием модели.

    • Создайте функцию сопоставления параметра с матрицей в виде собственного файла.

При указании ParamMap, то вы не можете указать какие-либо аргументы пары имя-значение или любые другие входные аргументы.

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

Модель «состояние-пространство» для преобразования в модель «диффузное состояние-пространство», заданную как ssm объект модели.

dssm устанавливает все начальные дисперсии диффузных состояний в SSMMdl.Cov0 кому Inf.

Чтобы использовать диффузный фильтр Калмана для фильтрации, сглаживания и оценки параметров вместо стандартного фильтра Калмана, преобразуйте модель состояния-пространства в модель диффузного состояния-пространства.

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

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

Начальное значение состояния для явного создания модели состояния-пространства, указанное как пара, разделенная запятыми, состоящая из 'Mean0' и числовой вектор с длиной, равной числу начальных состояний. Значения по умолчанию см. в разделе Алгоритмы.

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

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

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

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

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

Индикатор распределения начального состояния для явного создания модели «состояние-пространство», указанный как пара, разделенная запятыми, состоящая из 'StateType' и числовой вектор с длиной, равной числу начальных состояний. В этой таблице представлены доступные типы распределения начальных состояний.

СтоимостьТип распределения начального состояния
0Стационарные (например, модели ARMA)
1Константа 1 (то есть состояние равно 1 с вероятностью 1)
2Диффузный или нестационарный (например, модель случайной ходьбы, сезонный линейный временной ряд) или статическое состояние

Например, предположим, что уравнение состояния имеет две переменные состояния: первая переменная состояния является процессом AR (1), а вторая переменная состояния является случайной прогулкой. Укажите начальные типы распределения с помощью параметра'StateType',[0; 2].

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

Значения по умолчанию см. в разделе Алгоритмы.

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

Свойства

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

Матрица коэффициентов перехода состояния для явно созданных моделей пространства состояния, заданная как матрица, вектор ячейки матриц или пустой массив ([]). Для неявно созданных моделей пространства состояний и до оценки, A является [] и только для чтения.

Матрица коэффициентов перехода состояния, At, определяет, как ожидается переход состояний xt от периода t-1 к t для всех t = 1,...,T. То есть ожидаемое уравнение состояния-перехода в периоде t равно E (xt 'xt-1) = Atxt-1.

Для инвариантных по времени моделей «состояние-пространство» A - матрица m-by-m, где m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством, A - массив Т-мерных ячеек, где A{t} содержит матрицу коэффициентов перехода состояния mt-by-mt-1. Если число состояний изменяется с периода t - 1 на t, то mtmt - 1.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. A вносит свой вклад:

  • sum(isnan(A(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в A в каждый период.

  • numParamsA неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsA = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),A,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в A.

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

Матрица коэффициентов возмущения состояния для явно созданных моделей пространства состояния, заданная как матрица, вектор ячейки матриц или пустой массив ([]). Для неявно созданных моделей пространства состояний и до оценки, B является [] и только для чтения.

Возмущения состояния, ut, являются независимыми гауссовыми случайными переменными со средним значением 0 и стандартным отклонением 1. Матрица коэффициентов нагрузки на помехи состояния Bt определяет структуру аддитивной ошибки в уравнении состояния-перехода от периода t-1 до t для всех t = 1,...,T. То есть уравнение состояния-перехода в периоде t является xt = Atxt-1 + Btut.

Для инвариантных по времени моделей «состояние-пространство» B - матрица m-на-k, где m - число состояний, а k - число возмущений состояния за период. B*B' - ковариационная матрица состояния-возмущения для всех периодов.

Для моделей с изменяющимся во времени состоянием и пространством, B - массив Т-мерных ячеек, где B{t} содержит матрицу коэффициентов mt-by-kt состояния-возмущения-нагрузки. Если количество состояний или нарушений состояния изменяется в периоде t, то размеры матрицы между B{t-1} и B{t} различаются. B{t}*B{t}' - ковариационная матрица состояния-возмущения для периода t.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. B вносит свой вклад:

  • sum(isnan(B(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в B в каждый период.

  • numParamsB неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsB = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),B,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в B.

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

Матрица коэффициента чувствительности измерения для явно созданных моделей пространства состояний, заданная как матрица, вектор ячейки матриц или пустой массив ([]). Для неявно созданных моделей пространства состояний и до оценки, C является [] и только для чтения.

Матрица Ct коэффициентов чувствительности к измерениям определяет, как ожидается линейное объединение состояний в периоде t для формирования наблюдений yt для всех t = 1,...,T. То есть ожидаемое уравнение наблюдения в периоде t равно E (yt 'xt) = Ctxt.

Для инвариантных по времени моделей «состояние-пространство» C - матрица n-by-m, где n - число наблюдений, а m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством, C - массив Т-мерных ячеек, где C{t} содержит матрицу измерительно-чувствительного коэффициента nt-by-mt. Если число состояний или наблюдений изменяется в периоде t, то размеры матрицы между C{t-1} и C{t} различаются.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. C вносит свой вклад:

  • sum(isnan(C(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в C в каждый период.

  • numParamsC неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsC = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),C,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в C.

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

Матрица коэффициентов наблюдения-инноваций для явно созданных моделей состояния-пространства, заданная как матрица, вектор ячейки матриц или пустой массив ([]). Для неявно созданных моделей пространства состояний и до оценки, D является [] и только для чтения.

Нововведения в наблюдениях, αt, являются независимыми гауссовыми случайными величинами со средним значением 0 и стандартным отклонением 1. Матрица коэффициентов наблюдения-нововведения, Dt, определяет структуру аддитивной ошибки в уравнении наблюдения в периоде t, для всех t = 1,...,T. То есть уравнение наблюдения в периоде t равно yt = Ctxt + Dtαt.

Для инвариантных по времени моделей «состояние-пространство» D является матрицей n-на-h, где n - количество наблюдений, а h - количество инноваций наблюдения за период. D*D' является матрицей ковариации наблюдения и инноваций для всех пероидов.

Для моделей с изменяющимся во времени состоянием и пространством, D - массив Т-мерных ячеек, где D{t} содержит матрицу nt-by-ht. Если количество наблюдений или инноваций наблюдений изменяется в период t, то размеры матрицы между D{t-1} и D{t} различаются. D{t}*D{t}' - ковариационная матрица состояния-возмущения для периода t.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. D вносит свой вклад:

  • sum(isnan(D(:))) неизвестные параметры для инвариантных во времени моделей состояния и пространства. Другими словами, если модель состояния-пространства инвариантна по времени, то программное обеспечение использует те же неизвестные параметры, определенные в D в каждый период.

  • numParamsD неизвестные параметры для изменяющихся во времени моделей состояния и пространства, где numParamsD = sum(cell2mat(cellfun(@(x)sum(sum(isnan(x))),D,'UniformOutput',0))). Другими словами, если модель состояния-пространства изменяется во времени, то программное обеспечение назначает новый набор параметров для каждой матрицы в D.

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

Начальное состояние, указанное как числовой вектор или пустой массив ([]). Mean0 имеет длину, равную числу начальных состояний (size(A,1) или size(A{1},1)).

Mean0 - среднее гауссова распределения состояний в периоде 0.

Для неявно созданных моделей пространства состояний и до оценки, Mean0 является [] и только для чтения. Однако estimate определяет Mean0 после оценки.

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

Ковариационная матрица начального состояния, заданная как квадратная матрица или пустой массив ([]). Cov0 имеет размеры, равные числу начальных состояний (size(A,1) или size(A{1},1)).

Cov0 - ковариация гауссова распределения состояний в периоде 0.

Для неявно созданных моделей пространства состояний и до оценки, Cov0 является [] и только для чтения. Однако estimate определяет Cov0 после оценки.

Диагональные элементы Cov0 которые имеют значение Inf соответствуют диффузным распределениям начального состояния. Эта спецификация указывает на полное незнание или отсутствие предшествующего знания начального значения состояния. Впоследствии программное обеспечение фильтрует, сглаживает и оценивает параметры при наличии диффузных распределений начального состояния с помощью диффузного фильтра Калмана. Чтобы использовать стандартный фильтр Калмана для диффузных состояний, установите каждый диагональный элемент Cov0 до большого положительного значения, например, 1e7. Эта спецификация предполагает относительно слабое знание начального значения состояния.

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

Индикатор распределения начального состояния, заданный как числовой вектор или пустой массив ([]). StateType имеет длину, равную числу начальных состояний.

Для неявно созданных моделей пространства состояний или моделей с неизвестными параметрами, StateType является [] и только для чтения.

В этой таблице представлены доступные типы распределения начальных состояний.

СтоимостьТип распределения начального состояния
0Стационарные (например, модели ARMA)
1Константа 1 (то есть состояние равно 1 с вероятностью 1)
2Нестационарное (например, модель случайного обхода, сезонный линейный временной ряд) или статическое состояние.

Например, предположим, что уравнение состояния имеет две переменные состояния: первая переменная состояния является процессом AR (1), а вторая переменная состояния является случайной прогулкой. Затем ,StateType является [0; 2].

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

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

Функция преобразования параметра в матрицу, заданная как дескриптор функции или пустой массив ([]). ParamMap полностью задает структуру модели state-space. То есть ParamMap определяет A, B, C, D, и, необязательно, Mean0, Cov0, и StateType. Для явно созданных моделей пространства состояний, ParamMap является [] и только для чтения.

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

Функции объекта

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

estimateОценка параметров максимального правдоподобия диффузных моделей состояния-пространства
refineУточнение исходных параметров для облегчения оценки модели диффузного состояния и пространства
dispОтображение сводной информации для модели диффузного состояния и пространства
filterПрямая рекурсия моделей диффузного состояния и пространства
smoothОбратная рекурсия моделей диффузного состояния и пространства
irfФункция импульсной характеристики (IRF) модели state-space
irfplotПостройте график функции импульсной характеристики (IRF) модели state-space
forecastПрогнозные состояния и наблюдения моделей диффузного состояния и пространства

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте модель диффузного состояния-пространства, содержащую два независимых состояния, x1, t и x3, t, и наблюдение, yt, то есть детерминированную сумму двух состояний в момент времени t.x1 - модель AR (1) с константой, а x3 - случайная ходьба. Символично, что модель «состояние-пространство»

[x1, tx2, tx3, t] = [ϕ1c10010001] [xt 1,1xt 1,2xt 1,3] + [σ10000σ2] [единое время, 1ut, 3]

yt = [101] [xt, 1xt, 2xt, 3].

Возмущения состояния, u1, t и u3, t, являются стандартными гауссовыми случайными переменными.

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

A = [NaN NaN 0; 0 1 0; 0 0 1];

NaN значения указывают неизвестные параметры.

Укажите матрицу «состояние-возмущение-нагрузка».

B = [NaN 0; 0 0; 0 NaN];

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

C = [1 0 1];

Создайте вектор, определяющий типы состояний. В этом примере:

  • x1, t - стационарная модель AR (1), поэтому ее тип состояния 0.

  • x2, t - местозаполнитель константы в модели AR (1). Поскольку константа неизвестна и выражается в первом уравнении, x2, t равно1 для всей серии. Поэтому его тип состояния - 1.

  • x3, t - нестационарная случайная прогулка с дрейфом, поэтому его тип состояния 2.

StateType = [0 1 2];

Создание модели состояния-пространства с помощью dssm.

Mdl = dssm(A,B,C,'StateType',StateType)
Mdl = 
State-space model type: dssm

State vector length: 3
Observation vector length: 1
State disturbance vector length: 2
Observation innovation vector length: 0
Sample size supported by model: Unlimited
Unknown parameters for estimation: 4

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...
Unknown parameters: c1, c2,...

State equations:
x1(t) = (c1)x1(t-1) + (c2)x2(t-1) + (c3)u1(t)
x2(t) = x2(t-1)
x3(t) = x3(t-1) + (c4)u2(t)

Observation equation:
y1(t) = x1(t) + x3(t)

Initial state distribution:

Initial state means are not specified.
Initial state covariance matrix is not specified.
State types
     x1         x2        x3   
 Stationary  Constant  Diffuse 

Mdl является dssm объект модели, содержащий неизвестные параметры. Подробное резюме Mdl печать в окне команд. Если не указать матрицу ковариации начального состояния, то начальная дисперсия x3, t равнаInf.

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

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

[xt, 1xt, 2] = [1001] [xt-1,1xt-1,2] + [

yt = [11] [xt, 1xt, 2] +

Определите матрицу состояния-перехода.

A = [1 0; 0 1];

Определите матрицу «состояние-возмущение-нагрузка».

B = [NaN 0; 0 NaN];

Определите матрицу чувствительности к измерениям.

C = [1 1];

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

D = NaN;

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

StateType = [2; 2];

Создание модели состояния-пространства с помощью dssm.

 Mdl = dssm(A,B,C,D,'StateType',StateType)
Mdl = 
State-space model type: dssm

State vector length: 2
Observation vector length: 1
State disturbance vector length: 2
Observation innovation vector length: 1
Sample size supported by model: Unlimited
Unknown parameters for estimation: 3

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...
Unknown parameters: c1, c2,...

State equations:
x1(t) = x1(t-1) + (c1)u1(t)
x2(t) = x2(t-1) + (c2)u2(t)

Observation equation:
y1(t) = x1(t) + x2(t) + (c3)e1(t)

Initial state distribution:

Initial state means are not specified.
Initial state covariance matrix is not specified.
State types
    x1       x2   
 Diffuse  Diffuse 

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

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

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

  • Состояние x1, t представляет собой стационарную модель AR (2) с (1) = 0,6, (2) = 0,2 и константой 0,5. Возмущение состояния - это средняя нулевая гауссова случайная величина со стандартным отклонением 0,3.

  • Состояние x4, t является случайной прогулкой. Возмущение состояния представляет собой среднюю нулевую случайную величину Гаусса со стандартным отклонением 0,05.

  • Наблюдение y1, t - это разность между текущим и предыдущим значением в состоянии AR (2), плюс среднее 0 гауссово новшество наблюдения со стандартным отклонением 0,1.

  • Наблюдение y2, t представляет собой состояние случайной ходьбы плюс среднее 0 гауссово новшество наблюдения со стандартным отклонением 0,02.

Символично, что модель «состояние-пространство»

[x1, tx2, tx3, tx4, t] = [0.60.20.50100000100001] [x1, t-1x2, t-1x3, t-1x4, t-1] + [0.30000000.05] [u1, tu4, t]

[y1, ty2, t] = [1-1000001] [x1, tx2, tx3, tx4, t] + [0,1000,02] [α1, tα2, t].

Модель имеет четыре состояния: x1, t - процесс AR (2), x2, t - x1, t-1, x3, t - постоянная модели AR (2), и x4, t - случайная ходьба.

Определите матрицу состояния-перехода.

A = [0.6 0.2 0.5 0; 1 0 0 0; 0 0 1 0; 0 0 0 1];

Определите матрицу «состояние-возмущение-нагрузка».

B = [0.3 0; 0 0; 0 0; 0 0.05];

Определите матрицу чувствительности к измерениям.

C = [1 -1 0 0; 0 0 0 1];

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

D = [0.1; 0.02];

Использовать dssm для создания модели состояния-пространства. Определить тип распределения исходного состояния (StateType), отметив следующее:

  • x1, t - стационарный процесс AR (2).

  • x2, t также является стационарным AR (2) процессом.

  • x3, t - константа 1 для всех периодов.

  • x4, t является нестационарным .

Установите средство начального состояния (Mean0) в 0. Значение начального состояния для постоянных состояний должно быть равно 1.

Mean0 = [0; 0; 1; 0];     
StateType = [0; 0; 1; 2];
Mdl = dssm(A,B,C,D,'Mean0',Mean0,'StateType',StateType)
Mdl = 
State-space model type: dssm

State vector length: 4
Observation vector length: 2
State disturbance vector length: 2
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 equations:
x1(t) = (0.60)x1(t-1) + (0.20)x2(t-1) + (0.50)x3(t-1) + (0.30)u1(t)
x2(t) = x1(t-1)
x3(t) = x3(t-1)
x4(t) = x4(t-1) + (0.05)u2(t)

Observation equations:
y1(t) = x1(t) - x2(t) + (0.10)e1(t)
y2(t) = x4(t) + (0.02)e1(t)

Initial state distribution:

Initial state means
 x1  x2  x3  x4 
  0   0   1   0 

Initial state covariance matrix
     x1    x2    x3  x4  
 x1  0.21  0.16   0  0   
 x2  0.16  0.21   0  0   
 x3   0     0     0  0   
 x4   0     0     0  Inf 

State types
     x1          x2         x3        x4   
 Stationary  Stationary  Constant  Diffuse 

Mdl является dssm объект модели. dssm устанавливает начальное состояние:

  • Ковариационная матрица для стационарных состояний к асимптотической ковариации модели AR (2)

  • Отклонение для состояний констант в 0

  • Дисперсия для диффузных состояний в Inf

Можно отобразить или изменить свойства Mdl с использованием точечной нотации. Например, отображение матрицы ковариации начального состояния.

Mdl.Cov0
ans = 4×4

    0.2143    0.1607         0         0
    0.1607    0.2143         0         0
         0         0         0         0
         0         0         0       Inf

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

Mdl.Mean0(1:2) = 0.5/(1-0.2-0.6);
Mdl.Mean0
ans = 4×1

    2.5000
    2.5000
    1.0000
         0

Используйте функцию отображения параметров для создания инвариантной по времени модели «состояние-пространство», где моделью состояния является модель AR (1). Состояния наблюдаются с уклоном, но без случайной ошибки. Задайте начальное среднее состояние и дисперсию и укажите, что состояние является стационарным.

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

$$\begin{array}{*{20}{c}}
{{x_t} = \phi {x_{t - 1}} + \sigma {u_t}}\\
{{y_t} = a{x_t}}
\end{array}.$$


% Copyright 2015 The MathWorks, Inc.

function [A,B,C,D,Mean0,Cov0,StateType] = timeInvariantParamMap(params)
% Time-invariant state-space model parameter mapping function example. This
% function maps the vector params to the state-space matrices (A, B, C, and
% D), the initial state value and the initial state variance (Mean0 and
% Cov0), and the type of state (StateType). The state model is AR(1)
% without observation error.
    varu1 = exp(params(2)); % Positive variance constraint
    A = params(1);
    B = sqrt(varu1);
    C = params(3);
    D = [];
    Mean0 = 0.5;
    Cov0 = 100;
    StateType = 0;
end

Сохранить этот код как файл с именем timeInvariantParamMap.m в папку на вашем пути MATLAB ®.

Создание модели состояния-пространства путем передачи функции timeInvariantParamMap как дескриптор функции для ssm.

Mdl = ssm(@timeInvariantParamMap);

ssm неявно создает модель state-space. Обычно неявно определенные модели пространства состояний проверить невозможно.

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

Явно создайте двумерную стандартную модель пространства состояний. Укажите, что первое уравнение состояния x1, t = x1, t-1 + u1, t и что второе уравнение состояния x2, t = 0 .2x2, t-1 + u2, t. Укажите, что первое уравнение наблюдения y1, t = x1, t + α1, t и что второе уравнение наблюдения y2, t = x2, t + α2, t. Укажите, что состояния являются диффузными и нестационарными соответственно.

A = [1 0; 0 0.2];   
B = [1 0; 0 1]; 
C = [1 0;0 1]; 
D = [1 0; 0 1];
StateType = [2 0];
MdlSSM = ssm(A,B,C,D,'StateType',StateType)
MdlSSM = 
State-space model type: ssm

State vector length: 2
Observation vector length: 2
State disturbance vector length: 2
Observation innovation vector length: 2
Sample size supported by model: Unlimited

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...

State equations:
x1(t) = x1(t-1) + u1(t)
x2(t) = (0.20)x2(t-1) + u2(t)

Observation equations:
y1(t) = x1(t) + e1(t)
y2(t) = x2(t) + e2(t)

Initial state distribution:

Initial state means
 x1  x2 
  0   0 

Initial state covariance matrix
     x1        x2   
 x1  1.00e+07   0   
 x2   0        1.04 

State types
    x1        x2     
 Diffuse  Stationary 

MdlSSM является ssm объект модели. В некоторых случаях ssm может обнаружить тип состояния, но рекомендуется указать, является ли состояние стационарным, диффузным или постоянным 1. Поскольку модель не содержит неизвестных параметров, ssm выводит распределения начального состояния.

Новообращенный MdlSSM в модель диффузного состояния и пространства.

Mdl = dssm(MdlSSM)
Mdl = 
State-space model type: dssm

State vector length: 2
Observation vector length: 2
State disturbance vector length: 2
Observation innovation vector length: 2
Sample size supported by model: Unlimited

State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...

State equations:
x1(t) = x1(t-1) + u1(t)
x2(t) = (0.20)x2(t-1) + u2(t)

Observation equations:
y1(t) = x1(t) + e1(t)
y2(t) = x2(t) + e2(t)

Initial state distribution:

Initial state means
 x1  x2 
  0   0 

Initial state covariance matrix
     x1   x2   
 x1  Inf   0   
 x2  0    1.04 

State types
    x1        x2     
 Diffuse  Stationary 

Mdl является dssm объект модели. Структуры Mdl и MdlSSM эквивалентны, за исключением того, что дисперсия начального состояния состояния в Mdl является Inf вместо 1e7.

Чтобы увидеть разницу между двумя моделями, смоделируйте 10 периодов данных из модели пространства состояний, которая похожа на MdlSSM. Установите для матрицы ковариации начального состояния значение I2.

Mdl0 = MdlSSM;
Mdl0.Cov0 = eye(2);
T = 10;
rng(1); % For reproducibility
y = simulate(Mdl0,T);

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

fY = filter(MdlSSM,y);
fYD = filter(Mdl,y);
sY = smooth(MdlSSM,y);
sYD = smooth(Mdl,y);

Постройте график отфильтрованных и сглаженных состояний.

figure;
subplot(2,1,1)
plot(1:T,y(:,1),'-o',1:T,fY(:,1),'-d',1:T,fYD(:,1),'-*');
title('Filtered States for x_{1,t}')
legend('Simulated Data','Filtered States -- MdlSSM','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,1),'-o',1:T,sY(:,1),'-d',1:T,sYD(:,1),'-*');
title('Smoothed States for x_{1,t}')
legend('Simulated Data','Smoothed States -- MdlSSM','Smoothed States -- Mdl');

Figure contains 2 axes. Axes 1 with title Filtered States for x_{1,t} contains 3 objects of type line. These objects represent Simulated Data, Filtered States -- MdlSSM, Filtered States -- Mdl. Axes 2 with title Smoothed States for x_{1,t} contains 3 objects of type line. These objects represent Simulated Data, Smoothed States -- MdlSSM, Smoothed States -- Mdl.

figure;
subplot(2,1,1)
plot(1:T,y(:,2),'-o',1:T,fY(:,2),'-d',1:T,fYD(:,2),'-*');
title('Filtered States for x_{2,t}')
legend('Simulated Data','Filtered States -- MdlSSM','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,2),'-o',1:T,sY(:,2),'-d',1:T,sYD(:,2),'-*');
title('Smoothed States for x_{2,t}')
legend('Simulated Data','Smoothed States -- MdlSSM','Smoothed States -- Mdl');

Figure contains 2 axes. Axes 1 with title Filtered States for x_{2,t} contains 3 objects of type line. These objects represent Simulated Data, Filtered States -- MdlSSM, Filtered States -- Mdl. Axes 2 with title Smoothed States for x_{2,t} contains 3 objects of type line. These objects represent Simulated Data, Smoothed States -- MdlSSM, Smoothed States -- Mdl.

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

Подробнее

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

Совет

  • Определить ParamMap в более общем или сложном параметре, где, например:

    • Начальными значениями состояния являются параметры.

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

    • Необходимо наложить ограничения на параметры.

  • Можно создать dssm объект модели, не содержащий диффузных состояний. Однако последующие вычисления, например фильтрация и оценка параметров, могут быть неэффективными. Если все состояния имеют стационарные распределения или являются константой 1, то создайте ssm вместо этого объект модели.

Алгоритмы

  • Значения по умолчанию для Mean0 и Cov0:

    • Если явно указать модель state-space (то есть предоставить матрицы коэффициентов) A, B, C, и необязательно D), то:

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

      • Для состояний, которые всегда являются константой 1, dssm наборы Mean0 в 1 и Cov0 кому 0.

      • Для диффузных состояний комплекты программного обеспечения Mean0 до 0 и Cov0 кому Inf по умолчанию.

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

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

  • Рекомендуется устанавливать StateType для каждого штата. По умолчанию программа генерирует StateType, но такое поведение может быть неточным. Например, программное обеспечение не может различать постоянное состояние 1 и статическое состояние.

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

  • dssm модели не хранят наблюдаемые ответы или данные предиктора. При необходимости введите данные с помощью соответствующих аргументов пары «ввод-значение».

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

    [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. Это различие важно, в частности, при проведении анализа скользящего окна. Дополнительные сведения см. в разделе Скользящий анализ моделей временных рядов.

Альтернативы

Создание ssm объект модели вместо dssm объект модели при:

  • Модель не содержит диффузных состояний.

  • Диффузные состояния коррелируют друг с другом или с другими состояниями.

  • Требуется внедрить стандартный фильтр Калмана.

Ссылки

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

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