класс ssm

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

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

Описание

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 является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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 |xt–1) = At x t –1.

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

Для изменяющихся во времени моделей в пространстве состояний задайте A как T - размерный массив ячеек, где A{t} содержит mt-by-mt – 1 матрица коэффициентов изменения состояния. Если количество состояний изменяет с периода t – 1 к t, то mtm t – 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 = At x t –1 + Bt ut.

Для независимых от времени моделей в пространстве состояний задайте 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 |xt) = Ct x t.

Для независимых от времени моделей в пространстве состояний задайте 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 = Ct x t + Dt εt.

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

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

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

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

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

ssm устанавливает все начальные отклонения рассеянных состояний в DSSMMdl.Cov0 от Inf до 1e7. Любые рассеянные состояния с отклонением кроме Inf сохраняют свои значения.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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) = At x t –1.

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

Для изменяющихся во времени моделей в пространстве состояний A является T - размерный массив ячеек, где A{t} содержит mt-by-mt – 1 матрица коэффициентов изменения состояния. Если количество состояний изменяет с периода t – 1 к t, то mtm t – 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 = At x t –1 + Bt ut.

Для независимых от времени моделей в пространстве состояний 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 |xt) = Ct x t.

Для независимых от времени моделей в пространстве состояний 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 = Ct x t + Dt εt.

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

Для изменяющихся во времени моделей в пространстве состояний 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

Методы

dispОтобразите итоговую информацию для модели в пространстве состояний
оценкаОценка параметра наибольшего правдоподобия моделей в пространстве состояний
фильтрПередайте рекурсию моделей в пространстве состояний
прогнозПредскажите состояния и наблюдения за моделями в пространстве состояний
совершенствоватьСовершенствуйте начальные параметры, чтобы помочь оценке модели в пространстве состояний
simsmoothБолее сглаженная симуляция модели в пространстве состояний
моделироватьСимуляция Монте-Карло моделей в пространстве состояний
сглаженныйОбратная рекурсия моделей в пространстве состояний

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

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

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

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


% 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;
DSSMMdl = dssm(A,B,C,D)
DSSMMdl = 
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 

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

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

Mdl = ssm(DSSMMdl)
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 и DSSMMdl эквивалентны, за исключением того, что отклонением начального состояния состояния в Mdl является 1e7.

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

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

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

fMdl = filter(Mdl,y);
fDSSMMdl = filter(DSSMMdl,y);
sMdl = smooth(Mdl,y);
sDSSMMdl = smooth(DSSMMdl,y);

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

figure;
plot(1:T,y,'-o',1:T,fMdl,'-d',1:T,fDSSMMdl,'-*');
legend('Simulated Data','Filtered States -- Mdl','Filtered States -- DSSMMdl');

figure;
plot(1:T,y,'-o',1:T,sMdl,'-d',1:T,sDSSMMdl,'-*');
legend('Simulated Data','Smoothed States -- Mdl','Smoothed States -- DSSMMdl');

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