exponenta event banner

поправка

Предполагаемые моделью временные корреляции модели «состояние-пространство»

Описание

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

  • Функция импульсной характеристики (IRF), вычисленная irf и нанесено на график irfplot, отслеживает влияние шока на нарушение состояния на переменные измерения в системе.

  • Декомпозиция дисперсии ошибки прогноза (FEVD), вычисленная по fevd, предоставляет информацию об относительной важности каждого нарушения состояния в влиянии на дисперсию ошибки прогноза для всех переменных измерения в системе.

Полностью заданная модель состояния-пространства

пример

Cyy = corr(Mdl) возвращает Corr (yt, yt - 1), подразумеваемую моделью временную корреляцию каждой переменной измерения полностью заданной стандартной модели стационарного состояния-пространстваMdl.

пример

Cyy = corr(Mdl,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами «» имя-значение «». Например, 'Covariance',true,'NumLags',10 определяет возвращаемые временные ковариации Cov (yt, yt - h), h = от 0 до 10.

пример

[Cyy,Cxx,Cyx] = corr(___) также возвращает Corr (xt, xt - h), корреляции между переменными состояния и их самооценкамиCxxи Corr (yt, xt - h), корреляции между переменными состояния и их собственными лагамиCxx и перекрестные корреляции между переменными измерения и запаздываниями переменных состояния Cyx используя любую из комбинаций входных аргументов в предыдущих синтаксисах. h - значение NumLags аргумент «имя-значение». corr возвращает ковариации, когда значение Covariance аргумент «имя-значение» имеет значение true.

Частично указанная модель состояния-пространства

пример

[Cyy,Cxx,Cyx] = corr(___,'Params',estParams) использует частично заданную стандартную модель пространства состояния Mdl и заменяет оценки параметров estParams для всех неизвестных параметров в модели.

Примеры

свернуть все

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

x1, t = 0 .9x1, t-1 + 0 .2u1, tx2, t = 0 .1x1, t-1 + 0 .3x2, t-1 + u2, ty1, t = x1, ty2, t = x1, t + x2, t.

A = [0.9 0; 0.1 0.3];
B = [0.2 0; 0 1];
C = [1 0; 1 1];
Mdl = ssm(A,B,C,'StateType',[0 0])
Mdl = 
State-space model type: ssm

State vector length: 2
Observation vector length: 2
State disturbance vector length: 2
Observation innovation vector length: 0
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.90)x1(t-1) + (0.20)u1(t)
x2(t) = (0.10)x1(t-1) + (0.30)x2(t-1) + u2(t)

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

Initial state distribution:

Initial state means
 x1  x2 
  0   0 

Initial state covariance matrix
     x1    x2   
 x1  0.21  0.03 
 x2  0.03  1.10 

State types
     x1          x2     
 Stationary  Stationary 

Mdl является ssm объект модели. Поскольку все параметры имеют известные значения, объект полностью указан.

Вычислите временные корреляции измеряемых переменных через запаздывание 1.

Cyy = corr(Mdl)
Cyy = 
Cyy(:,:,1) =

    1.0000    0.4411
    0.9000    0.4072


Cyy(:,:,2) =

    0.4411    1.0000
    0.3970    0.4212

Строки соответствуют запаздыванию, столбцы соответствуют последнему наблюдению переменной измерения в корреляции, а страницы соответствуют запаздывающей переменной измерения. Например, Corr (y1, ty2, t-1) 0.3970.

Отображение тепловой карты временных корреляций между последним наблюдением каждой переменной измерения и всеми лагами переменной измерения 1.

Corryy1 = Cyy(:,:,1);
hm = heatmap(Corryy1);
ylabel('h');
hm.YDisplayLabels = ["0" "1"];
xlabel('i')
hm.XDisplayLabels = ["1" "2"];
title('Corr(y_{i,t},y_{1,t - h})')

Figure contains an object of type heatmap. The chart of type heatmap has title Corr(y_{i,t},y_{1,t - h}).

Отображение тепловой карты временных корреляций между текущим наблюдением переменной измерения 1 и всеми лагами всех переменных измерения.

Corry1y = squeeze(Cyy(:,1,:));
hm = heatmap(Corry1y);
ylabel('h');
hm.YDisplayLabels = ["0" "1"];
xlabel('j')
hm.XDisplayLabels = ["1" "2"];
title('Corr(y_{1,t},y_{j,t - h})')

Figure contains an object of type heatmap. The chart of type heatmap has title Corr(y_{1,t},y_{j,t - h}).

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

Corryylag1 = squeeze(Cyy(2,:,:));
hm = heatmap(Corryylag1);
ylabel('i');
hm.YDisplayLabels = ["1" "2"];
xlabel('j')
hm.XDisplayLabels = ["1" "2"];
title('Corr(y_{i,t},y_{j,t - 1})')

Figure contains an object of type heatmap. The chart of type heatmap has title Corr(y_{i,t},y_{j,t - 1}).

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

x1, t = 0 .9x1, t-1 + 0 .2u1, tx2, t = 0 .1x1, t-1-0.3x2, t-1 + u2, ty1, t = x1, t + α1, ty2, t = x1, t + x2, t + α2, t.

A = [0.9 0; 0.1 -0.3];
B = [0.2 0; 0 1];
C = [1 0; 1 1];
D = eye(2);
Mdl = ssm(A,B,C,D,'StateType',[0 0]);

Mdl является ssm объект модели.

Вычислите временные корреляции измеряемых переменных от запаздывания 0 до 20.

numlags = 20;
Cyy = corr(Mdl,'NumLags',numlags);

Cyy множество 21 на 2 на 2, представляющее временные корреляции с 20 периодами переменных измерения.

Показ Cyy(:,2,2), которая является подразумеваемой моделью автокорреляцией y2, t .

acfy2 = Cyy(:,2,2)
acfy2 = 21×1

    1.0000
   -0.0466
    0.1267
    0.0634
    0.0723
    0.0605
    0.0558
    0.0498
    0.0449
    0.0404
      ⋮

Генерируют случайный путь измерений длины 200 из модели.

rng(1); % For reproducibility
Y = simulate(Mdl,200);

Вычислите выборочную автокорреляционную функцию (ACF) каждой переменной на 2q0 лагов.

sacfy1 = autocorr(Y(:,1),'NumLags',numlags);
sacfy2 = autocorr(Y(:,2),'NumLags',numlags);

Визуально сравните предполагаемую модель и образец ACF каждой переменной измерения.

acfy1 = Cyy(:,1,1);
plot([acfy1 sacfy1])
xticklabels(0:numlags)
ylabel("Autocorrelation")
xlabel("Lags")
legend(["ACF(y_{1,t})" "Sample ACF(y_{1,t})"])
title("ACF(y_{1,t})")
axis tight

Figure contains an axes. The axes with title ACF(y_{1,t}) contains 2 objects of type line. These objects represent ACF(y_{1,t}), Sample ACF(y_{1,t}).

plot([acfy2 sacfy2])
xticklabels(0:numlags)
ylabel("Autocorrelation")
xlabel("Lags")
legend(["ACF(y_{2,t})" "Sample ACF(y_{2,t})"])
title("ACF(y_{2,t})")
axis tight

Figure contains an axes. The axes with title ACF(y_{2,t}) contains 2 objects of type line. These objects represent ACF(y_{2,t}), Sample ACF(y_{2,t}).

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

x1, t = 0 .9x1, t-1 + 0 .2u1, tx2, t = 0 .1x1, t-1-0.3x2, t-1 + u2, ty1, t = x1, t + α1, ty2, t = x1, t + x2, t + α2, t.

A = [0.9 0; 0.1 -0.3];
B = [0.2 0; 0 1];
C = [1 0; 1 1];
D = eye(2);
Mdl = ssm(A,B,C,D,'StateType',[0 0]);

Mdl является ssm объект модели.

Вычислите временные корреляции переменных измерения и состояния, а также их перекрестные корреляции.

[Cyy,Cxx,Cyx] = corr(Mdl);

Каждая выходная переменная - множество 2 на 2 на 2, содержащее временные корреляции от задержки от 0 до 1. Cyy содержит корреляции между измеряемыми переменными, Cxx содержит корреляции между переменными состояния, и Cyx содержит перекрестные корреляции между текущим наблюдением переменных измерения и переменными запаздывающего состояния.

Постройте тепловую карту корреляций между x1, t и лагами всех переменных состояния.

Cx1x = squeeze(Cxx(:,1,:));
hm = heatmap(Cx1x);
ylabel('h');
hm.YDisplayLabels = ["0" "1"];
xlabel('j')
hm.XDisplayLabels = ["1" "2"];
title('Corr(x_{1,t},x_{j,t - h})')

Figure contains an object of type heatmap. The chart of type heatmap has title Corr(x_{1,t},x_{j,t - h}).

Постройте тепловую карту перекрестных корреляций между всеми переменными измерения и лагами x2, t.

Cyx2 = Cyx(:,:,2);
hm = heatmap(Cyx2);
ylabel('h');
hm.YDisplayLabels = ["0" "1"];
xlabel('i')
hm.XDisplayLabels = ["1" "2"];
title('Corr(y_{i,t},x_{2,t - h})')

Figure contains an object of type heatmap. The chart of type heatmap has title Corr(y_{i,t},x_{2,t - h}).

Моделирование данных из известной модели, подгонка модели к данным, а затем сравнение выборки и подразумеваемых моделью ковариаций.

Моделирование данных

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

x1, t = 0 .9x1, t-1 + 0 .2u1, tx2, t = 0 .1x1, t-1-0.3x2, t-1 + u2, ty1, t = x1, t + α1, ty2, t = x1, t + x2, t + α2, t.

ADGP = [0.9 0; 0.1 -0.3];
BDGP = [0.2 0; 0 1];
CDGP = [1 0; 1 1];
DDGP = eye(2);
DGP = ssm(ADGP,BDGP,CDGP,DDGP,'StateType',[0 0]);

Создайте случайный путь измерений длины 500 из модели.

rng(1); % For reproducibility
numobs = 500;
Y = simulate(DGP,numobs);

Подгонка модели к данным

Создание шаблона модели «состояние-пространство» для соответствия данным путем замены каждого ненулевого параметра состояния процесса генерации данных на NaN значение.

A = [NaN 0; NaN NaN];
B = [NaN 0; 0 NaN];
Mdl = ssm(A,B,CDGP,DDGP,'StateType',[0  0]);

Поместите шаблон модели в данные. Укажите случайный набор положительных начальных значений. Возвращает вектор расчетных параметров.

[~,estParams] = estimate(Mdl,Y,abs(rand(5,1)));
Method: Maximum likelihood (fminunc)
Sample size: 500
Logarithmic  likelihood:     -1694.08
Akaike   info criterion:      3398.15
Bayesian info criterion:      3419.23
      |     Coeff       Std Err   t Stat     Prob  
---------------------------------------------------
 c(1) |  0.91506       0.04229   21.63952   0      
 c(2) | -0.25898       0.25406   -1.01936  0.30804 
 c(3) | -0.15383       0.08243   -1.86621  0.06201 
 c(4) | -0.16808       0.04926   -3.41221  0.00064 
 c(5) |  1.19275       0.06842   17.43153   0      
      |                                            
      |   Final State   Std Dev    t Stat    Prob  
 x(1) | -0.12293       0.30568   -0.40217  0.68756 
 x(2) | -0.80608       0.79263   -1.01697  0.30917 

Вычислить ковариации

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

Covyy = corr(Mdl,'Params',estParams,'Covariance',true)
Covyy = 
Covyy(:,:,1) =

    1.1737    0.1376
    0.1589    0.1195


Covyy(:,:,2) =

    0.1376    2.5676
    0.1259   -0.1297

Covyy множество временных ковариаций переменных измерения 2 на 2 на 2.

Вычислите ковариации выборки переменных измерения и их первые задержки.

AugData = lagmatrix(Y,[0 1]);
SCovyy = cov(AugData(2:end,:));

Сравнение ковариаций

Сравните подразумеваемые моделью временные ковариации и ковариации выборки.

names = ["y_1t" "y_2t" "y_1t-1" "y_2t-1"];

Covy1y = squeeze(Covyy(:,1,:))';
Covy2y = squeeze(Covyy(:,2,:))';
CovyLag1 = [Covy1y(:,2) Covy2y(:,2) Covy1y(:,1) Covy2y(:,1)]';
ModelCovariances = array2table([Covy1y(:) Covy2y(:) CovyLag1],'RowNames',names,...
    'VariableNames',names)
ModelCovariances=4×4 table
               y_1t        y_2t      y_1t-1      y_2t-1 
              _______    ________    _______    ________

    y_1t       1.1737     0.13759    0.15891      0.1259
    y_2t      0.13759      2.5676    0.11949    -0.12972
    y_1t-1    0.15891     0.11949     1.1737     0.13759
    y_2t-1     0.1259    -0.12972    0.13759      2.5676

SampleCovariances = array2table(SCovyy,'RowNames',names,'VariableNames',names)
SampleCovariances=4×4 table
                y_1t        y_2t       y_1t-1      y_2t-1 
              ________    ________    ________    ________

    y_1t        1.2459     0.22058     0.11689    0.070475
    y_2t       0.22058      2.5332    0.074687    -0.17466
    y_1t-1     0.11689    0.074687      1.2437     0.22158
    y_2t-1    0.070475    -0.17466     0.22158      2.5419

Подразумеваемые моделью и выборка ковариаций, по-видимому, сходны по величине. Заметим, что ковариации инвариантны опорному времени; например, Cov (y1, t, y2, t) = Cov (y1, t-1, y2, t-1).

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

свернуть все

Стандартная модель стационарного пространства, указанная как ssm объект модели, возвращенный ssm или его estimate функция.

  • Временные моменты хорошо определены для стационарных состояний. Поэтому corr выдает ошибку, если применяется одно или несколько из следующих условий:

    • По крайней мере одно состояние является нестационарным (Mdl.StateType содержит, по крайней мере, одно значение 2).

    • По меньшей мере, один коэффициент изменяется во времени.

    • Переменная измерения или состояния изменяется в размерности.

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

  • Начальная ковариационная матрица Mdl.Cov0 подразумевается уравнением перехода. Поэтому corr игнорирует Mdl.Cov0 и значения, соответствующие Cov0 в значении Params.

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

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

Пример: 'Covariance',true,'NumLags',10 определяет возврат Cov (yt, yt - 10), ковариаций само- и перекрестных запаздываний измеряемых переменных от запаздываний от 0 до 10.

Максимальное число запаздываний переменной состояния или измерения, включаемых в вычисление, указанное как неотрицательное целое число. corr возвращает связи из сегментов от 0 до NumLags.

Пример: 'NumLags',10

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

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

Если Mdl частично указан (содержит неизвестные параметры, указанные NaNs), необходимо указать Params. estimate функция возвращает оценки параметров Mdl в соответствующей форме. Тем не менее, вы можете предоставить пользовательские оценки, упорядочив элементы Params следующим образом:

  • Если Mdl является явно созданной моделью (Mdl.ParamMap пуст []), расположить элементы Params чтобы соответствовать попаданиям поиска по столбцам NaNs в матрицах коэффициентов модели «состояние-пространство», среднем векторе начального состояния и ковариационной матрице.

    • Если Mdl инвариантно ли время, порядок равен A, B, C, D, Mean0, и Cov0.

    • Если Mdl изменяется во времени, порядок A{1} через A{end}, B{1} через B{end}, C{1} через C{end}, D{1} через D{end}, Mean0, и Cov0.

  • Если Mdl является неявно созданной моделью (Mdl.ParamMap является дескриптором функции), первый входной аргумент функции отображения параметра в матрицу определяет порядок элементов Params.

Если Mdl полностью указан, corr игнорирует Params.

Пример: Рассмотрим модель state-space Mdl с A = B = [NaN 0; 0 NaN] , C = [1; 1], D = 0и начальное состояние означает 0 с ковариацией eye(2). Mdl частично указан и явно создан. Поскольку параметры модели содержат в общей сложности четыре NaNs, Params должен быть вектором 4 на 1, где Params(1) - оценка A(1,1), Params(2) - оценка A(2,2), Params(3) - оценка B(1,1), и Params(4) - оценка B(2,2).

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

Флаг для возврата временных ковариаций вместо корреляций, указанный как значение в этой таблице.

СтоимостьОписание
falseВыходные аргументы представляют временные корреляции
trueВыходные аргументы представляют временные ковариации

Пример: 'Covariance',true

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

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

свернуть все

Временные ассоциации переменных измерения (корреляции или ковариации), возвращаемые как (NumLags + 1) -by-n-by-n числовой массив.

Cyy(h + 1,i,j) - временная связь между yi, t и yj, t - ч, дляh = 0,1,2,...,NumLags, i = 1,2,..., n (число измеряемых переменных), иj = 1,2,..., n.

Временные ассоциации переменных состояния, возвращаемые как (NumLags + 1) -by-m-by-m числовой массив.

Cxx(h + 1,i,j) - временная ассоциация между xi, t и xj, t - ч, дляh = 0,1,2,...,NumLags, i = 1,2,..., m (число переменных состояния), иj = 1,2,..., м.

Временные перекрестные ассоциации между переменными измерения и состояния, возвращаемые как (NumLags + 1) -by-n-by-m числовой массив.

Cyx(h + 1,i,j) - временная связь между yi, t и xj, t - ч, дляh = 0,1,2,...,NumLags, i = 1,2,..., n и j = 1,2,..., м.

Подробнее

свернуть все

Подразумеваемые моделью временные связи

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

Рассмотрим инвариантную по времени модель «состояние-пространство» в момент времени t

xt = Axt 1 + Butyt = Cxt + Dαt.

Рассмотрим модель униженного состояния и пространства, представленную переменными состояния и измерения x˜0,t и y˜0,t:

  1. Добавьте модель state-space с соответствующим размером вектора постоянного состояния, представляющего пересечение.

    [x0, t1] = [A0A101] [x0, t 11] + [B0] utyt = [C0C1] [x0, t1] + Dαt.

  2. Обескровить переменные.

    x˜0,t=x0,t−E (x0, t) = x0, t (I A0) −1A1y˜0,t=y0,t−E (y0, t) = y0, t C1 − C0 (I − A0) − 1A1.

  3. Обескровить модель state-space и сбросить константы, не влияющие на ковариацию.

    x˜0,t=A0x˜0,t−1+Buty˜0,t=C0x˜0,t+Dεt.

Поскольку различие между полной моделью состояния-пространства и деминированной моделью состоит во включении постоянных состояний, Cov (xt, xt h) = Cov (x˜0,t,x˜0,t−h) = Γ 0, h, что подразумевает

Cxx (1,:,:) =Γ0,0=A0Γ0,0A0′+BB ′.

Позвольте Γ˜0,0 быть решением уравнения. Используя уравнение униженного состояния,

Cxx (h + 1,:,:) = Γ0, h = AoΓ h − 1; h = 1,2,....

Предыдущие результаты подразумевают следующее:

  • Cyy (1,:,:) = Cov (yt, yt) =C0Γ0,0C0′+DD ′.

  • Cyy (h + 1,:,:) = Cov (yt, yt h) = C0Γ0, hC0 ′; h = 1,2,....

  • Cyx (h + 1:,:) = Cov (yt, xt h) = C0Γ0, h; h = 0,1,2....

Совет

  • Чтобы получить ассоциативную матрицу ведущих переменных из ассоциативной матрицы запаздывающих переменных, используйте идентичность

    C (при, bt + h) = C (при, bt − h) ′,

    где:

    • C представляет собой ассоциативную функцию, либо Corr, либо Cov.

    • at и bt являются yt или xt.

Представлен в R2021a