dssm class

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

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

Описание

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

Вы можете:

  • Задайте инвариантную по времени или изменяющуюся по времени модель.

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

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

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

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

После создания модели рассеянного пространства состояний, содержащей неизвестные параметры, можно оценить ее параметры путем прохождения созданной dssm моделировать объект и данные для estimate. The 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 | <reservedrangesplaceholder4> <reservedrangesplaceholder3>-1) = <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>-1.

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

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

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели пространства состояний. 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 = <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2>-1 + <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели пространства состояний. 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 | <reservedrangesplaceholder4> <reservedrangesplaceholder3>) = <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели пространства состояний. 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 = <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели пространства состояний. 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 | <reservedrangesplaceholder4> <reservedrangesplaceholder3>-1) = <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>-1.

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

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

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели пространства состояний. 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 = <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2>-1 + <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели пространства состояний. 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 | <reservedrangesplaceholder4> <reservedrangesplaceholder3>) = <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели пространства состояний. 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 = <reservedrangesplaceholder4> <reservedrangesplaceholder3> <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели пространства состояний. 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 полностью задает структуру модели пространства состояний. То есть ParamMap определяет A, B, C, D, и, опционально Mean0, Cov0, и StateType. Для явно созданных моделей пространства состояний, ParamMap является [] и только для чтения.

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

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

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

estimateОценка максимального параметра правдоподобия диффузных моделей в пространстве состояний
refineУточните начальные параметры, чтобы помочь в оценке модели рассеянного пространства состояний
dispОтобразите сводную информацию для модели рассеянного пространства состояний
filterПрямая рекурсия моделей рассеянного пространства состояний
smoothОбратная рекурсия моделей рассеянного пространства состояний
irfФункция импульсной характеристики (IRF) модели пространства состояний
irfplotПостройте график функции импульсной характеристики (IRF) модели пространства состояний
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][ut,1ut,3]

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

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

Задайте матрицу переходов.

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

The 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]+[σ100σ2][ut,1ut,2]

yt=[11][xt,1xt,2]+σ3εt.

Задайте матрицу переходов.

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

$$\begin{array}{*{20}{c}}&#xA;{{x_t} = \phi {x_{t - 1}} + \sigma {u_t}}\\&#xA;{{y_t} = a{x_t}}&#xA;\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 неявно создает модель пространства состояний. Обычно вы не можете проверить неявно определенные модели пространства состояний.

По умолчанию 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:

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

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

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

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

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

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

Создайте ssm объект модели вместо dssm объект модели, когда:

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

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

  • Необходимо реализовать стандартный фильтр Калмана.

Ссылки

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

Введенный в R2015b