Excel中概率分布的熵

abh*_*rni 2 excel probability entropy excel-formula

我在Excel中有一个矩阵。我需要规范化行,然后计算每行的熵(将其视为概率分布)。

例如,假设我的矩阵是:

2   0   3   5
0   1   0   0
1   0   3   2
Run Code Online (Sandbox Code Playgroud)

行归一化后,矩阵变为:

0.2000         0    0.3000    0.5000
     0    1.0000         0         0
0.1667         0    0.5000    0.3333
Run Code Online (Sandbox Code Playgroud)

假设每一行都是概率分布,则每一行的熵为:

1.0297
     0
1.0114
Run Code Online (Sandbox Code Playgroud)

我想在不产生中间行归一化矩阵的情况下计算上述熵值。

是否可以在Excel中执行此操作?

注意:概率分布的熵定义为:

H(X) = sum over all x {-p(x) * log(p(x))}
Run Code Online (Sandbox Code Playgroud)

bar*_*ini 5

如果您在A1:D3中有原始矩阵,请在F1中尝试此公式

=SUM(-A1:D1/SUM(A1:D1)*IF(A1:D1<>0,LN(A1:D1/SUM(A1:D1))))

通过CTRL + SHIFT + ENTER确认(以便大括号出现在公式栏中的公式周围)

复制到F3