我对自己的评估不太确定,但我认为自己在统计学和机器学习方面都属于初学者。
我开始阅读关于最大熵似然的内容,以及如何使用它们来估计任何给定分布密度函数的最高概率参数。
我发现了一篇很好的论文,标题为”使用EM算法的观察者错误率的最大似然估计“。在这篇论文中,提出了一个模型,用于估计各个方面(如症状、体征)的错误率,即使患者的真实反应不可用。论文在第7页给出了一个完整的解决示例,解释了如何估计每个观察者的错误率和边缘概率。然后尝试计算每个患者的指示变量。我理解方程2.3和2.4被用来得到表2的结果。我的问题是我花了很多时间试图弄清楚表4中的结果是如何计算的。它是基于哪个方程计算的?
回答:
表4中的数字是每个患者属于每个类别的最终概率,给定数据,即p(T_ij = 1 | data),对于患者i和类别j。它们是使用方程2.5计算的,该方程代表EM算法的E步骤。
更详细地说:
在EM的每次迭代中,算法执行两件事:
- M步骤:基于当前的患者-类别分配(T_ij)的值,使用方程2.3和2.4计算参数(类别边缘概率,p_j,和错误率,pi_jlk)的最大似然估计。
- E步骤:基于当前的参数值(p_j和pi_jlk),使用方程2.5计算T_ij的新期望值,即p(T_ij = 1 | data)。
当前所有参数值的完整似然可以使用方程2.7计算,并且随着EM的每次迭代,这个值应该单调增加,直到收敛(一旦参数值停止变化)。
对于论文中给出的数据,一旦达到收敛状态,p_j和pi_jlk的最终估计值在表2中给出,T_ij的最终估计值在表4中给出。
这是论文中给出的算法和示例的一个简单Python实现。(请注意,这个实现的最终估计值与论文中给出的略有不同,可能是因为精度或初始化的差异):https://github.com/dallascard/dawid_skene