2

我需要计算 L 和 D 发生 P(L,D) 的概率,但它们不是相互独立的。我用两个不同的模型估计了 P(L) 和 P(D) 的概率,我也知道 P(L|D) 和 P(D|L)。据我所知,我对 P(L,D) 有两种不同的估计:

P(L) * P(D|L) and 
P(D) * P(L|D)

我最好将这两个估计值平均为一个组合的 P(L,D) 吗?

4

1 回答 1

1

这两种计算联合分布的方法应该在数值精度范围内相同。如果您的算法对这两种方式给出了不同的答案,那么这就是您的代码中的错误。

对于一对二元变量,您需要做的就是维护四个结果中每一个的出现次数:(L,D), (!L,D), (L,!D), (!L,!D). 如果我们让Z=N(L,D)+N(!L,D)+N(L,!D)+N(!L,!D)

那么你关心的概率就是:

P(L,D)=N(L,D)/Z

其他(边际的、有条件的)概率是:

P(L)=[N(L,D)+N(L,!D)]/Z
P(D)=[N(L,D)+N(!L,D)]/Z

P(L | D ) = N(L,D)/[ N(L,D)+N(!L,D)]
P(D | L ) = N(L,D)/[ N(L,D)+N(L,!D)]

用一点代数你可以看到P(L|D)P(D)=N(L,D)/Z=P(D|L)P(L)

这指出了如何将不同的估计组合成一个单一的估计:将它们转换回“计数”,然后将这些计数相加。可能发生这种情况的情况是,当我们有两个独立样本S1S2。假设您 P(L |D ), P(D)从 sampleS1P(D |L), P(L)sample估计S2。除了概率之外,我们还需要知道每个样本中样本数的计数N1,N2:注意:结果仅取决于 ratio N1/N2,因此如果您没有计数,但知道样本量始终相同,则可以替换N1=N2=1为以下内容。

N(L,D | S1 ) = N1*P(L | D) P(D)
N(L,D | S2 ) = N2*P(D | L) P(L)

N(L,D | S1+S2) = N(L,D|S1)+N(L,D|S2)
P(L,D | S1+S2) = N(L,D|S1+S2)/(N1+N2)

在这种情况下,N1==N2只是平均它们;但这仅适用于样本量相同的特殊情况;否则结果为加权平均值。

这是 Bill在 CrossValidated 上对这个问题的回答的简化版本,它处理估计量可能相关和/或涉及估计除经验概率之外的数量的情况。

于 2013-10-16T22:33:19.593 回答