ssm class

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

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

Описание

ssm создает стандартный, линейный объект модели пространства состояний с независимыми нарушениями порядка Гауссова состояния и инновациями наблюдений.

Вы можете:

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

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

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

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

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

Как только вы задали модель:

  • Если он содержит неизвестные параметры, передайте модель и данные в estimate, который оценивает параметры.

  • Если состояние и матрицы наблюдений не содержат неизвестных параметров (для примера - оценочная ssm модель), затем можно передать его в:

    • filter для реализации прямой рекурсии и получения отфильтрованных оценок

    • forecast для получения прогнозируемых состояний и наблюдений

    • smooth для реализации обратной рекурсии и получения сглаженных оценок

    • simulate для симуляции состояний и наблюдений из модели пространства состояний

  • ssm поддерживает регрессию экзогенных предикторов. Чтобы включить регрессионный компонент, который отклоняет наблюдения, смотрите estimate, filter, forecast, и smooth.

Конструкция

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

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

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

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

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

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

Входные параметры

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

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

Матрица коэффициентов перехода состояний, 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 = ssm(@ParamMap)

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

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

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

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

Однако:

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

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

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

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

    Mdl = ssm(@(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

Диффузная модель пространства состояний для преобразования в модель пространства состояний, заданную как dssm объект модели.

ssm устанавливает все начальные отклонения диффузных состояний в DSSMMdl.Cov0 от Inf на 1e7. Любые диффузные состояния с отклонением, отличной от 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 после оценки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

[xt,1xt,2]=[ϕ100ϕ2][xt-1,1xt-1,2]+[σ100σ2][ut,1ut,2]

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

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

A = [NaN 0; 0 NaN];

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

B = [NaN 0; 0 NaN];

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

C = [1 1];

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

Mdl = ssm(A,B,C)
Mdl = 
State-space model type: ssm

State vector length: 2
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) + (c3)u1(t)
x2(t) = (c2)x2(t-1) + (c4)u2(t)

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

Initial state distribution:

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

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

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

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

[xt,1xt,2]=[ϕ100ϕ2][xt-1,1xt-1,2]+[σ100σ2][ut,1ut,2]

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

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

A = [NaN 0; 0 NaN];

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

B = [NaN 0; 0 NaN];

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

C = [1 1];

Задайте матрицу наблюдений-инноваций.

D = NaN;

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

 Mdl = ssm(A,B,C,D)
Mdl = 
State-space model type: ssm

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: 5

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) + (c3)u1(t)
x2(t) = (c2)x2(t-1) + (c4)u2(t)

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

Initial state distribution:

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

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

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

Передайте данные и Mdl на estimate для оценки параметров.

Создайте модель пространства состояний, где уравнение состояний является моделью AR (2). Нарушения порядка состояния являются средними нулевыми Гауссовыми случайными переменными со стандартным отклонением 0,3. Уравнение наблюдения является различием между текущим и предыдущим состояниями плюс среднее нулевое нововведение Гауссова наблюдения со стандартным отклонением 0,1. Символически модель пространства состояний

[x1,tx2,tx3,t]=[0.60.20.5100001][x1,t-1x2,t-1x3,t-1]+[0.300]u1,t

yt=[1-10][x1,tx2,tx3,t]+0.1εt.

Существует три состояния: x1,t - процесс AR (2 ),x2,t представляет x1,t-1, и x3,t является константой модели AR (2).

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

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

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

B = [0.3; 0; 0];

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

C = [1 -1 0];

Задайте матрицу наблюдений-инноваций.

D = 0.1;

Использование ssm для создания модели пространства состояний. Установите среднее начальное состояние (Mean0) и ковариационная матрица (Cov0). Идентифицируйте тип начальных распределений состояний (StateType), отмечая следующее:

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

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

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

Mean0 = [0; 0; 1];                                        % The mean of the AR(2)
varAR2 = 0.3*(1 - 0.2)/((1 + 0.2)*((1 - 0.2)^2 - 0.6^2)); % The variance of the AR(2)
Cov1AR2 = 0.6*0.3/((1 + 0.2)*((1 - 0.2)^2) - 0.6^2);      % The covariance of the AR(2)
Cov0 = zeros(3);
Cov0(1:2,1:2) = varAR2*eye(2) + Cov1AR2*flip(eye(2));
StateType = [0; 0; 1];
Mdl = ssm(A,B,C,D,'Mean0',Mean0,'Cov0',Cov0,'StateType',StateType)
Mdl = 
State-space model type: ssm

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

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

State 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)

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

Initial state distribution:

Initial state means
 x1  x2  x3 
  0   0   1 

Initial state covariance matrix
     x1    x2    x3 
 x1  0.71  0.44   0 
 x2  0.44  0.71   0 
 x3   0     0     0 

State types
     x1          x2         x3    
 Stationary  Stationary  Constant 

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

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

Mdl.Cov0
ans = 3×3

    0.7143    0.4412         0
    0.4412    0.7143         0
         0         0         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) для диффузных состояний. Обработка стандартной модели пространства состояний приводит к приближению к результатам диффузного фильтра Калмана. Однако estimate использует все данные в соответствии с моделью и filter и smooth возвращает отфильтрованные и сглаженные оценки для всех периодов, соответственно.

Явно создайте одномерную модель рассеянного пространства состояний. Задайте, что первое уравнение состояния xt=xt-1+ut, и что модель наблюдения является yt=xt+εt.

A = 1;   
B = 1; 
C = 1; 
D = 1;
MdlDSSM = dssm(A,B,C,D)
MdlDSSM = 
State-space model type: dssm

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

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

State equation:
x1(t) = x1(t-1) + u1(t)

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1  
 x1  Inf 

State types
    x1   
 Diffuse 

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

Преобразуйте MdlDSSM в стандартную модель пространства состояний.

Mdl = ssm(MdlDSSM)
Mdl = 
State-space model type: ssm

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

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

State equation:
x1(t) = x1(t-1) + u1(t)

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1    
 x1  1e+07 

State types
    x1   
 Diffuse 

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

Чтобы увидеть различие между двумя моделями, симулируйте 10 периодов данных из модели пространства состояний, которая похожа на Mdl, за исключением того, что он имеет известное среднее начальное состояние 5 и отклонение 2.

Mdl0 = ssm(A,B,C,D,'Mean0',5,'Cov0',2,'StateType',2);
T = 10;
rng(1); % For reproducibility
y = simulate(Mdl0,T);

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

fY = filter(Mdl,y);
fDY = filter(MdlDSSM,y);
sY = smooth(Mdl,y);
sDY = smooth(MdlDSSM,y);

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

figure;
plot(1:T,y,'-o',1:T,fY,'-d',1:T,fDY,'-*');
legend('Simulated Data','Filtered States -- Mdl','Filtered States -- MdlDSSM');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Simulated Data, Filtered States -- Mdl, Filtered States -- MdlDSSM.

figure;
plot(1:T,y,'-o',1:T,sY,'-d',1:T,sDY,'-*');
legend('Simulated Data','Smoothed States -- Mdl','Smoothed States -- MdlDSSM');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Simulated Data, Smoothed States -- Mdl, Smoothed States -- MdlDSSM.

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

Подробнее о

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

Совет

Задайте ParamMap в более общей или сложной настройке, где, например:

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

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

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

Алгоритмы

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

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

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

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

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

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

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

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

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

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

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

    [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = paramMap(params,Y,Z)
    и вы задаете модель с помощью анонимной функции
    Mdl = ssm(@(params)paramMap(params,Y,Z))
    Наблюдаемые ответы Y и данные предиктора Z не являются входными параметрами в анонимной функции. Если Y и Z существует в рабочем пространстве MATLAB перед созданием Mdl, затем программное обеспечение устанавливает ссылку на них. В противном случае, если вы передаете Mdl на estimateпрограмма выдает ошибку.

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

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

  • Если состояния наблюдаемы, и уравнение состояния напоминает:

    • Модель ARIMA, тогда можно задать arima вместо этого моделируйте.

    • Регрессионная модель с ошибками ARIMA, тогда можно задать regARIMA вместо этого моделируйте.

    • Модель условного отклонения, затем можно задать garch, egarch, или gjr вместо этого моделируйте.

    • Модель VAR, тогда можно оценить такую модель используя varm и estimate.

  • Чтобы не навязывать предварительных знаний начальным значениям состояний диффузии и реализовать диффузный фильтр Калмана, создайте dssm объект модели вместо ssm объект модели.

Ссылки

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