9 votos

¿Cómo debo enfoque de este binario problema de predicción?

Tengo un conjunto de datos con el siguiente formato.

Forecasts of cancer no cancer

Hay un resultado binario del cáncer o no cáncer. Cada médico en el conjunto de datos se ha visto cada paciente y da una opinión independiente sobre si el paciente tiene cáncer o no. Los médicos, a continuación, dar a su nivel de la confianza de los 5, que su diagnóstico es correcto, y el nivel de confianza se muestran en los soportes.

He probado varias maneras de obtener buenas previsiones de este conjunto de datos.

Funciona bastante bien para mí simplemente el promedio a través de los médicos, haciendo caso omiso de sus niveles de confianza. En la tabla de arriba que habría de producir correcto diagnóstico para el Paciente 1 y el Paciente 2, a pesar de que tendría incorrectamente dijo que el Paciente 3, tiene cáncer, ya que por un 2-1 mayoría de los médicos cree que el Paciente 3 tiene cáncer.

También probé con un método en el que tenemos al azar muestras de dos médicos, y si no están de acuerdo el uno con el otro, a continuación, el voto decisivo va a cualquier médico es más seguro. Ese método es económico, ya que no necesitamos consultar a un montón de médicos, pero también aumenta la tasa de error bastante.

He intentado un método en el que se selecciona aleatoriamente dos médicos, y si no están de acuerdo el uno con el otro se selecciona aleatoriamente dos más. Si uno es de diagnóstico por delante al menos dos 'votos', entonces podemos resolver las cosas en favor de ese diagnóstico. Si no, seguimos muestreo de más médicos. Este método es bastante económico y no comete muchos errores.

Yo no puedo dejar de sentir que me falta algo más sofisticada manera de hacer las cosas. Por ejemplo, me pregunto si hay alguna manera de que yo pudiera dividir el conjunto de datos en conjuntos de pruebas y entrenamiento, y el trabajo de alguna manera óptima para combinar los diagnósticos, y luego ver cómo esos pesos realizar en el conjunto de prueba. Una posibilidad es algún tipo de método que me permite restar importancia a los médicos que mantienen que los errores en el juicio, y tal vez upweight diagnósticos que se realizan con alta confianza (confianza no se correlacionan con exactitud en este conjunto de datos).

Tengo varios conjuntos de datos que coinciden con esta descripción general, por lo que el tamaño de la muestra varían, y no todos los conjuntos de datos se refieren a los médicos/pacientes. Sin embargo, en este particular conjunto de datos hay 40 médicos, que cada uno vio 108 pacientes.

EDIT: Aquí hay un enlace a algunos de los pesos que el resultado de mi lectura de @jeremy-millas de la respuesta.

  1. No ponderada, los resultados se encuentran en la primera columna. De hecho en este conjunto de datos que el máximo valor de confianza fue de 4, no 5 como yo erróneamente se dijo anteriormente. Por lo tanto seguir a @jeremy-millas del enfoque de los más altos sin ponderar la puntuación de cualquier paciente podría obtener sería de 7. Eso significaría que, literalmente, cada médico afirmó con un nivel de confianza de 4 que el paciente tenía cáncer. El menor no ponderado puntaje cualquier paciente puede obtener es de 0, lo cual significa que cada médico afirmó con un nivel de confianza de 4 que el paciente no tiene cáncer.

  2. Ponderación por los Alfa de Cronbach. He encontrado en SPSS que hubo un total Alfa de Cronbach de 0.9807. Traté de verificar que este valor era la correcta, el cálculo de Alfa de Cronbach de una forma más manual. He creado una matriz de covarianza de los 40 a los médicos, que me pegue aquí. A continuación, basado en mi entendimiento de la Alfa de Cronbach fórmula $\alpha = \frac{K}{K-1}\left(1-\frac{\sum \sigma^2_{x_i}}{\sigma^2_T}\right)$ donde $K$ es el número de elementos (aquí los médicos son los 'elementos') he calculado $\sum \sigma^2_{x_i}$ al sumar todos los elementos de la diagonal en la matriz de covarianza, y $\sigma^2_T$ al sumar todos los elementos de la matriz de covarianza. Luego me puse a $\alpha = \frac{40}{40-1}\left(1-\frac{8.7915}{200.7112}\right)=0.9807$ I luego se calcula el 40 tipos diferentes de Alfa de Cronbach de los resultados que se producen cuando cada médico fue quitada del conjunto de datos. Yo ponderado a cualquier médico que ha contribuido negativamente a la Alfa de Cronbach en cero. Se me ocurrió pesos para el resto de los médicos proporcional a su contribución positiva a la Alfa de Cronbach.

  3. Ponderación por el Total de los elementos de las Correlaciones. Tengo que calcular el Total de todos los Elemento de Correlaciones y, a continuación, el peso de cada médico proporcional al tamaño de su correlación.

  4. Ponderación por los Coeficientes de Regresión.

Una cosa que yo todavía no estoy seguro acerca de cómo decir cuál es el método de trabajo "mejor" que el otro. Anteriormente había sido el cálculo de cosas como la de Peirce Habilidad de Puntuación, el cual es adecuado para los casos en los que hay un binario y predicción de un resultado binario. Sin embargo, ahora tengo las previsiones oscilan de 0 a 7 en lugar de 0 a 1. Debo de convertir a todos los ponderada de las puntuaciones > 3.50 a 1, y el promedio ponderado de las puntuaciones < 3.50 a 0?

7voto

Brandon Grossutti Puntos 140

En primer lugar, me gustaría ver si los médicos están de acuerdo el uno con el otro. Usted no puede analizar el 50 médicos por separado, porque vas a overfit el modelo médico se ven muy bien, por casualidad.

Usted puede tratar de 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 que son muy seguros, que es un 0. Si el doc dice que tiene cáncer y que son muy seguros, que es un 9. Si el doc dice que no, y no son de confianza, que es un 5, etc.

Cuando usted está tratando de predecir, hacer algún tipo de análisis de regresión, pero pensando en la causal de pedidos de estas variables, es la otra manera alrededor. Si el paciente tiene cáncer es la causa de que el diagnóstico, el resultado es el diagnóstico.

Las filas deben ser pacientes, y sus columnas deben ser doctores. Ahora tenemos una situación que es común en psicometría (que es la razón por la que he añadido la etiqueta).

A continuación, mira las relaciones entre las puntuaciones. Cada paciente tiene una media de puntuación, y un puntaje de cada médico. ¿El promedio de las puntuaciones se correlacionan positivamente con todos los doctores de la puntuación? Si no, que el médico es probablemente no es digno de confianza (esto se llama el elemento-total correlation). A veces sacan un médico de la puntuación total (o la media de la puntuación) y ver si ese médico se correlaciona con la media de todos los otros médicos - este es el corregida elemento de correlación total.

Usted puede calcular el alfa de Cronbach (que es una forma de correlación intra clase), y el alfa sin cada médico. Alfa siempre debe elevarse al agregar un médico, así que si se eleva cuando se quita un médico, el médico de calificación es sospechoso (esto no suele decirle nada diferente de la corregida ítem-total de la correlación).

Si utiliza R, este tipo de cosas está disponible en el psych paquete, utilizando la función alfa. Si el uso de Stata, el comando es el alfa, en SAS es proc corr, y en SPSS se bajo de la escala, la fiabilidad.

A continuación, se puede calcular una puntuación, la puntuación media de cada médico, o la media ponderada (ponderado por la correlación) y ver si la puntuación es predictiva de la verdadera diagnóstico.

O usted podría saltar esa etapa, y la regresión de cada médico de la puntuación en el diagnóstico por separado, y el tratamiento de los parámetros de regresión como pesos.

Siéntase libre de pedir una aclaración, y si quieres un libro, me gusta Streiner y Norman la "Salud Escalas de Medición".

-Editar: basado en OPs información adicional.

Wow, eso es un heck de un alfa de Cronbach. La única vez que he visto que el alto es cuando se cometió un error.

Me gustaría ahora hacer la regresión logística y mirar las curvas ROC.

La diferencia entre la ponderación por regresión y correlación depende de cómo usted cree que los médicos están respondiendo. Algunos médicos podrían ser generalmente más seguros de sí mismos (sin ser más hábil), y por lo tanto pueden utilizar los rangos extremos más. Si desea corregir para que, usando la correlación, en lugar de la regresión, lo hace. Probablemente me peso por la regresión, ya que esto mantiene los datos originales (y no descartar ninguna información).

Editar (2): corrí modelos de regresión logística en R para ver qué tan bien cada predijo la salida. tl/dr: no hay nada entre ellos.

Aquí está mi código:

d <- read.csv("Copy of Cancer data - Weightings.csv")

mrc <- glm(cancer ~ weightrc, data = d, family = "binomial")
mun <- glm(cancer ~ unweight, data = d, family = "binomial")
mca <- glm(cancer ~ weightca, data = d, family = "binomial")
mic <- glm(cancer ~ weightic, data = d, family = "binomial")

d$prc <- predict(mrc, type = "response")
d$pun <- predict(mun, type = "response")
d$pca <- predict(mca, type = "response")
d$pic <- predict(mic, type = "response")

par(mfrow = c(2, 2))
roc(d$cancer, d$prc, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pun, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pca, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pic, ci = TRUE, plot = TRUE)

4 ROC curves

Y el resultado:

> par(mfrow = c(2, 2))
> roc(d$cancer, d$prc, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$prc, ci = TRUE,     plot = TRUE)

Data: d$prc in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9831
95% CI: 0.9637-1 (DeLong)
> roc(d$cancer, d$pun, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pun, ci = TRUE,     plot = TRUE)

Data: d$pun in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9808
95% CI: 0.9602-1 (DeLong)
> roc(d$cancer, d$pca, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pca, ci = TRUE,     plot = TRUE)

Data: d$pca in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9854
95% CI: 0.9688-1 (DeLong)
> roc(d$cancer, d$pic, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pic, ci = TRUE,     plot = TRUE)

Data: d$pic in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9822
95% CI: 0.9623-1 (DeLong)

2voto

Paul Hinett Puntos 630

Dos out-of-the-box sugerencias:

  1. Usted puede utilizar pesos en la función de pérdida de la regresión logística, a fin de que el médico que está muy seguro de que el paciente tiene cáncer con P=1 se obtiene el doble que el impacto ha otro que dice que tiene cáncer con P=0.75. No te olvides de transformar apropiadamente sus probabilidades en pesos.
  2. Una familia de modelos descuidado a menudo son la clasificación de los modelos. Dentro de los rankers hay tres grandes grupos: listwise, pointwise y pares de clasificación, dependiendo de lo que su entrada. Suena como que usted podría utilizar pointwise ranking en su caso.

2voto

GeoMatt22 Puntos 1290

(Esto está fuera de mi área de especialización, por lo que la respuesta por Jeremy Millas puede ser más confiable.)

Aquí es una idea.

Primero, imagina que no hay ningún nivel de confianza. A continuación, para cada paciente $i=1\ldots{N}$, o bien tienen cáncer o no $c_i\in\{0,1\}$, y cada médico $j=1\ldots{m}$, ya sea diagnosticado con cáncer o no, $d_{ij}\in\{0,1\}$.

Un enfoque simple es asumir que, mientras los médicos esté de acuerdo o no en un determinado diagnóstico del paciente, si queremos saber el verdadero estado del paciente, a continuación, cada diagnóstico del médico puede ser tratado de forma independiente. Es decir, el $d_{ij}$ son condicionalmente independientes dado $c_i$. Esto se traduce en un bien definido clasificador conocido como Naive Bayes, con parámetros que son fáciles de estimar.

En particular, los principales parámetros son la base de la tasa, $p[c]\approx\tfrac{1}{N}\sum_ic_i$, y el condicional diagnóstico de las probabilidades $$p\big[d_j|c\big]\approx\frac{\sum_id_{ij}c_i}{\sum_ic_i}$$ Tenga en cuenta que este último parámetro es un promedio ponderado de los diagnósticos médico $j$, donde los pesos son las verdaderas condiciones del paciente $c_i$.

Ahora bien, si este modelo es razonable, entonces una forma de incorporar el nivel de confianza es ajustar los pesos. Entonces el condicional de probabilidades habría de ser $$p\big[d_j|c,w_j\big]\approx\frac{\sum_id_{ij}w_{ij}c_i}{\sum_iw_{ij}c_i}$$ Aquí $w_{ij}\geq{0}$ es un peso que representa el nivel de confianza de $d_{ij}$.

Tenga en cuenta que si los pesos son emitidos como probabilidades $w\in[0,1]$, entonces usted puede utilizar el "Bernoulli acceso directo" fórmula $$p\big[d\mid{w}\big]=d^w(1-d)^{1-w}$$ para dar cuenta de la $d=0$ de los casos de forma adecuada.

Nota: Esto requiere que el software de dar 0^0=1 en lugar de 0^0=NaN, que es común, pero vale la pena comprobar! Alternativamente, usted puede asegurarse de $w\in(0,1)$, por ejemplo, si la confianza es $k\in\{1\ldots{K}\}$ $w=k/(K+1)$ funcionaría.

1voto

thyme Puntos 173

Por tu pregunta, parece que lo que se quiere evaluar es su sistema de medición. En el proceso de ingeniería de dominio, esto sería un atributo de sistema de medición de análisis o MSA.

Este enlace proporciona información útil sobre el tamaño de muestra necesario y los cálculos de ejecución para llevar a cabo 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 se necesita un médico para diagnosticar el mismo paciente, con la misma información dos veces al menos.

Usted puede llevar a cabo este estudio de dos maneras. Puede utilizar el simple cáncer/cáncer de mama, de clasificación para determinar el acuerdo entre los médicos y por cada médico. Idealmente, deben también ser capaces de diagnosticar con el mismo nivel de confianza. Luego, puede utilizar el total escala de 10 puntos para la prueba de acuerdo entre y por cada médico. (Todos deben estar de acuerdo en que el cáncer (5) es la misma notación, que el cáncer no (1) es la misma notación, &c.)

Los cálculos en la página web son sencillos de llevar a cabo en cualquier plataforma que se puede usar para sus pruebas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X