У меня есть набор независимых двоичных случайных величин (скажем, A, B, C), которые принимают положительное значение с некоторой вероятностью и ноль в противном случае, для которого я сгенерировал матрицу из нулей и единиц всех возможных комбинаций этих переменных по крайней мере с a 1 ie
A B C
1 0 0
0 1 0
0 0 1
1 1 0
и Т. Д.
Я знаю значения и вероятности A, B, C, поэтому могу вычислить E (X) и E (X ^ 2) для каждого из них. Я хочу рассматривать каждую комбинацию в приведенной выше матрице как новую случайную величину, равную произведению случайных величин, которые присутствуют в этой комбинации (покажите 1 в матрице). Например, случайная величина Row4 = A * B.
Я создал матрицу того же размера, что и выше, которая показывает соответствующие E (X) вместо единиц и единицы вместо нулей. Это позволяет мне легко вычислять вектор ожидаемых значений новых случайных величин (по одному на комбинацию) как произведение каждой строки. Я также создал аналогичную матрицу, которая показывает E (X ^ 2) вместо E (X), и другую, которая показывает prob (X> 0) вместо E (X).
Я ищу сценарий Matlab, который вычисляет матрицу ковариации этих новых переменных, т.е. принимает каждую строку как случайную величину. Я предполагаю, что придется использовать формулу:
Cov(X,Y)=E(XY)-E(X)E(Y)
Например, для строк (1 1 0) и (1 0 1):
Cov(X,Y)=E[(AB)(AC)]-E(X)E(Y)
=E[(A^2)BC]-E(X)E(Y)
=E(A^2)E(B)E(C)-E(X)E(Y)
Эти значения у меня уже есть из матриц, о которых я упоминал выше. Для каждой ковариации я просто не уверен, как узнать, какие две переменные появляются в обеих строках, потому что для них мне придется выбрать E (X ^ 2) вместо E (X).
В качестве альтернативы, приведенное выше можно записать как:
Cov(X,Y)=E(X)E(Y)*[1/prob(A>0)-1]
Но проблема остается, поскольку вероятности в знаменателе будут только теми из переменных, которые являются общими для двух комбинаций.
Будем очень признательны за любые советы о том, как автоматизировать вычисление матрицы ковариации в Matlab.