Como combinar os resultados de vários testes binários?


8

Primeiro, deixe-me dizer que eu tinha um curso de estatística na escola de engenharia há 38 anos. Então, eu estou voando cego aqui.

Eu tenho os resultados do que são essencialmente 18 testes de diagnóstico separados para uma doença. Cada teste é binário - sim / não, sem limite que pode ser ajustado para "ajustar" o teste. Para cada teste, tenho dados que são ostensivamente válidos em verdadeiros / falsos positivos / negativos quando comparados ao "padrão ouro", produzindo números de especificidade e sensibilidade (e qualquer outra coisa que você possa derivar desses dados).

Obviamente, nenhum teste isolado tem especificidade / sensibilidade suficiente para ser usado sozinho, e quando você "observa" os resultados de todos os testes, muitas vezes não há uma tendência óbvia.

Gostaria de saber qual é a melhor maneira de combinar esses números de uma maneira que produzirá uma pontuação final que é (espero) mais confiável do que qualquer teste único. Até agora, inventei a técnica de combinar as especificidades dos testes TRUE usando

spec_combined = 1 - (1 - spec_1) * (1 - spec_2) * ... (1 - spec_N)

e combinando sensibilidades dos testes FALSE da mesma maneira. A proporção

(1 - sens_combined) / (1 - spec_combined) 

então parece produzir uma "pontuação final" razoavelmente boa, com um valor acima de 10 ou mais, sendo um VERDADEIRO confiável e um valor abaixo de 0,1 ou mais, sendo um FALSO confiável.

Mas esse esquema carece de rigor verdadeiro e, para algumas combinações de resultados de testes, parece produzir uma resposta que é contra-intuitiva.

Existe uma maneira melhor de combinar os resultados de vários testes, dadas suas especificidades e sensibilidades? (Alguns testes têm uma especificidade de 85 e sensibilidade de 15, outros são exatamente o oposto.)

OK, minha cabeça dói!

Digamos que eu tenha os testes 1-4 com sensibilidades / especificidades (em%):

  1. 65/50
  2. 25/70
  3. 30/60
  4. 85/35

Os testes 1 e 2 são positivos, 3 e 4 negativos.

A probabilidade putativa de que 1 é um falso positivo seria (1 - 0,5) e, para 2 (1 - 0,7), então a probabilidade de ambos serem falsos positivos seria de 0,5 x 0,3 = 0,15.

A probabilidade putativa de que 3 e 4 são falsos negativos seria (1 - 0,3) e (1 - 0,85) ou 0,7 x 0,15 = 0,105.

No momento, ignoraremos o fato de que os números não somam.

Mas as probabilidades presumidas de que 1 e 2 são verdadeiros positivos são 0,65 e 0,25 = 0,1625, enquanto as probabilidades presumidas de que 3 e 4 são verdadeiros negativos são 0,6 e 0,35 = 0,21.

Agora podemos fazer duas perguntas:

  1. Por que os números não somam (ou chegam perto). (Os números de sensibilidade / especificação que usei são da "vida real".)
  2. Como devo decidir qual hipótese é (provavelmente) verdadeira (neste exemplo, parece ser "negativa" para ambos os cálculos, mas não tenho certeza de que sempre é esse o caso) e o que posso usar para uma "figura de mérito" "decidir se o resultado é" significativo "?

Mais informações

Esta é uma tentativa de refinar e estender um esquema de "ponderação" existente que é inteiramente "artístico" por natureza (isto é, apenas retirado do a ** de alguém). O esquema atual está basicamente na linha de "Se dois dos três primeiros forem positivos, e se dois dos quatro próximos e qualquer um dos próximos dois, então assumiremos positivo". (Esse é um exemplo um tanto simplificado, é claro.) As estatísticas disponíveis não suportam esse esquema de ponderação - mesmo com um algoritmo bruto de ponderação baseado nas estatísticas medidas, encontro respostas significativamente diferentes. Mas, na falta de uma maneira rigorosa de avaliar as estatísticas, não tenho credibilidade.

Além disso, o esquema atual decide apenas positivo / negativo, e eu preciso criar um caso "ambíguo" (estatisticamente válido) no meio, para que seja necessária alguma figura de mérito.

Mais recentes

Eu implementei um algoritmo de inferência bayesiano mais ou menos "puro" e, depois de dar voltas e voltas em várias questões paralelas, parece estar funcionando muito bem. Em vez de trabalhar com especificidades e sensibilidades, derivo as entradas da fórmula diretamente dos números positivos / falsos positivos verdadeiros. Infelizmente, isso significa que não posso usar alguns dados de melhor qualidade que não são apresentados de uma maneira que permita a extração desses números, mas o algoritmo é muito mais limpo, permite a modificação das entradas com muito menos cálculo manual, e parece bastante estável e os resultados correspondem "intuição" razoavelmente bem.

Também inventei um "algoritmo" (no sentido puramente de programação) para lidar com as interações entre observações interdependentes. Basicamente, ao invés de procurar uma fórmula abrangente, em vez disso, mantenho para cada observação um multiplicador de probabilidade marginal modificado à medida que as observações anteriores são processadas, com base em uma tabela simples - "Se a observação A for verdadeira, modifique a probabilidade marginal da observação B por um fator de 1,2 ", por exemplo. Não é elegante, por qualquer meio, mas pode ser reparado, e parece ser razoavelmente estável em uma variedade de entradas.

(Atribuirei a recompensa ao que julgo ter sido a postagem mais útil em algumas horas; portanto, se alguém quiser dar uma lambidinha, participe.)


A probabilidade de que o teste 1 é um falso positivo não é 1-0,5, fez o 1 - (0,5 * probabilidade de não ter a doença)
fgregg

Bom ponto. Isso pode me ajudar a entender um pouco mais as coisas.
Daniel R Hicks

Desculpe, na verdade, eu estava errado. Especificidade = Pr (Verdadeiro Negativo) / [Pr (Verdadeiro Negativo) + Pr (Falso Positivo)] então Pr (Falso Positivo) = Pr (Verdadeiro Negativo) / especificidade - Pr (Verdadeiro Negativo) que é igual a Pr (Falso Positivo) = Pr (No Disease) (1 - specificity)
fgregg

1
Só para esclarecer: quando você diz que procura rigor, não quer dizer "rigor estatístico", ou seja, não precisa necessariamente do teste combinado para fornecer probabilidades precisas de erros do tipo 1 e 2, certo? Você está apenas procurando por algo que não é retirado do nada?
SheldonCooper 22/07

1
Como você sabe que os testes são fortemente interdependentes? É seu conhecimento de alto nível a priori (por exemplo, ambos os testes usam pressão arterial, portanto, provavelmente estão correlacionados) ou você tem estatísticas que mostram que eles estão correlacionados? Neste último caso, você pode usar uma pequena modificação da proposta de fgregg: modele todos os testes como independentes, exceto os pares interdependentes, que devem ser modelados como pares. Isso exigirá algumas estatísticas extras (do formato ), que você provavelmente possui, pois sabe que elas estão correlacionadas. p(T1,T2|Disease)
SheldonCooper 22/07

Respostas:


1

"Estou imaginando qual é a melhor maneira de combinar esses números de uma maneira que trará uma pontuação final que é (espero) mais confiável do que qualquer teste único". Uma maneira muito comum é calcular o alfa de Cronbach e, mais geralmente, executar o que alguns chamariam de análise de confiabilidade "padrão". Isso mostraria até que ponto uma determinada pontuação se correlaciona com a média das 17 outras pontuações; quais as pontuações dos testes que podem ser melhor descartadas da escala; e qual é a confiabilidade da consistência interna nos 18 e em um determinado subconjunto. Agora, alguns de seus comentários parecem indicar que muitos desses 18 não estão correlacionados; se isso for verdade, você pode acabar com uma escala que consiste em apenas alguns testes.

EDITAR APÓS COMENTÁRIO: Outra abordagem baseia-se na idéia de que há uma troca entre consistência interna e validade. Quanto menos correlacionados seus testes, melhor a cobertura do conteúdo, o que aumenta a validade do conteúdo (se não a confiabilidade). Então, pensando nessas linhas, você ignoraria o alfa de Cronbach e os indicadores relacionados da correlação item-total e, em vez disso, usaria um raciocínio a priori para combinar os 18 testes em uma escala. Esperamos que essa escala esteja altamente correlacionada com seu padrão-ouro.


Por várias razões (viés médico basicamente conservador), não tenho a opção de eliminar nenhum teste, nem quero especialmente. Pense nisso como talvez análogo a uma pontuação de crédito, onde ter uma grande dívida no cartão de crédito é "não correlacionado" com um trabalho mal remunerado e apto a ser demitido, mas os dois juntos criam uma situação muito mais séria do que individualmente.
Daniel R Hicks

1

Para simplificar um pouco, vamos supor que você tenha apenas dois testes de diagnóstico. Você quer calcular

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

Você sugeriu que os resultados desses testes são independentes e dependem da pessoa ter uma doença. Se sim, então

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

Onde é a sensibilidade do Teste .Pr(TiDisease)i

Pr(T1,T2) é a probabilidade incondicional de uma pessoa aleatória dar positivo em ambos os testes:

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

Onde

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

e é para o Teste .Pr(TiNo Disease)1specificityi


Não tenho certeza se isso funciona no meu caso (se estou entendendo "regressão logística" parcialmente). Primeiro, como descrito, não existem (ou pelo menos relativamente poucos) limites ou fatores de ajuste que eu possa ajustar para cada teste individual - apenas resultados positivos / negativos. Em segundo lugar, não tenho o luxo de conseguir obter novos dados para "treinar" o modelo - apenas apresentar os dados que tenho é como arrancar dentes.
Daniel R Hicks

Você poderia descrever seus dados um pouco mais? Pensei que você soubesse a verdade básica se os casos tinham a doença ou não?
58511 fgregg

1
A dificuldade que você tem com os números que não correspondem é com informações redundantes. Por exemplo, suponha que um dos testes seja "pressão arterial sistólica (PAS)> 140" e o outro seja "pressão arterial diastólica (PAD)> 90". Bem, esses 2 estão correlacionados e as informações inerentes a cada um não são únicas. Combinando-os logicamente, diga "SBP> 140 ou DBP> 90" oferecerá melhorias incrementais na sensibilidade. Mas sem um conjunto de dados que medisse simultaneamente o padrão-ouro, SBP e DBP, não há uma maneira precisa de quantificar a sensibilidade e a especificidade do teste combinado.
Ming K

1
@ Daniel: Parece que você não precisará de novos dados (além do que você já tem) para essa abordagem. Parece que você precisará das taxas de verdadeiro / falso positivo / negativo e não precisa de nenhum limite.
SheldonCooper 22/07

1
@ Daniel: isso foi em resposta ao seu comentário de 14 de julho. O que fgregg descreveu é basicamente uma abordagem da Naive Bayes. Parece que você tem informações suficientes para usar essa abordagem. Tudo que você precisa é das taxas, que você tem. Você não precisa de nenhuma informação nova e não precisa de limites nos testes. Parece que você já descobriu isso, já que diz que tentou. Você está certo de que quaisquer dependências distorcerão os resultados.
SheldonCooper 22/07
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.