exponenta event banner

ssm класс

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

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

Описание

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

Вы можете:

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

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

  • Укажите матрицы «состояние-переход», «состояние-возмущение-нагрузка», «измерение-чувствительность» или «наблюдение-инновация»:

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

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

После указания модели:

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

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

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

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

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

    • simulate для моделирования состояний и наблюдений из модели state-space

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

Строительство

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

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

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

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

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

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

Входные аргументы

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

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

Матрица коэффициентов перехода состояния, At, определяет, как ожидается переход состояний xt от периода t-1 к t для всех t = 1,...,T. То есть ожидаемое уравнение состояния-перехода в периоде t равно E (xt 'xt-1) = Atxt-1.

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

Для моделей с изменяющимся во времени состоянием и пространством укажите A в виде массива Т-мерных ячеек, где A{t} содержит матрицу коэффициентов перехода состояния mt-by-mt-1. Если число состояний изменяется с периода t - 1 на t, то mtmt - 1.

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели state-space. 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 = Atxt-1 + Btut.

Для инвариантных по времени моделей «состояние-пространство» укажите B как матрица m-на-k, где m - число состояний, а k - число возмущений состояния за период. B*B' - ковариационная матрица состояния-возмущения для всех периодов.

Для моделей с изменяющимся во времени состоянием и пространством укажите B в виде массива Т-мерных ячеек, где B{t} содержит матрицу коэффициентов mt-by-kt состояния-возмущения-нагрузки. Если количество состояний или нарушений состояния изменяется в периоде t, то размеры матрицы между B{t-1} и B{t} различаются. B{t}*B{t}' - ковариационная матрица состояния-возмущения для периода t.

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели state-space. 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) = Ctxt.

Для инвариантных по времени моделей «состояние-пространство» укажите C как матрица n-by-m, где n - число наблюдений, а m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством укажите C в виде массива Т-мерных ячеек, где C{t} содержит матрицу измерительно-чувствительного коэффициента nt-by-mt. Если число состояний или наблюдений изменяется в периоде t, то размеры матрицы между C{t-1} и C{t} различаются.

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели state-space. 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 = Ctxt + Dtαt.

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

Для моделей с изменяющимся во времени состоянием и пространством укажите D в виде массива Т-мерных ячеек, где D{t} содержит матрицу nt-by-ht. Если количество наблюдений или инноваций наблюдений изменяется в период t, то размеры матрицы между D{t-1} и D{t} различаются. D{t}*D{t}' является матрицей ковариации наблюдения и инноваций для периода t.

NaN значения в любой матрице коэффициентов указывают уникальные, неизвестные параметры в модели state-space. 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соответственно. Если для функции сопоставления параметра требуется только аргумент вектора входного параметра, то неявно создайте модель state-space, введя следующее:

Mdl = ssm(@ParamMap)

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

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

В этом общем случае создайте модель state-space путем ввода

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

Однако:

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

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

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

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

    Mdl = ssm(@(params)ParamFun(params,y,z))

  • Для необязательных выходных аргументов D, Mean0, Cov0, StateType, и DeflateY:

    • Необязательные выходные аргументы соответствуют матрице коэффициентов наблюдения и инноваций D и аргументы пары имя-значение Mean0, Cov0, и StateType.

    • Чтобы пропустить указание необязательного выходного аргумента, задайте для аргумента значение [] в теле функции. Например, пропустить указание D, затем установить D = []; в функции.

    • DeflateY - данные дефлированного наблюдения, которые вмещают компонент регрессии в уравнение наблюдения. Например, в этой функции, которая имеет компонент линейной регрессии, Y - вектор наблюдаемых ответов и Z - вектор данных предиктора.

      function [A,B,C,D,Mean0,Cov0,StateType,DeflateY] = ParamFun(params,Y,Z)
      	...
      	DeflateY = Y - params(9) - params(10)*Z;
      	...
      end

    • Для значений по умолчанию Mean0, Cov0, и StateType, см. Алгоритмы.

  • Передовой практикой является:

    • Загрузите данные в рабочую область MATLAB ® перед заданием модели.

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

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

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

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

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

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

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

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

Начальное значение состояния для явного создания модели состояния-пространства, указанное как пара, разделенная запятыми, состоящая из 'Mean0' и числовой вектор с длиной, равной числу начальных состояний. Значения по умолчанию см. в разделе Алгоритмы.

При указании ParamMap, то вы не можете указать Mean0. Вместо этого укажите начальное значение состояния в функции преобразования параметра в матрицу.

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

Матрица ковариации начального состояния для явного создания модели состояния-пространства, заданная как пара, разделенная запятыми, состоящая из 'Cov0' и квадратную матрицу с размерами, равными числу начальных состояний. Значения по умолчанию см. в разделе Алгоритмы.

При указании ParamMap, то вы не можете указать Cov0. Вместо этого укажите ковариацию начального состояния в функции отображения параметра в матрицу.

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

Индикатор распределения начального состояния для явного создания модели «состояние-пространство», указанный как пара, разделенная запятыми, состоящая из 'StateType' и числовой вектор с длиной, равной числу начальных состояний. В этой таблице представлены доступные типы распределения начальных состояний.

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

Например, предположим, что уравнение состояния имеет две переменные состояния: первая переменная состояния является процессом AR (1), а вторая переменная состояния является случайной прогулкой. Укажите начальные типы распределения с помощью параметра'StateType',[0; 2].

При указании ParamMap, то вы не можете указать Mean0. Вместо этого укажите индикатор распределения начального состояния в функции преобразования параметра в матрицу.

Значения по умолчанию см. в разделе Алгоритмы.

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

Свойства

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

Матрица коэффициентов перехода состояния для явно созданных моделей пространства состояния, заданная как матрица, вектор ячейки матриц или пустой массив ([]). Для неявно созданных моделей пространства состояний и до оценки, A является [] и только для чтения.

Матрица коэффициентов перехода состояния, At, определяет, как ожидается переход состояний xt от периода t-1 к t для всех t = 1,...,T. То есть ожидаемое уравнение состояния-перехода в периоде t равно E (xt 'xt-1) = Atxt-1.

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

Для моделей с изменяющимся во времени состоянием и пространством, A - массив Т-мерных ячеек, где A{t} содержит матрицу коэффициентов перехода состояния mt-by-mt-1. Если число состояний изменяется с периода t - 1 на t, то mtmt - 1.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. 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 = Atxt-1 + Btut.

Для инвариантных по времени моделей «состояние-пространство» B - матрица m-на-k, где m - число состояний, а k - число возмущений состояния за период. B*B' - ковариационная матрица состояния-возмущения для всех периодов.

Для моделей с изменяющимся во времени состоянием и пространством, B - массив Т-мерных ячеек, где B{t} содержит матрицу коэффициентов mt-by-kt состояния-возмущения-нагрузки. Если количество состояний или нарушений состояния изменяется в периоде t, то размеры матрицы между B{t-1} и B{t} различаются. B{t}*B{t}' - ковариационная матрица состояния-возмущения для периода t.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. 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) = Ctxt.

Для инвариантных по времени моделей «состояние-пространство» C - матрица n-by-m, где n - число наблюдений, а m - число состояний за период.

Для моделей с изменяющимся во времени состоянием и пространством, C - массив Т-мерных ячеек, где C{t} содержит матрицу измерительно-чувствительного коэффициента nt-by-mt. Если число состояний или наблюдений изменяется в периоде t, то размеры матрицы между C{t-1} и C{t} различаются.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. 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 = Ctxt + Dtαt.

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

Для моделей с изменяющимся во времени состоянием и пространством, D - массив Т-мерных ячеек, где D{t} содержит матрицу nt-by-ht. Если количество наблюдений или инноваций наблюдений изменяется в период t, то размеры матрицы между D{t-1} и D{t} различаются. D{t}*D{t}' - ковариационная матрица состояния-возмущения для периода t.

NaN значения в любой матрице коэффициентов указывают неизвестные параметры в модели state-space. 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 полностью задает структуру модели state-space. То есть ParamMap определяет A, B, C, D, и, необязательно, Mean0, Cov0, и StateType. Для явно созданных моделей пространства состояний, ParamMap является [] и только для чтения.

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

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

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

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

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

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

Примеры

свернуть все

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

[xt, 1xt, 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] = [

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

Определите матрицу состояния-перехода.

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 сопоставить с матрицами модели state-space, начальными значениями состояния и типом состояния. Символично, что модель

$$\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 неявно создает модель state-space. Обычно неявно определенные модели пространства состояний проверить невозможно.

При оценке, фильтрации или сглаживании модели диффузного состояния-пространства, содержащей хотя бы одно диффузное состояние, программа использует диффузный фильтр Калмана. Чтобы использовать вместо этого стандартный фильтр Калмана, преобразуйте модель диффузного состояния-пространства в стандартную модель состояния-пространства. ssm приписывает большое отклонение начального состояния (1e7) для диффузных состояний. Стандартная обработка модели состояния-пространства приводит к аппроксимации результатов диффузного фильтра Калмана. Однако estimate использует все данные в соответствии с моделью, и filter и smooth возвращаемые отфильтрованные и сглаженные оценки для всех периодов соответственно.

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

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

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

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

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

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1  
 x1  Inf 

State types
    x1   
 Diffuse 

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

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

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

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

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

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

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1    
 x1  1e+07 

State types
    x1   
 Diffuse 

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

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

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

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

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

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

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

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

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

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

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

Подробнее

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

Совет

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

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

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

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

Алгоритмы

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

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

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

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

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

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

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

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

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

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

  • Предположим, что требуется создать модель state-space с помощью функции сопоставления «параметр-матрица» со следующей сигнатурой:

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

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

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

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

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

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

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

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

Ссылки

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