dssm class

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

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

Описание

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

$$\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) к отклонению начального состояния всех рассеянных состояний в стандартной модели в пространстве состояний. Используя эту спецификацию, программное обеспечение впоследствии оценивает, фильтрует и сглаживает стандартную модель в пространстве состояний с помощью стандартного Фильтра Калмана. Стандартная обработка модели в пространстве состояний является приближением к результатам анализа, который обрабатывает рассеянные состояния с помощью бесконечного отклонения. Чтобы реализовать рассеянный Фильтр Калмана вместо этого, преобразуйте стандартную модель в пространстве состояний в рассеянную модель в пространстве состояний. Это преобразование приписывает бесконечное отклонение всем рассеянным состояниям.

Явным образом создайте двумерную стандартную модель в пространстве состояний. Укажите, что первое уравнение состояния x1,t=x1,t-1+u1,t и что второе уравнение состояния x2,t=0.2x2,t-1+u2,t. Укажите, что первое уравнение наблюдения y1,t=x1,t+ε1,t и что второе уравнение наблюдения y2,t=x2,t+ε2,t. Укажите, что состояния являются рассеянными и неустановившимися, соответственно.

A = [1 0; 0 0.2];   
B = [1 0; 0 1]; 
C = [1 0;0 1]; 
D = [1 0; 0 1];
StateType = [2 0];
MdlSSM = ssm(A,B,C,D,'StateType',StateType)
MdlSSM = 
State-space model type: ssm

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

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

State equations:
x1(t) = x1(t-1) + u1(t)
x2(t) = (0.20)x2(t-1) + u2(t)

Observation equations:
y1(t) = x1(t) + e1(t)
y2(t) = x2(t) + e2(t)

Initial state distribution:

Initial state means
 x1  x2 
  0   0 

Initial state covariance matrix
     x1        x2   
 x1  1.00e+07   0   
 x2   0        1.04 

State types
    x1        x2     
 Diffuse  Stationary 

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

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

Mdl = dssm(MdlSSM)
Mdl = 
State-space model type: dssm

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

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

State equations:
x1(t) = x1(t-1) + u1(t)
x2(t) = (0.20)x2(t-1) + u2(t)

Observation equations:
y1(t) = x1(t) + e1(t)
y2(t) = x2(t) + e2(t)

Initial state distribution:

Initial state means
 x1  x2 
  0   0 

Initial state covariance matrix
     x1   x2   
 x1  Inf   0   
 x2  0    1.04 

State types
    x1        x2     
 Diffuse  Stationary 

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

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

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

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

fY = filter(MdlSSM,y);
fYD = filter(Mdl,y);
sY = smooth(MdlSSM,y);
sYD = smooth(Mdl,y);

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

figure;
subplot(2,1,1)
plot(1:T,y(:,1),'-o',1:T,fY(:,1),'-d',1:T,fYD(:,1),'-*');
title('Filtered States for x_{1,t}')
legend('Simulated Data','Filtered States -- MdlSSM','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,1),'-o',1:T,sY(:,1),'-d',1:T,sYD(:,1),'-*');
title('Smoothed States for x_{1,t}')
legend('Simulated Data','Smoothed States -- MdlSSM','Smoothed States -- Mdl');

figure;
subplot(2,1,1)
plot(1:T,y(:,2),'-o',1:T,fY(:,2),'-d',1:T,fYD(:,2),'-*');
title('Filtered States for x_{2,t}')
legend('Simulated Data','Filtered States -- MdlSSM','Filtered States -- Mdl');
subplot(2,1,2)
plot(1:T,y(:,2),'-o',1:T,sY(:,2),'-d',1:T,sYD(:,2),'-*');
title('Smoothed States for x_{2,t}')
legend('Simulated Data','Smoothed States -- MdlSSM','Smoothed States -- Mdl');

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

Больше о

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

Советы

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

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

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

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

  • Можно создать dssm объект модели, который не содержит рассеянных состояний. Однако последующие расчеты, например, фильтруя и оценка параметра, могут быть неэффективными. Если все состояния имеют стационарные распределения или являются постоянным 1, то создают ssm объект модели вместо этого.

Алгоритмы

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

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

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