ssm class

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

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

Описание

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

Вы можете:

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

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

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

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

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

Если вы задали модель:

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

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

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

    • forecast получить предсказанные состояния и наблюдения

    • smooth реализовать обратную рекурсию и получить сглаживавшие оценки

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

  • ssm регрессия поддержек внешних предикторов. Чтобы включать компонент регрессии, который выкачивает наблюдения, смотрите estimateфильтр, 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) то, что вы пишете. Функция сопоставляет вектор параметров к матрицам AB, и 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 должна быть функция, которая берет по крайней мере один входной параметр и возвращает по крайней мере три выходных аргумента. Необходимый входной параметр является вектором неизвестных параметров, и необходимые выходные аргументы соответствуют содействующим матрицам AB, и 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 должен возвратить AB, и 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 имя аргумента и 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 задает ABCD, и, опционально, 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 сопоставьте с матрицами модели в пространстве состояний, значениями начального состояния и типом состояния. Символически, модель

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


% Copyright 2015 The MathWorks, Inc.

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

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

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

Mdl = ssm(@timeInvariantParamMap);

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

Если вы оцениваете, фильтруете или сглаживаете рассеянную модель в пространстве состояний, содержащую по крайней мере одно рассеянное состояние, то программное обеспечение использует рассеянный Фильтр Калмана. Чтобы использовать стандартный Фильтр Калмана вместо этого, преобразуйте рассеянную модель в пространстве состояний в стандартную модель в пространстве состояний. 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;
plot(1:T,y,'-o',1:T,sY,'-d',1:T,sDY,'-*');
legend('Simulated Data','Smoothed States -- Mdl','Smoothed States -- MdlDSSM');

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

Больше о

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

Советы

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

  • Значения начального состояния являются параметрами.

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

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

Алгоритмы

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

    • Если вы явным образом задаете модель в пространстве состояний (то есть, вы предоставляете содействующим матрицам ABC, и опционально 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.

Для просмотра документации необходимо авторизоваться на сайте