Matlab: путаница, связанная с операцией корреляции для задержек

У меня есть модель временного ряда y(t)= h^T y(t-1) + n(t), где n(t) — белый гауссов шум, который возбуждает и управляет процессом. y — это результат модели линейной регрессии для t = 1,2,..., обозначающий количество точек данных.

Вопрос: если матрица корреляции равна Ryy = E[y(t)*y(t)^T],, то можно ли вычислить корреляцию случайных величин с запаздыванием, таких как

 [E[y(t-1)*y(t-1)']]

Как правило, эти операторы и выражения также встречаются в:

Slide2 упоминает матрицу автокорреляции. В формуле есть оператор ожидания. Итак, как мне реализовать ожидание произведения запаздывающей случайной величины на себя и другие подобные выражения без использования встроенных команд?

Я не могу реализовать такие формулы. Пожалуйста помоги.

Спасибо за любое объяснение!

ОБНОВЛЕНИЕ. После нескольких изменений этого вопроса он сводился к другому заданному вопросу Matlab: Вычисление корреляции временных рядов . Таким образом, эти два Вопроса стали дублироваться.

Вот пример кода

y = randn(10,1);

for t = 1:10
disp(y(t));
end

Expectation_y =  sum(y(1:end))/10 % this give a scalar

Mean_y = mean(y); % This returns 10 values 

person SKM    schedule 21.11.2014    source источник
comment
Неясно, ищете ли вы аналитическое выражение или просто как вычислить среднее значение приведенного выше выражения в Matlab.   -  person bavaza    schedule 23.11.2014
comment
Я хотел бы знать, как рассчитать аналитическое выражение (A) E[y(t)] (B) E[y(t-1)*y(t-1)^T] (c) след обратного выражение в (B) без использования встроенных функций Matlab.   -  person SKM    schedule 23.11.2014
comment
похоже, вы описываете авторегрессионную модель AR (1)? en.wikipedia.org/wiki/Autoregressive_model   -  person Amro    schedule 23.11.2014
comment
@Amro: Вы правы, это модель AR (1), но это просто для примера. Выражения применимы к ARMA также и вообще. Итак, если t=10, E[y(9)*y(9)'] будет только одним элементом. Но это не так, иначе в статье не упоминался бы след, принимаемый за матрицу. Я считаю, что мое понимание неверно. Следовательно, Вопрос.   -  person SKM    schedule 23.11.2014
comment
Что такое y(t)? Это единый номер? Потому что тогда транспонирование ничего не дает, поэтому вы делаете E[y(t-1)^2]^-1?   -  person David    schedule 24.11.2014
comment
@SKM: какая бумага? вы не даете нам всей картины здесь ..   -  person Amro    schedule 24.11.2014
comment
Большая часть этого вопроса, как сформулировано, связана с математикой/статистикой и не относится к теме StackOverflow. Отредактируйте это. Кроме того, StackOverflow не поддерживает TeX, поэтому отредактируйте свой вопрос, чтобы сделать его читабельным (используйте изображения или, лучше, код).   -  person horchler    schedule 24.11.2014
comment
@horchler: я задал этот вопрос в Cross validate, где он оставался без ответа в течение нескольких дней. Мне посоветовали опубликовать его здесь, заявив, что он связан с программированием. Поэтому я удалил оттуда.   -  person SKM    schedule 24.11.2014
comment
@SKM: Возможно, вы не четко задали свой вопрос на CrossValidated (там он кажется гораздо лучше подходящим) или не адаптировали его достаточно, чтобы он соответствовал теме. Вам нужно сделать это здесь, потому что, как есть, это еще больше не по теме (я рекомендую прочитать раздел справки на этих сайтах, если вам нужны предложения). Простой вопрос, как мне реализовать это, не делает это вопросом программирования?   -  person horchler    schedule 24.11.2014
comment
@horchler: я удалил большинство частей, чтобы оставаться в теме, и задал вопрос stats.stackexchange.com/questions/125216/, который является исходным вопросом, который я разместил ранее.   -  person SKM    schedule 24.11.2014
comment
Для случайной величины X ожидаемое значение E[X] является средневзвешенным значением. Для вашей случайной величины Y с наблюдениями y(t), предполагая, что временные шаги t идентичны, E[y(t)] просто означает (y(t))   -  person hbaderts    schedule 25.11.2014
comment
@hbaderts: Когда я вызываю команду, означает (y (1: конец)), где конец = 10 (скажем). Это дает 10 скалярных значений. Однако, если я напишу аналитическую форму, которая представляет собой сумму (y (1: конец)) / 10, я получу один скаляр, который является средним значением. В том же тоне, как я могу найти ожидание для запаздывающих переменных - делая что-то вроде E[y(2:end)*y(2:end)'] ??   -  person SKM    schedule 25.11.2014
comment
Я думаю, что mean(y(1:end)) должно работать. Если я попробую y=rand(1,10);mean(y), это даст мне скалярное значение. Не могли бы вы запустить whos y и опубликовать результат здесь?   -  person hbaderts    schedule 25.11.2014
comment
@hbaderts: Спасибо за ваши усилия и время. Пожалуйста, найдите обновления.   -  person SKM    schedule 25.11.2014
comment
Это странно: в моем случае ваши образцы тоже дают скаляр. Если вы явно определяете измерение, по которому вам нужно среднее значение, оно все равно должно работать. Для этого попробуйте Mean_y = mean(y,1);   -  person hbaderts    schedule 25.11.2014
comment
среднее (у, 1) работает. Итак, если среднее (y, 1) == E [y (t)], то как решить для E [y (t-1) * y (t-1) '], что даст матрицу; E[y(t-1)*w(t-1)'], где y,w — два разных вектора временных рядов   -  person SKM    schedule 25.11.2014
comment
(Это такой вопрос о морфинге, содержащий 15 правок из ОП - наконец, дублирующий еще один вопрос - трудно понять, к какой версии откатиться. Я оставлю это на данный момент).   -  person halfer    schedule 20.06.2016


Ответы (1)


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

Итак, если ваша серия представляет собой векторную авторегрессионную модель порядка 1 (какой она кажется, поэтому h' является вашей матрицей коэффициентов), то действительно E[y(t-1)*y(t-1)'] имеет смысл и является корреляционной матрицей самого случайного вектора.

Теперь в предположении о стационарности, которую вы можете проверить, проверив, что корни x_i из det(I - h'*x) = 0 находятся вне единичного круга (имеют модуль больше 1), тогда статистические свойства y[t_1] эквивалентны свойствам y[t_2] для всех больших t_1, t_2 достаточно. Итак, по сути:

E[y(t-1)*y(t-1)'] = E[y(t)*y(t)']

Если ваш процесс НЕ является стационарным, у вас проблемы, так как теперь ваша корреляционная матрица зависит от граничных условий t_0...

Однако то, что вы, возможно, ищете, это такие выражения, как:

E[y(t)*y(t-1)'] = E[(h'*y(t-1) + n(t))*y(t-1)']

Но я не знаю, есть ли аналитические представления об этом в зависимости от E[y(t)*y(t)']... Вы можете исследовать это в Интернете или в ссылках, которые предоставляют ваши слайды...

ИЗМЕНИТЬ:

Поскольку в ОП упоминается, что это простая авторегрессионная модель, а не векторная авторегрессионная модель, все значительно упрощается.

Для стационарных моделей AR(1) есть хорошие аналитические представления среднего значения, дисперсии и автоковариации (и, следовательно, автокорреляции), я приведу их здесь для более общей модели: y(t) = c + h*y(t-1) + n(t)

E[y(t)] = c/(1-h) --> so in your case: 0
Var[y(t)] = Var[n(t)]/(1-h^2) --> this is equal to the E[y(t)y(t)] or E[y(t-1)y(t-1)] that you are looking for
Cov[y(t)y(t-j)] = Var[n(t)]*h^j/(1-h^2)
Corr[y(t)y(t-j)] = h^j --> this is the autocorrelation in function of the timedifference j

Вы можете найти все математические выводы для них, хорошо объясненные в справочнике или на странице французской Википедии: здесь, в разделе "Моменты процесса AR(1)"

Теперь все сводится к тому, что вы ищете... E[y(t-1)y(t-1)] просто равно E[y(t)y(t)] по определению стационарности, возможно, вы действительно искали вывод E[y(t)y(t-1)], который я разработаю здесь:

 E[y(t)y(t-1)] = E[(h*y(t-1) + n(t))*y(t-1)] = E[(h*y(t-1))*y(t-1)] + E[n(t)*y(t-1)]

Теперь, поскольку n(t) — это белый шум в t, он не коррелирует с y(t-1), поэтому E[n(t)*y(t-1)] = 0, поэтому мы имеем:

E[y(t)y(t-1)] = E[(h*y(t-1))*y(t-1)] = h*E[(y(t-1))*y(t-1)] = h*Var[y(t)] = h*Var[N(t)]/(1-h^2)

Что точно соответствует определению Cov[y(t)y(t-j)]given выше...

Надеюсь это поможет.

person reverse_engineer    schedule 27.11.2014
comment
Благодарю за ваш ответ. Не могли бы вы прояснить эти моменты? Я не знаком с тем, что вы подразумеваете под векторной авторегрессионной моделью порядка 1. Модель AR имеет 1 переменную $ y $, а $ h $ - это только 1 параметр / коэффициент. Означает ли это векторную модель AR первого порядка? Наконец, процесс является стационарным. Моя проблема заключается в том, что если можно рассчитать корреляцию для y(t), то, безусловно, должна быть возможность вычислить y(t-1) или y(t-2) и т. д. Далее, если бы я вычислил матрицу корреляции для y(t) и y(t-1), где y — единственная переменная, тогда команда будет xcorr(y(t),y(t)') и xcorr(y(t-1),y(t- 1)')? - person SKM; 27.11.2014
comment
Хорошо, я не понял, что это была простая модель AR (меня смутил h^T, я подумал, что это оператор транспонирования), поэтому ваша модель не является векторной авторегрессионной моделью, а просто авторегрессионной моделью... Это делает вещи действительно на самом деле легко, я исправлю свой ответ соответствующей информацией. - person reverse_engineer; 28.11.2014
comment
@SKM Кстати, я вижу, что не ответил на ваш вопрос о вычислении ваших выражений в Matlab без встроенных функций ... Если у вас есть вектор y реализаций вашего процесса AR (1), вы можете просто вычислить дисперсию E[y(t)*y(t)'] с y'*y/(length(y)-1) - person reverse_engineer; 28.11.2014
comment
Спасибо еще раз большое! Не могли бы вы прояснить несколько вещей? Цените свои усилия, время и терпение. (1) Не могли бы вы указать, почему вы сделали length(y)-1 ? (зачем вынимать 1 элемент?) (2) В общем, скажем, y(t) = [x(t),x(t-1),..,x(tp)]', где p = 2 (порядок модели) тогда для стационарного процесса каким будет y(t-1)? (3) Вывод E[y(t)*y(t-1)] действительно добавляет много знаний. Однако меня интересует выражение E[y(t-1)y(t-1)']. Буду ли я использовать команду cov(y(t-1),cov(y(t-1)') и следовать той же логике, что и в твоем ответе? - person SKM; 28.11.2014
comment
@SKM Привет еще раз, length(y)-1 просто для получения выборочной дисперсии без смещения (см., например, главу «Выборочная дисперсия» в статье Википедии о дисперсии) ... Теперь, если, как вы говорите, y(t) = [x(t),x(t-1),..,x(t-p)]' с p = 2, тогда процесс не является AR(1) но AR(2) на самом деле... Сегодня я обновлю свой ответ соответствующей информацией... - person reverse_engineer; 01.12.2014
comment
Спасибо за вашу постоянную помощь и время. Будем ждать вашего ответа. Пожалуйста, не удаляйте тот, который вы уже разместили, он очень информативен, и такие вещи нельзя задавать инструктору курса. Так что это полезно для ведения записей :) - person SKM; 01.12.2014
comment
@SKM Привет, я хотел ответить на вопрос, учитывая новую информацию, но не могли бы вы сначала дать мне больше информации, возможно, о модели, чтобы я был уверен, что понял структуру: является ли векторная форма действительно такой: [x(t),x(t-1),x(t-2)]' = h'*[x(t-1),x(t-2),x(t-3)]' + [n(t),n(t-1),n(t-2)]', а вам нужна корреляционная матрица y(t-1), верно? Потому что это не обычная форма для авторегрессионных моделей, и я не уверен, что это будет правильная модель, так как я вижу избыточность в уравнениях... - person reverse_engineer; 02.12.2014
comment
Спасибо за повторное обращение к проблеме. Модель AR не похожа на ту, которую вы написали. Для p = 2 мы можем расширить уравнение AR как: y (t) = ay (t-1) + by (t-2) + epsilon (t). В векторной форме это выглядит так: y(t) = \mathbf{h^T y(t-1)} + epsilon(t), где \mathbf{y(t-1)} = [y(t-1), y (t-2)]^T (T = транспонировать). Затем мне нужна корреляционная матрица или способ реализации E[\mathbf{y(t-1)y(t-1)'}]. - person SKM; 03.12.2014