exponenta event banner

simsmooth

Класс: ssm

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

Описание

пример

X = simsmooth(Mdl,Y) возвращает смоделированные состояния (X) путем применения более плавного моделирования к инвариантной во времени или изменяющейся во времени модели состояния-пространства (Mdl) и ответы (Y). То есть программное обеспечение использует прямую фильтрацию и обратную выборку для получения одного случайного пути из заднего распределения состояний.

пример

X = simsmooth(Mdl,Y,Name,Value) возвращает моделируемые состояния с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары.

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

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

Стандартная модель пространства состояния, заданная какssm объект модели, возвращенный ssm или estimate. Стандартная модель состояния-пространства имеет элементы матрицы ковариации конечного начального состояния. То есть Mdl не может быть dssm объект модели.

Если Mdl не полностью указан (то есть Mdl содержит неизвестные параметры), затем задайте значения для неизвестных параметров с помощью 'Params' Name,Value парный аргумент. В противном случае программа выдает ошибку.

Наблюдаемые данные ответа, на которые Mdl аппроксимируется, задается как числовая матрица или вектор ячейки числовых векторов.

  • Если Mdl инвариантно ли время по отношению к уравнению наблюдения, то Y является матрицей T-by-n, где каждая строка соответствует периоду, а каждый столбец соответствует конкретному наблюдению в модели. T - размер выборки, m - количество наблюдений за период. Последняя строка Y содержит последние наблюдения.

  • Если Mdl является временем, изменяющимся по отношению к уравнению наблюдения, то Y является вектором T-by-1 клеток. Каждый элемент клеточного вектора соответствует периоду и содержит nt-мерный вектор наблюдений за этим периодом. Соответствующие размеры матриц коэффициентов в Mdl.C{t} и Mdl.D{t} должны согласовываться с матрицей в Y{t} для всех периодов. Последняя ячейка Y содержит последние наблюдения.

NaN элементы указывают на отсутствие наблюдений. Дополнительные сведения о том, как фильтр Калмана учитывает отсутствующие наблюдения, см. в разделе Алгоритмы.

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

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

Число выходных аргументов функции сопоставления «параметр-матрица» для неявно определенных моделей «состояние-пространство», указанных как пара, разделенная запятыми, состоящая из 'NumOut' и положительное целое число.

Если неявно определить модель состояния-пространства и не предоставить NumOut, то программное обеспечение автоматически обнаруживает количество выходных аргументов функции преобразования параметра в матрицу. Такое обнаружение требует дополнительных ресурсов и может замедлить моделирование.

Для явно определенных моделей программное обеспечение игнорирует NumOut и отображает предупреждающее сообщение.

Количество путей выборки для создания вариантов, указанных как пара, разделенная запятыми, состоящая из 'NumPaths' и положительное целое число.

Пример: 'NumPaths',1000

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

Значения неизвестных параметров в модели state-space, указанной как разделенная запятыми пара, состоящая из 'Params' и числовой вектор.

Элементы Params соответствуют неизвестным параметрам в матрицах модели state-space A, B, C, и Dи, необязательно, начальное состояние означает Mean0 и ковариационная матрица Cov0.

  • При создании Mdl явно (то есть путем указания матриц без функции преобразования параметра в матрицу), то программное обеспечение отображает элементы Params кому NaNs в матрицах модели state-space и исходных значениях состояний. Программное обеспечение выполняет поиск NaNs по столбцам после заказа A, B, C, D, Mean0, и Cov0.

  • При создании Mdl неявно (то есть путем задания матриц с функцией отображения «параметр-матрица»), необходимо задать начальные значения параметров для матриц модели «состояние-пространство», начальные значения состояний и типы состояний в функции отображения «параметр-матрица».

Если Mdl содержит неизвестные параметры, затем необходимо указать их значения. В противном случае программное обеспечение игнорирует значение Params.

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

Порог неопределенности прогноза, указанный как пара, разделенная запятыми, состоящая из 'Tolerance' и неотрицательный скаляр.

Если неопределенность прогноза для конкретного наблюдения меньше, чем Tolerance в процессе численной оценки программное обеспечение удаляет неопределенность, соответствующую наблюдению, из матрицы ковариации прогноза перед его инверсией.

Рекомендуется устанавливать Tolerance в малое число, например, le-15, для преодоления численных препятствий при оценке.

Пример: 'Tolerance',le-15

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

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

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

Моделируемые состояния, возвращаемые как числовая матрица или клеточная матрица векторов.

Если Mdl является инвариантной по времени моделью относительно состояний, то X является numObs-by-m-by-numPaths массив. То есть каждая строка соответствует периоду, каждый столбец соответствует состоянию в модели, и каждая страница соответствует пути образца. Последняя строка соответствует последним моделируемым состояниям.

Если Mdl является изменяющейся во времени моделью в отношении состояний, то X является numObsоколо-numPaths клеточная матрица векторов. X{t,j} содержит вектор длины mt моделируемых состояний для периода t пути j выборки. Последняя строка X содержит последний набор моделируемых состояний.

Примеры

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

Предположим, что скрытый процесс является моделью AR (1). Уравнение состояния

xt = 0 .5xt-1 + ut,

где ut - гауссов со средним значением 0 и стандартным отклонением 1.

Создайте случайную серию из 100 наблюдений из xt, предполагая, что серия начинается с 1.5.

T = 100;
ARMdl = arima('AR',0.5,'Constant',0,'Variance',1);
x0 = 1.5;
rng(1); % For reproducibility
x = simulate(ARMdl,T,'Y0',x0);

Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения

yt = xt + αt,

где αt - гауссов со средним значением 0 и стандартным отклонением 0,75. В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства.

Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.

y = x + 0.75*randn(T,1);

Укажите четыре матрицы коэффициентов.

A = 0.5;
B = 1;
C = 1;
D = 0.75;

Укажите модель state-space с помощью матриц коэффициентов.

Mdl = ssm(A,B,C,D)
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) = (0.50)x1(t-1) + u1(t)

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

Initial state distribution:

Initial state means
 x1 
  0 

Initial state covariance matrix
     x1   
 x1  1.33 

State types
     x1     
 Stationary 

Mdl является ssm модель. Убедитесь, что модель правильно задана с помощью отображения в окне команд. Программное обеспечение делает вывод, что процесс состояния является стационарным. Впоследствии программное обеспечение устанавливает среднее начальное состояние и ковариацию на среднее и дисперсию стационарного распределения модели AR (1).

Моделирование одного пути для каждого из состояний и наблюдений. Укажите, что пути охватывают 100 периодов.

simX = simsmooth(Mdl,y);

simX - вектор смоделированных состояний «100 на 1».

Постройте график значений истинного состояния с моделируемыми состояниями.

figure;
plot(1:T,x,'-k',1:T,simX,':r','LineWidth',2);
title 'True State Values and Simulated States';
xlabel 'Period';
ylabel 'State';
legend({'True state values','Simulated state values'});

Figure contains an axes. The axes with title True State Values and Simulated States contains 2 objects of type line. These objects represent True state values, Simulated state values.

По умолчанию simulate моделирует один путь для каждого состояния в модели state-space. Чтобы провести исследование Монте-Карло, укажите, чтобы смоделировать большое количество путей с помощью 'NumPaths' аргумент пары имя-значение.

simsmooth функция извлекает случайные выборки из распределения сглаженных состояний или распределения состояния, заданного всеми данными и параметрами. Это определение заднего распределения состояния. Предположим, что скрытый процесс является AR (1). Уравнение состояния

xt = 0 .5xt-1 + ut,

где ut - гауссов со средним значением 0 и стандартным отклонением 1.

Создайте случайную серию из 100 наблюдений из xt, предполагая, что серия начинается с 1.5.

T = 100;
ARMdl = arima('AR',0.5,'Constant',0,'Variance',1);
x0 = 1.5;
rng(1); % For reproducibility
x = simulate(ARMdl,T,'Y0',x0);

Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения

yt = xt + αt,

где αt - гауссов со средним значением 0 и стандартным отклонением 0,75. В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства.

Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.

y = x + 0.75*randn(T,1);

Укажите четыре матрицы коэффициентов.

A = 0.5;
B = 1;
C = 1;
D = 0.75;

Укажите модель state-space с помощью матриц коэффициентов.

Mdl = ssm(A,B,C,D);

Сглаживание состояний модели пространства состояния.

xsmooth = smooth(Mdl,y);

Нарисуйте 1000 путей из заднего распределения x1.

N = 1000;
SimX = simsmooth(Mdl,y,'NumPaths',N);

SimX является 100около- 1около- 1000 массив. Строки соответствуют периодам, столбцы - отдельным состояниям, листья - отдельным путям.

Поскольку SimX имеет одиночный размер, свернуть его так, чтобы его листья соответствовали столбцам с помощью squeeze.

SimX = squeeze(SimX);

Вычислите среднее значение, стандартное отклонение и 95% доверительные интервалы состояния в каждом периоде.

xbar = mean(SimX,2);
xstd = std(SimX,[],2);
ci = [xbar - 1.96*xstd, xbar + 1.96*xstd];

Постройте график сглаженных состояний и средних и 95% доверительных интервалов розыгрышей в каждом периоде.

figure;
plot(xsmooth,'k','LineWidth',2);
hold on;
plot(xbar,'--r','LineWidth',2);
plot(1:T,ci(:,1),'--r',1:T,ci(:,2),'--r');
legend('Smoothed states','Simulation Mean','95% CIs');
title('Smooth States and Simulation Statistics');
xlabel('Period')

Figure contains an axes. The axes with title Smooth States and Simulation Statistics contains 4 objects of type line. These objects represent Smoothed states, Simulation Mean, 95% CIs.

Подробнее

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

Алгоритмы

Для увеличения скорости в моделирующих состояниях в моделировании сглаживание реализует минимальную проверку ошибок размерности. Поэтому для моделей с неизвестными значениями параметров необходимо обеспечить согласованность размеров данных и размеров матриц коэффициентов.

Ссылки

[1] Дурбин Дж., и С. Дж. Копман. «Простое и эффективное сглаживание для анализа временных рядов пространства состояния». Биометрика. т. 89., № 3, 2002, стр. 603-615.

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