Как мне создать желаемую (большую) матрицу ковариации / корреляции? - PullRequest
0 голосов
/ 17 января 2011

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

Итак, чтобы подвести итог:
Я хочу сделать симметричные матрицы с n ~ 50, которые имеют желаемые числа в определенных местах, нольв других и являются положительными полуопределенными (к счастью, MATLABs cholcov требует только полуопределенности).

Я искренне надеюсь, что кто-то там имеет хотя бы идею!1011 * PS: я до сих пор работал в MATLAB, но я открыт для других языков, а также для решений только в математике.

1 Ответ

4 голосов
/ 21 января 2011

Теперь я, наконец, могу ответить, думаю.

То, что вы хотите, полностью зависит от того, какой тип распределения вы хотите иметь.

Например, вы можете подумать о гауссовском / нормальномраспределение.Если у вас есть ковариационная матрица, вы можете сделать это, исходя из сайта MATLAB .

Создать значения из двумерного нормального распределения с указанным средним вектором и ковариационной матрицей.

mu = [1 2];
Sigma = [1 .5; .5 2]; R = chol(Sigma);
z = repmat(mu,100,1) + randn(100,2)*R;

Но, конечно, вы можете сделать любой процесс с этим.Как я вижу в ваших комментариях, вы хотите генерировать случайные данные.Вот этоГенерация большего количества ковариационных матриц из ковариационной матрицы не имеет смысла для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...