класс dssm

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

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

Описание

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

Вы можете:

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

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

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

    • Явным образом путем обеспечения матриц

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

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

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

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

  • Предскажите состояния или наблюдения с помощью forecast.

Конструкция

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

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

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

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

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

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

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

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

Матрица коэффициентов изменения состояния, At, задает, как состояния, xt, как ожидают, перейдут с периода t – 1 к t, для всего t = 1..., T. Таким образом, ожидаемым уравнением изменения состояния в период t является E (xt |xt–1) = 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 = 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® Workspace прежде, чем задать модель.

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

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

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

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

dssm устанавливает все начальные отклонения рассеянных состояний в SSMMdl.Cov0 к 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 после оценки.

Диагональные элементы 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

Методы

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

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

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

Примеры

свернуть все

Создайте рассеянную модель в пространстве состояний, содержащую два независимых государства, 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];

Значения 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 isinf.

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

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

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


% 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];
SSMMdl = ssm(A,B,C,D,'StateType',StateType)
SSMMdl = 
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 

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

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

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

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

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

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

fSSMMdl = filter(SSMMdl,y);
fMdl = filter(Mdl,y);
sSSMMdl = smooth(SSMMdl,y);
sMdl = smooth(Mdl,y);

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

figure;
subplot(2,1,1)
plot(1:T,y(:,1),'-o',1:T,fSSMMdl(:,1),'-d',1:T,fMdl(:,1),'-*');
title('Filtered States for x_{1,t}')
legend('Simulated Data','Filtered States -- SSMMdl','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,1),'-o',1:T,sSSMMdl(:,1),'-d',1:T,sMdl(:,1),'-*');
title('Smoothed States for x_{1,t}')
legend('Simulated Data','Smoothed States -- SSMMdl','Smoothed States -- Mdl');

figure;
subplot(2,1,1)
plot(1:T,y(:,2),'-o',1:T,fSSMMdl(:,2),'-d',1:T,fMdl(:,2),'-*');
title('Filtered States for x_{2,t}')
legend('Simulated Data','Filtered States -- SSMMdl','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,2),'-o',1:T,sSSMMdl(:,2),'-d',1:T,sMdl(:,2),'-*');
title('Smoothed States for x_{2,t}')
legend('Simulated Data','Smoothed States -- SSMMdl','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] Дербин Дж. и С. Дж. Купмен. Анализ Временных рядов Методами Пространства состояний. 2-й редактор Оксфорд: Издательство Оксфордского университета, 2012.

Введенный в R2015b