Tengo múltiples codificadores independientes que están tratando de identificar eventos en una serie de tiempo, en este caso, viendo videos de conversaciones cara a cara y buscando comportamientos no verbales particulares (por ejemplo, cabezazos) y codificando el tiempo y la categoría de cada uno. evento. Estos datos podrían tratarse razonablemente como una serie de tiempo discreto con una alta tasa de muestreo (30 cuadros / segundo) o como una serie de tiempo continuo, con lo que sea más fácil trabajar.
Me gustaría calcular alguna medida de confiabilidad entre evaluadores, pero espero que haya cierta incertidumbre sobre cuándo ocurrieron los eventos; es decir, espero que un codificador pueda, por ejemplo, codificar que un movimiento en particular comenzó un cuarto de segundo más tarde de lo que otros codificadores pensaron que comenzó. Estos son eventos raros, si eso ayuda; típicamente al menos varios segundos (cientos de cuadros de video) entre eventos.
¿Existe una buena manera de evaluar la confiabilidad entre evaluadores que tenga en cuenta estos dos tipos de acuerdo y desacuerdo: (1) ¿los evaluadores están de acuerdo en qué evento ocurrió (si lo hubo) y (2) están de acuerdo en cuándo ocurrió? El segundo es importante para mí porque estoy interesado en ver el momento de estos eventos en relación con otras cosas que suceden en la conversación, como lo que dice la gente.
La práctica estándar en mi campo parece ser dividir las cosas en segmentos de tiempo, digamos 1/4 de segundo, agregar los eventos que cada codificador informó por segmento de tiempo, luego calcular el kappa de Cohen o alguna medida similar. Pero la elección de la duración del segmento es ad-hoc, y no tengo una buena idea de la incertidumbre en el momento de los eventos.
El mejor pensamiento que tengo hasta ahora es que podría calcular algún tipo de curva de confiabilidad; algo así como kappa en función del tamaño de la ventana dentro de la cual considero que dos eventos están codificados al mismo tiempo. Sin embargo, no estoy seguro de a dónde ir desde allí ...
Respuestas:
Aquí hay un par de maneras de pensar.
1
A) Puede tratar cada secuencia completa de codificaciones como un conjunto ordenado de eventos (es decir, ["movimiento de cabeza", "movimiento de cabeza", "movimiento de cabeza", "ceja levantada") y ["movimiento de cabeza", "movimiento de cabeza" , "ceja levantada"]), luego alinee las secuencias usando un algoritmo que tenga sentido para usted ( http://en.wikipedia.org/wiki/Sequence_alignment ). Entonces podría calcular la confiabilidad entre codificadores para toda la secuencia.
B) Luego, nuevamente usando las secuencias alineadas, puede comparar cuándo dijeron que sucedió un evento, dado que ambos observaron el evento.
2) Alternativamente, puede modelar esto como un Modelo de Markov Oculto, y usar algo como el algoritmo de Baumn-Welch para imputar las probabilidades de que, dado algún evento real, cada codificador codifique los datos correctamente. http://en.wikipedia.org/wiki/Baum-Welch_algorithm
fuente
En lugar de dividir los datos en partes arbitrarias, podría considerar las diferencias de tiempo reales. El codificador 1 informa el tiempo y la acción:
Una manera simple de ver qué codificador es el más confiable de acuerdo con otros codificadores es dándole una puntuación como esta:
Si la cercanía es importante para usted, considere alternativas como estas:
Con toda la información del problema disponible, no debería ser difícil implementar esta idea de manera práctica.
fuente