Eu tenho vários codificadores independentes que estão tentando identificar eventos em uma série temporal - nesse caso, assistindo a vídeos de conversas pessoais e procurando comportamentos não-verbais específicos (por exemplo, acenos de cabeça) e codificando a hora e a categoria de cada um. evento. Esses dados podem ser razoavelmente tratados como uma série temporal discreta com uma alta taxa de amostragem (30 quadros / segundo) ou como uma série temporal contínua, conforme o que for mais fácil de trabalhar.
Eu gostaria de calcular alguma medida de confiabilidade entre avaliadores, mas espero que exista alguma incerteza quando os eventos ocorrerem; isto é, espero que um codificador possa, por exemplo, codificar que um movimento específico começou um quarto de segundo depois do que outros codificadores pensaram que ele iniciou. Estes são eventos raros, se isso ajudar; normalmente, pelo menos, alguns segundos (centenas de quadros de vídeo) entre os eventos.
Existe uma boa maneira de avaliar a confiabilidade entre avaliadores que olha para esses dois tipos de concordância e discordância: (1) que os avaliadores concordam sobre o evento ocorreu (se houver), e (2) eles concordam sobre quando ocorreu? O segundo é importante para mim, porque estou interessado em analisar o momento desses eventos em relação a outras coisas que acontecem na conversa, como o que as pessoas estão dizendo.
A prática padrão em meu campo parece ser dividir as coisas em intervalos de tempo, digamos 1/4 de segundo, mais ou menos, agregar os eventos que cada codificador relatou por intervalo de tempo e depois calcular o kappa de Cohen ou alguma medida semelhante. Mas a escolha da duração da fatia é ad-hoc, e não tenho uma boa idéia de incerteza na hora dos eventos.
O melhor pensamento que tenho até agora é que eu poderia calcular algum tipo de curva de confiabilidade; algo como kappa em função do tamanho da janela na qual considero dois eventos como sendo codificados ao mesmo tempo. Não tenho muita certeza de onde ir a partir daí, no entanto ...
Respostas:
Aqui estão algumas maneiras de pensar.
1
A) Você pode tratar cada sequência completa de codificações como um conjunto ordenado de eventos (por exemplo, ["aceno de cabeça", "agitação de cabeça", "aceno de cabeça", "sobrancelha levantada"] e ["aceno de cabeça", "agitação de cabeça" , "sobrancelha levantada"]) e alinhe as seqüências usando um algoritmo que faça sentido para você ( http://en.wikipedia.org/wiki/Sequence_alignment ). Você pode então calcular a confiabilidade entre codificadores para toda a sequência.
B) Então, novamente, usando as seqüências alinhadas, você pode comparar quando elas disseram que um evento aconteceu, uma vez que ambas observaram o evento.
2) Como alternativa, você pode modelar isso como um modelo escondido de Markov e usar algo como o algoritmo Baumn-Welch para atribuir as probabilidades de que, dado algum evento real, cada codificador realmente codifique os dados corretamente. http://en.wikipedia.org/wiki/Baum-Welch_algorithm
fonte
Em vez de dividir os dados em partes arbitrárias, você pode considerar as diferenças de tempo reais. O codificador 1 relata tempo e ação:
Uma maneira simples de ver qual codificador é o mais confiável de acordo com outros codificadores é atribuindo a ele uma pontuação da seguinte forma:
Se a proximidade é importante para você, considere alternativas como estas:
Com todas as informações sobre problemas disponíveis, não deve ser difícil implementar essa idéia de maneira prática.
fonte