corr

Подразумеваемые моделью временные корреляции модели в пространстве состояний

Описание

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

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

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

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

пример

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

пример

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

пример

[Cyy,Cxx,Cyx] = corr(___) также возвращает Поправку (xt, x th), корреляции между переменными состояния и их самозадержками Cxx, и Поправка (yt, x th), корреляции между переменными состояния и их сам изолирует 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 object. The axes object with title A C F ( y indexOf 1 , t baseline ) contains 2 objects of type line. These objects represent A C F ( y indexOf 1 , t baseline ), Sample A C F ( y indexOf 1 , t baseline ).

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 object. The axes object with title A C F ( y indexOf 2 , t baseline ) contains 2 objects of type line. These objects represent A C F ( y indexOf 2 , t baseline ), Sample A C F ( y indexOf 2 , t baseline ).

Явным образом создайте модель в пространстве состояний

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.63947   0      
 c(2) | -0.25898       0.25406   -1.01934  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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

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

    • Если Mdl независимо от времени, порядком является ABCD, Mean0, и Cov0.

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

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

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

Пример: Считайте модель в пространстве состояний 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

Типы данных: логический

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

свернуть все

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

Cyy (h + 1, iJ) временная ассоциация между y i, t и y j, th, для h = 0,1,2..., NumLagsi = 1,2..., n (количество переменных измерения), и j = 1,2..., n.

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

Cxx (h + 1, iJ) временная ассоциация между x i, t и x j, th, для h = 0,1,2..., NumLagsi = 1,2..., m (количество переменных состояния), и j = 1,2..., m.

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

Cyx (h + 1, iJ) временная ассоциация между y i, t и x j, th, для h = 0,1,2..., NumLagsi = 1,2..., n и j = 1,2..., m.

Больше о

свернуть все

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

Мера Model-implied temporal correlations and covariances само - и ассоциации перекрестной задержки между измерением и переменными состояния в модели в пространстве состояний, как предписано моделью. Чтобы упростить спецификацию модели, можно сравнить подразумеваемые моделью временные корреляции и ковариации к демонстрационным аналогам.

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

xt=Axt1+Butyt=Cxt+Dεt.

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

  1. Добавьте модель в пространстве состояний с соответственно размерным вектором постоянного состояния представление точки пересечения.

    [x0,t1]=[A0A101][x0,t11]+[B0]utyt=[C0C1][x0,t1]+Dεt.

  2. Унизьте переменные.

    x˜0,t=x0,tE(x0,t)=x0,t(IA0)1A1y˜0,t=y0,tE(y0,t)=y0,tC1C0(IA0)1A1.

  3. Унизьте модель в пространстве состояний и пропустите постоянные термины, которые не влияют на ковариацию.

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

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

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

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

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

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

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

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

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

Советы

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

    C(at,bt+h)=C(at,bth),

    где:

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

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

Введенный в R2021a