Класс: ssm
Сглаживание модели пространства состояния
возвращает смоделированные состояния (X = simsmooth(Mdl,Y)X) путем применения более плавного моделирования к инвариантной во времени или изменяющейся во времени модели состояния-пространства (Mdl) и ответы (Y). То есть программное обеспечение использует прямую фильтрацию и обратную выборку для получения одного случайного пути из заднего распределения состояний.
возвращает моделируемые состояния с дополнительными опциями, заданными одним или несколькими X = simsmooth(Mdl,Y,Name,Value)Name,Value аргументы пары.
Mdl - Стандартная модель состояния пространстваssm объект моделиСтандартная модель пространства состояния, заданная какssm объект модели, возвращенный ssm или estimate. Стандартная модель состояния-пространства имеет элементы матрицы ковариации конечного начального состояния. То есть Mdl не может быть dssm объект модели.
Если Mdl не полностью указан (то есть Mdl содержит неизвестные параметры), затем задайте значения для неизвестных параметров с помощью 'Params' Name,Value парный аргумент. В противном случае программа выдает ошибку.
Y - Наблюдаемые данные ответаНаблюдаемые данные ответа, на которые 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, то программное обеспечение автоматически обнаруживает количество выходных аргументов функции преобразования параметра в матрицу. Такое обнаружение требует дополнительных ресурсов и может замедлить моделирование.
Для явно определенных моделей программное обеспечение игнорирует NumOut и отображает предупреждающее сообщение.
'NumPaths' - Количество путей выборки для создания вариантов1 (по умолчанию) | положительное целое числоКоличество путей выборки для создания вариантов, указанных как пара, разделенная запятыми, состоящая из 'NumPaths' и положительное целое число.
Пример: 'NumPaths',1000
Типы данных: double
'Params' - Значения неизвестных параметровЗначения неизвестных параметров в модели 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' - Порог неопределенности прогноза0 (по умолчанию) | неотрицательный скалярПорог неопределенности прогноза, указанный как пара, разделенная запятыми, состоящая из 'Tolerance' и неотрицательный скаляр.
Если неопределенность прогноза для конкретного наблюдения меньше, чем Tolerance в процессе численной оценки программное обеспечение удаляет неопределенность, соответствующую наблюдению, из матрицы ковариации прогноза перед его инверсией.
Рекомендуется устанавливать Tolerance в малое число, например, le-15, для преодоления численных препятствий при оценке.
Пример: 'Tolerance',le-15
Типы данных: double
X - Смоделированные состоянияМоделируемые состояния, возвращаемые как числовая матрица или клеточная матрица векторов.
Если Mdl является инвариантной по времени моделью относительно состояний, то X является numObs-by-m-by-numPaths массив. То есть каждая строка соответствует периоду, каждый столбец соответствует состоянию в модели, и каждая страница соответствует пути образца. Последняя строка соответствует последним моделируемым состояниям.
Если Mdl является изменяющейся во времени моделью в отношении состояний, то X является numObsоколо-numPaths клеточная матрица векторов. X{t,j} содержит вектор длины mt моделируемых состояний для периода t пути j выборки. Последняя строка X содержит последний набор моделируемых состояний.
Предположим, что скрытый процесс является моделью AR (1). Уравнение состояния
+ ut,
где - гауссов со средним значением 0 и стандартным отклонением 1.
Создайте случайную серию из 100 наблюдений из , предполагая, что серия начинается с 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);
Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения
α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'});

По умолчанию simulate моделирует один путь для каждого состояния в модели state-space. Чтобы провести исследование Монте-Карло, укажите, чтобы смоделировать большое количество путей с помощью 'NumPaths' аргумент пары имя-значение.
simsmooth функция извлекает случайные выборки из распределения сглаженных состояний или распределения состояния, заданного всеми данными и параметрами. Это определение заднего распределения состояния. Предположим, что скрытый процесс является AR (1). Уравнение состояния
+ ut,
где - гауссов со средним значением 0 и стандартным отклонением 1.
Создайте случайную серию из 100 наблюдений из , предполагая, что серия начинается с 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);
Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения
α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 путей из заднего распределения .
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')

Сглаживание моделирования представляет собой алгоритм для извлечения выборок из условного, совместного, заднего распределения состояний с учетом полного наблюдаемого ряда ответов. Эти случайные розыгрыши можно использовать для моделирования оценщиков.
Для одномерной, инвариантной по времени модели «состояние-пространство» более плавный алгоритм моделирования выполняет следующие шаги.
Получение сглаженных состояний (., T) с помощью фильтра Калмана.
Выбирает среднее начальное состояние и значения дисперсии. Нарисуйте начальное случайное состояние из гауссова распределения со средним начальным состоянием и дисперсией.
Случайным образом генерирует нарушения Т-состояния и инновации наблюдения из стандартного нормального распределения. Обозначьте случайные варианты в течение периода t и , соответственно.
Создание случайных наблюдений и состояний путем вставки и в модель состояния-пространства
Получение сглаженных состояний () путем применения фильтра Калмана к модели состояния-пространства с использованием серии наблюдений .
Получает случайный путь сглаженных состояний из заднего распределения с помощью
Для получения дополнительной информации см. [1].
Для увеличения скорости в моделирующих состояниях в моделировании сглаживание реализует минимальную проверку ошибок размерности. Поэтому для моделей с неизвестными значениями параметров необходимо обеспечить согласованность размеров данных и размеров матриц коэффициентов.
[1] Дурбин Дж., и С. Дж. Копман. «Простое и эффективное сглаживание для анализа временных рядов пространства состояния». Биометрика. т. 89., № 3, 2002, стр. 603-615.
[2] Дурбин Дж., и С. Дж. Копман. Анализ временных рядов по методам пространства состояний. 2-й ред. Оксфорд: Oxford University Press, 2012.
estimate | filter | simulate | smooth | ssm
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.