いくつかのバイナリテストの結果を組み合わせる方法は?


8

まず、38年前に工学部で統計学のコースを1つ受けていたとしましょう。だから私はここで盲目的に飛んでいます。

疾患の診断テストは基本的に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です。他のテストはその逆です。)

OK、頭が痛い!

感度/特異度(%)のテスト1〜4があるとします。

  1. 65/50
  2. 25/70
  3. 30/60
  4. 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です。

これで、2つの質問をすることができます。

  1. どうして数字が合わないのか(あるいは近づいてしまうのか)。(私が使用したsens / spec番号は「実生活」からのものです。)
  2. どの仮説が(ほとんどの場合)真であるかを判断するにはどうすればよいですか(この例では、両方の計算で「負」であるように見えますが、常にそうであるかどうかはわかりません)。 「結果が「重要」であるかどうかを判断するには?

より詳しい情報

これは、本質的に完全に「芸術的」である(つまり、誰かのa **から引き抜かれた)既存の「重み付け」スキームを改良および拡張する試みです。現在のスキームは基本的に、「最初の3つのうち2つが正で、次の4つのうち2つが次の2つのうちのいずれかである場合、正であると仮定します」のようになっています。(もちろん、これはやや簡略化された例です。)利用可能な統計は、その重み付けスキームをサポートしていません。測定された統計に基づく粗い重み付けアルゴリズムを使用しても、かなり異なる答えが出ます。しかし、統計を評価する厳密な方法がなければ、私は信用できません。

また、現在のスキームはポジティブ/ネガティブを決定するだけであり、(統計的に有効な)「あいまいな」ケースを途中で作成する必要があるため、ある程度の性能指数が必要です。

最新

私は多かれ少なかれ「純粋な」ベイズ推定アルゴリズムを実装しました。そして、いくつかの側面の問題を何度も繰り返した後、それはかなりうまく機能しているようです。特異性と感度から作業するのではなく、式の入力を真陽性/偽陽性の数値から直接導き出します。残念ながら、これは、これらの数値を抽出できるように提示されていない、より良い品質のデータの一部を使用できないことを意味しますが、アルゴリズムははるかにクリーンで、手計算を大幅に減らして入力を変更できます。そしてそれはかなり安定しているように見え、結果は「直感」とかなりよく一致します。

また、相互に依存する観測間の相互作用を処理するための(純粋にプログラミングの意味での)「アルゴリズム」も考案しました。基本的に、掃引式を探すのではなく、単純なテーブルに基づいて、以前の観測が処理されるときに変更される限界確率乗数を観測ごとに保持します-「観測Aがtrueの場合、観測Bの限界確率を1.2の係数、例えば。エレガントではありませんが、実用的であり、さまざまな入力にわたってかなり安定しているようです。

(私は数時間で私が最も役立つ投稿であると思うものに賞金を授与するので、誰かがいくつかのリックを取得したい場合は、それを手に入れてください。)


テスト1が偽陽性である確率は1-.5ではなく、1-(.5 *疾患を持たない確率)
fgregg

いい視点ね。それは私が物事をもう少し理解するのに役立つかもしれません。
ダニエルRヒックス

すみません、実際、私は間違っていました。特異性= Pr(True Negative)/ [Pr(True Negative)+ Pr(False Positive)]したがって、Pr(False Positive)= Pr(True Negative)/ specificity-Pr(True Negative)Pr(False Positive)= Pr (疾患なし)(1-特異性)
fgregg

1
明確にするために:厳密さを求めていると言っても、「統計的厳密さ」を意味するわけではありません。つまり、タイプ1と2のエラーの正確な確率を与えるために、必ずしも組み合わせテストが必要なわけではありません。あなたは薄い空気から引き出されていないものを探していますか?
SheldonCooper、2011

1
テストが相互に強く依存していることをどのようにして知っていますか?それはあなたの先験的な高レベルの知識ですか(たとえば、両方のテストは血圧を使用しているため、おそらく相関関係があります)、それともそれらが相関していることを示す統計がありますか?後者の場合は、fgreggの提案を少し変更して使用できます。ペアとしてモデル化する必要がある相互依存ペアを除いて、すべてのテストを独立してモデル化します。これには(フォームの)追加の統計が必要です。p(T1,T2|Disease))、それらは相関していることを知っているので、おそらく持っています。
シェルドンクーパー

回答:


1

「これらの数値を組み合わせて、(できれば)単一のテストよりも信頼できる最終スコアが得られる最良の方法は何だと思います。」非常に一般的な方法は、クロンバッハのアルファを計算し、より一般的には、「標準」信頼性分析と呼ばれるものを実行することです。これは、特定のスコアが他の17のスコアの平均とどの程度相関しているかを示します。どのテストのスコアがスケールから削除されるのが最もよいか。18のすべてと特定のサブセットの両方で、内部整合性の信頼性はどのようなものか。さて、あなたのコメントのいくつかは、これらの18の多くが無相関であることを示しているようです。それが本当なら、あなたはほんのいくつかのテストから成るスケールで終わるかもしれません。

コメント後の編集:別のアプローチは、内部の一貫性と妥当性の間にトレードオフがあるという考えに基づいています。テストの相関性が低いほど、コンテンツカバレッジが向上し、コンテンツの有効性が向上します(信頼性がない場合)。したがって、これらの線に沿って考えると、Cronbachのアルファとアイテムと合計の相関の関連する指標を無視し、代わりにアプリオリな推論を使用して18のテストをスケールに結合します。うまくいけば、そのようなスケールはあなたの金本位と高い相関があるでしょう。


さまざまな理由(基本的には保守的な医療バイアス)のため、テストを削除することはできません。特に削除することもできません。クレジットスコアに類似していると考えてください。クレジットカードの借金が大きいと、給与が低く、解雇されがちな仕事に「無関係」ですが、この2つを組み合わせると、はるかに深刻な状況になります。個別よりも。
ダニエルRヒックス

1

少し簡単にするために、診断テストが2つしかないと仮定しましょう。計算したい

Pr(DiseaseT1,T2)=Pr(T1,T2Disease)Pr(Disease)Pr(T1,T2)

あなたはこれらのテストの結果が独立していて、病気を持っている人を条件とすることを示唆しました。もしそうなら、それから

Pr(T1,T2Disease)=Pr(T1Disease)Pr(T2Disease)

ここで、はTest感度です。Pr(TiDisease)i

Pr(T1,T2)は、ランダムな人物が両方のテストで陽性となる無条件確率です。

Pr(T1,T2)=Pr(T1,T2Disease)Pr(Disease)+Pr(T1,T2No Disease)Pr(No Disease)

どこ

Pr(T1,T2No Disease)=Pr(T1No Disease)Pr(T2No Disease)

そして、は、テストです。Pr(TiNo Disease)1specificityi


これが私の場合に機能するかどうかはわかりません(「ロジスティック回帰」の半分を正しく理解している場合)。最初に、説明したように、個々のテストごとに調整できるしきい値または調整係数はありません(または少なくとも比較的少ない)-正/負の結果のみです。第二に、モデルを「トレーニング」するための新しいデータを取得できるほどの余裕はありません。持っているデータを思いつくだけで、歯を抜くようなものでした。
ダニエルRヒックス

データについてもう少し詳しく説明してください。私はあなたが事件が病気にかかったかどうかの根本的な真実を知っていると思いましたか?
fgregg

1
数値が一致しない場合の問題は、冗長な情報です。たとえば、テストの1つが「収縮期血圧(SBP)> 140」であり、もう一方が「拡張期血圧(DBP)> 90」であるとします。これら2つは相関関係があり、それぞれに固有の情報は一意ではありません。これらを論理的に組み合わせると、「SBP> 140またはDBP> 90」とすると、感度が徐々に向上します。しかし、ゴールドスタンダード、SBP、およびDBPを同時に測定するデータセットがなければ、組み合わせたテストの感度と特異度を定量化する正確な方法はありません。
Ming K

1
@Daniel:このアプローチでは、(すでに持っているデータ以外に)新しいデータは必要ないようです。真/偽陽性/陰性率が必要で、しきい値は必要ないようです。
SheldonCooper、2011

1
@Daniel:これは7月14日からのあなたのコメントへの応答でした。fgreggが説明しているのは、基本的にNaive Bayesアプローチです。このアプローチを使用するのに十分な情報があるようです。必要なのは、あなたが持っているレートです。新しい情報やテストのしきい値は必要ありません。試したことがあるので、あなたはすでにこれを理解しているようです。依存関係が結果を歪めるのは正しいことです。
シェルドンクーパー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.