Tengo un conjunto de datos con el siguiente formato.
Hay un resultado binario cáncer / no cáncer. Todos los médicos del conjunto de datos han visto a cada paciente y han emitido un juicio independiente sobre si el paciente tiene cáncer o no. Luego, los doctores dan su nivel de confianza de 5 de que su diagnóstico es correcto y el nivel de confianza se muestra entre paréntesis.
He intentado varias formas de obtener buenos pronósticos de este conjunto de datos.
Me funciona bastante bien promediar entre los médicos, ignorando sus niveles de confianza. En la tabla anterior, eso habría producido diagnósticos correctos para el paciente 1 y el paciente 2, aunque habría dicho incorrectamente que el paciente 3 tiene cáncer, ya que por una mayoría de 2-1 los médicos piensan que el paciente 3 tiene cáncer.
También probé un método en el que tomamos muestras de forma aleatoria de dos médicos, y si no están de acuerdo entre ellos, entonces el voto decisivo corresponde al médico que tenga más confianza. Ese método es económico porque no necesitamos consultar a muchos médicos, pero también aumenta bastante la tasa de error.
Probé un método relacionado en el que seleccionamos al azar a dos médicos, y si no están de acuerdo, seleccionamos al azar a dos más. Si un diagnóstico está adelantado por al menos dos 'votos', entonces resolvemos las cosas a favor de ese diagnóstico. Si no, seguimos probando más médicos. Este método es bastante económico y no comete demasiados errores.
No puedo evitar sentir que me falta una forma más sofisticada de hacer las cosas. Por ejemplo, me pregunto si hay alguna forma de dividir el conjunto de datos en conjuntos de entrenamiento y prueba, y encontrar una forma óptima de combinar los diagnósticos, y luego ver cómo funcionan esos pesos en el conjunto de prueba. Una posibilidad es algún tipo de método que me permita bajar de peso a los médicos que seguían cometiendo errores en el conjunto de prueba, y tal vez diagnósticos de peso que se realizan con alta confianza (la confianza se correlaciona con la precisión en este conjunto de datos).
Tengo varios conjuntos de datos que coinciden con esta descripción general, por lo que los tamaños de muestra varían y no todos los conjuntos de datos se relacionan con médicos / pacientes. Sin embargo, en este conjunto de datos en particular hay 40 médicos, cada uno atendió a 108 pacientes.
EDITAR: Aquí hay un enlace a algunas de las ponderaciones que resultan de mi lectura de la respuesta de @ jeremy-miles.
Los resultados no ponderados se encuentran en la primera columna. En realidad, en este conjunto de datos, el valor de confianza máximo era 4, no 5, como dije erróneamente anteriormente. Por lo tanto, siguiendo el enfoque de @ jeremy-miles, el puntaje no ponderado más alto que cualquier paciente podría obtener sería 7. Eso significaría que, literalmente, cada médico afirmó con un nivel de confianza de 4 que ese paciente tenía cáncer. El puntaje no ponderado más bajo que cualquier paciente podría obtener es 0, lo que significa que cada médico afirmó con un nivel de confianza de 4 que ese paciente no tenía cáncer.
Ponderación por el Alfa de Cronbach. En SPSS descubrí que había un Alfa de Cronbach general de 0.9807. Traté de verificar que este valor fuera correcto calculando el Alfa de Cronbach de una manera más manual. Creé una matriz de covarianza de los 40 médicos, que pego aquí . Luego, según mi comprensión de la fórmula Alfa de Cronbach donde es el número de elementos (aquí los médicos son los 'elementos') calculé sumando todos los elementos diagonales en la matriz de covarianza, y sumando todos los elementos en La matriz de covarianza. Entonces tengo Luego los 40 resultados diferentes de Cronbach Alpha que ocurrirían cuando cada médico fuera removido del conjunto de datos Puse a cero a cualquier médico que haya contribuido negativamente al Alfa de Cronbach. Se me ocurrieron pesos para los médicos restantes proporcional a su contribución positiva al Alfa de Cronbach.
Ponderación por correlaciones totales de artículos. Calculo todas las correlaciones de ítems totales, y luego pongo un peso proporcional a cada médico al tamaño de su correlación.
Ponderación por coeficientes de regresión.
Una cosa de la que aún no estoy seguro es cómo decir qué método funciona "mejor" que el otro. Anteriormente había estado calculando cosas como el puntaje de habilidad de Peirce, que es apropiado para casos en los que hay una predicción binaria y un resultado binario. Sin embargo, ahora tengo pronósticos que van de 0 a 7 en lugar de 0 a 1. ¿Debo convertir todos los puntajes ponderados> 3.50 a 1, y todos los puntajes ponderados <3.50 a 0?
fuente
No Cancer (3)
esCancer (2)
? Eso simplificaría un poco tu problema.Cancer (4)
hasta la predicción de no cáncer con máxima confianzaNo Cancer (4)
. No podemos decir esoNo Cancer (3)
yCancer (2)
son lo mismo, pero podríamos decir que hay un continuo, y los puntos medios en este continuo sonCancer (1)
yNo Cancer (1)
.Respuestas:
Primero, vería si los médicos están de acuerdo entre sí. No puede analizar a 50 médicos por separado, porque sobreajustará el modelo: un médico se verá genial, por casualidad.
Puede intentar combinar la confianza y el diagnóstico en una escala de 10 puntos. Si un médico dice que el paciente no tiene cáncer y tiene mucha confianza, eso es un 0. Si el médico dice que sí tiene cáncer y tiene mucha confianza, ese es un 9. Si el médico dice que no, y no están seguros, eso es un 5, etc.
Cuando intentas predecir, haces algún tipo de análisis de regresión, pero pensando en el orden causal de estas variables, es al revés. Si el paciente tiene cáncer es la causa del diagnóstico, el resultado es el diagnóstico.
Sus filas deben ser pacientes, y sus columnas deben ser médicos. Ahora tiene una situación común en psicometría (por eso agregué la etiqueta).
Luego mira las relaciones entre los puntajes. Cada paciente tiene una puntuación media y una puntuación de cada médico. ¿La puntuación media se correlaciona positivamente con la puntuación de cada médico? Si no, ese médico probablemente no sea confiable (esto se llama correlación ítem-total). A veces, elimina a un médico de la puntuación total (o puntuación media) y ve si ese médico se correlaciona con la media de todos los demás médicos: esta es la correlación total del elemento corregido.
Podría calcular el alfa de Cronbach (que es una forma de correlación intraclase) y el alfa sin cada médico. Alpha siempre debe aumentar cuando agrega un médico, por lo que si aumenta cuando elimina a un médico, la calificación de ese médico es sospechosa (esto a menudo no le dice nada diferente de la correlación ítem-total corregida).
Si usa R, este tipo de cosas está disponible en el paquete psicológico, usando la función alfa. Si usa Stata, el comando es alfa, en SAS es proc corr, y en SPSS está bajo escala, confiabilidad.
Luego puede calcular una puntuación, como la puntuación media de cada médico, o la media ponderada (ponderada por la correlación) y ver si esa puntuación es predictiva del diagnóstico verdadero.
O puede omitir esa etapa y hacer una regresión de la puntuación de cada médico en el diagnóstico por separado, y tratar los parámetros de regresión como pesos.
No dude en pedir una aclaración, y si quiere un libro, me gustan las "Escalas de medición de salud" de Streiner y Norman.
-Editar: basado en OPs información adicional.
Wow, eso es un gran alfa de Cronbach. La única vez que lo he visto tan alto es cuando se cometió un error.
Ahora haría una regresión logística y miraría las curvas ROC.
La diferencia entre ponderación por regresión y correlación depende de cómo cree que responden los médicos. Algunos documentos pueden ser más seguros (sin ser más hábiles) y, por lo tanto, pueden usar más los rangos extremos. Si desea corregir eso, usar la correlación, en lugar de la regresión, lo hace. Probablemente pesaría por regresión, ya que esto mantiene los datos originales (y no descarta ninguna información).
Editar (2): ejecuté modelos de regresión logística en R para ver qué tan bien cada uno predijo el resultado. TL / DR: no hay nada entre ellos.
Aquí está mi código:
Y la salida:
fuente
Dos sugerencias listas para usar:
fuente
P
= probabilidad de ser cáncer dado por el médico, luego (en notación de pitón):y=[1 if p >= 0.5 else 0 for p in P]
yw=[abs(p-0.5)*2 for p in P]
. Luego entrene al modelo:LogisticRegression().
fit
(X,y,w)
(Esto está fuera de mi área de especialización, por lo que la respuesta de Jeremy Miles puede ser más confiable).
Aquí hay una idea.
Primero, imagine que no hay nivel de confianza. Luego, para cada paciente , tienen cáncer o no , y cada médico les diagnosticó cáncer o no, .c i ∈ { 0 , 1 } j = 1 ... m d i j ∈ { 0 , 1 }i = 1 ... N Cyo∈ { 0 , 1 } j = 1 ... m reyo j∈ { 0 , 1 }
Un enfoque simple es asumir que, si bien los médicos pueden estar de acuerdo o en desacuerdo con el diagnóstico de un paciente dado, si conocemos el verdadero estado del paciente, entonces el diagnóstico de cada médico puede tratarse como independiente. Es decir, los son condicionalmente independientes dado . Esto da como resultado un clasificador bien definido conocido como Naive Bayes , con parámetros que son fáciles de estimar.reyo j Cyo
En particular, los parámetros principales son la tasa base, , y las probabilidades de diagnóstico condicional Tenga en cuenta que este último parámetro es un promedio ponderado de los diagnósticos para el médico , donde los pesos son las verdaderas condiciones del paciente .p [ c ] ≈ 1norte∑yoCyo
Ahora, si este modelo es razonable, entonces una forma de incorporar los niveles de confianza es ajustar los pesos. Entonces, las probabilidades condicionales se convertirían en Aquí es un peso que explica el nivel de confianza de .
Tenga en cuenta que si sus pesos se lanzan como probabilidades , entonces puede usar la fórmula " Acceso directo de Bernoulli " para dar cuenta del caso adecuada.w ∈ [ 0 , 1 ]
Nota: ¡ Esto requiere que su software dé enw ∈ ( 0 , 1 ) k ∈ { 1 ... K} w = k / ( K+ 1 )
0^0=1
lugar de0^0=NaN
, lo cual es común pero vale la pena verificar! Alternativamente, puede garantizar , por ejemplo, si la confianza es entonces funcionaría.fuente
No Cancer (3) = Cancer (2)
, esto es consistente con mi modelo de ponderación usando , ya que . Alternativamente, si usted dice , esto es consistente con , ya que .No Cancer (3) = Cancer (3)
De su pregunta, parece que lo que desea probar es su sistema de medición. En el ámbito de la ingeniería de procesos, este sería un análisis del sistema de medición de atributos o MSA.
Este enlace proporciona información útil sobre el tamaño de muestra necesario y los cálculos se ejecutan para realizar un estudio de este tipo. https://www.isixsigma.com/tools-templates/measurement-systems-analysis-msa-gage-rr/making-sense-attribute-gage-rr-calculations/
Con este estudio, también necesitará que el médico diagnostique al mismo paciente con la misma información al menos dos veces.
Puede realizar este estudio de dos maneras. Puede usar la clasificación simple de cáncer / sin cáncer para determinar el acuerdo entre los médicos y por cada médico. Idealmente, también deberían poder diagnosticar con el mismo nivel de confianza. Luego puede usar la escala completa de 10 puntos para evaluar el acuerdo entre y por cada médico. (Todos deberían estar de acuerdo en que el cáncer (5) tiene la misma calificación, que ningún cáncer (1) tiene la misma calificación, etc.)
Los cálculos en el sitio web vinculado son fáciles de realizar en cualquier plataforma que pueda estar utilizando para sus pruebas.
fuente