首先让我说 38 年前我在工程学校上过一门统计课程。所以我在这里瞎了眼。
我已经得到了基本上是 18 种不同的疾病诊断测试的结果。每个测试都是二进制的——是/否,没有可以调整以“调整”测试的阈值。对于每个测试,与“黄金标准”相比,我都有关于真/假阳性/阴性的表面上有效的数据,产生特异性和敏感性数字(以及您可以从该数据中得出的任何其他数据)。
当然,没有一个测试具有足够的特异性/敏感性单独使用,当你“目测”所有测试的结果时,往往没有明显的趋势。
我想知道将这些数字组合在一起的最佳方法是什么,从而产生一个(希望)比任何单一测试都更可靠的最终分数。到目前为止,我已经提出了结合 TRUE 测试的特殊性的技术,使用
spec_combined = 1 - (1 - spec_1) * (1 - spec_2) * ... (1 - spec_N)
并以相同的方式结合 FALSE 测试的敏感性。比例
(1 - sens_combined) / (1 - spec_combined)
那么似乎产生了一个相当好的“最终分数”,超过 10 左右的值是可靠的 TRUE,低于 0.1 左右的值是可靠的 FALSE。
但是这个方案缺乏任何真正的严谨性,并且对于某些测试结果的组合,它似乎会产生一个违反直觉的答案。
考虑到它们的特异性和敏感性,有没有更好的方法来组合多个测试的测试结果?(有些测试的特异性为 85,灵敏度为 15,其他测试正好相反。)
好吧,我头疼!
假设我有敏感性/特异性的测试 1-4(以 % 为单位):
- 65/50
- 25/70
- 30/60
- 85/35
测试 1 和 2 为阳性,测试 3 和 4 为阴性。
1 为误报的假定概率为 (1 - 0.5),而 2 为 (1 - 0.7),因此两者均为误报的概率为 0.5 x 0.3 = 0.15。
3 和 4 为假阴性的假定概率为 (1 - 0.3) 和 (1 - 0.85) 或 0.7 x 0.15 = 0.105。
(我们暂时忽略数字不相加的事实。)
但是 1 和 2 是真阳性的假定概率是 0.65 和 0.25 = 0.1625,而 3 和 4 是真阴性的假定概率是 0.6 和 0.35 = 0.21。
现在我们可以问两个问题:
- 为什么数字不加起来(甚至接近)。(我使用的 sens/spec 数字来自“现实生活”。)
- 我应该如何确定哪个假设(最有可能)是正确的(在这个例子中,这两个计算似乎都是“负面的”,但我不确定情况总是如此),以及我可以使用什么来获得“品质因数” ”来决定结果是否“显着”?
更多信息
这是一种改进和扩展现有“加权”方案的尝试,该方案在本质上完全是“艺术”的(即,刚刚从某人的a**中提取出来)。目前的方案基本上是“如果前三个中的任何两个是正的,如果接下来的四个中有两个,以及接下来的两个中的一个,则假设为正”。(当然,这是一个稍微简化的示例。)可用的统计数据不支持该加权方案——即使使用基于测量统计数据的粗略加权算法,我也得出了截然不同的答案。但是,由于没有严格的评估统计数据的方法,我没有可信度。
此外,目前的方案只决定正面/负面,我需要在中间创建一个(统计上有效的)“模棱两可”的案例,所以需要一些品质因数。
最新的
我已经实现了一个或多或少的“纯”贝叶斯推理算法,并且在对几个附带问题进行了一轮又一轮之后,它似乎工作得很好。我不是从特异性和敏感性出发,而是直接从真阳性/假阳性数得出公式输入。不幸的是,这意味着我不能使用一些质量更好的数据,这些数据不是以允许提取这些数字的方式呈现的,但算法更简洁,允许用更少的手动计算修改输入,它看起来很稳定,结果与“直觉”相当吻合。
我还提出了一个“算法”(在纯粹的编程意义上)来处理相互依赖的观察之间的相互作用。基本上,与其寻找一个全面的公式,相反,我为每个观察保留一个边际概率乘数,该乘数会根据一个简单的表在处理早期观察时进行修改——“如果观察 A 为真,则将观察 B 的边际概率修改为因子 1.2",例如。无论如何,它并不优雅,但可以使用,并且在一系列输入中似乎相当稳定。
(我会在几个小时内将赏金奖励给我认为最有帮助的帖子,所以如果有人想获得一些好处,那就去吧。)