用E(X)和E(X^2)的组合矩阵的协方差矩阵



我有一组独立的二进制随机变量(例如a,B,C),它们有一定的概率取正值,否则取零,为此我生成了一个0和1的矩阵,其中包含这些变量的所有可能组合,至少有1,即

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)s而不是1,以及1而不是0。这允许我轻松地计算新随机变量的期望值向量(每个组合一个)作为每一行的乘积。我还生成了一个类似的矩阵,它显示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中自动计算协方差矩阵的任何建议将不胜感激。

我很确定这不是最有效的方法但这是一个开始:

假设r1……在随机变量的组合中,R为矩阵:

    A  B  C
r1  1  0  0
r2  0  1  0
r3  0  0  1 
r4  1  1  0
<<p>如果你有向量strong> E1 , E2 ER :
E1 = [E(A)  E(B)  E(C)  ...]
E2 = [E(A²) E(B²) E(C²) ...]
ER = [E(r1) E(r2) E(r3) ...]

如果你想计算E(r1,r2),你可以:

1)从R

中提取R1和R2列
v1 = R(1,:)
v2 = R(2,:)

2) vs

中的两个向量求和
vs = v1 + v2

3)循环vs,如果你看到一个2,意味着R2中的值必须被使用,如果你看到一个1,它是R1中的值,如果它是0,不使用该值。

4)使用循环,计算所需的E(r1,r2)。

相关内容

  • 没有找到相关文章

最新更新