Confiabilidade entre avaliadores de eventos em uma série temporal com incerteza sobre o horário do evento

13

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 ...

chl
fonte
Parece uma situação em que métodos funcionais de análise de dados podem ser aplicados. Você os considerou?
mpiktas 22/12/10
Eu tinha pensado em análise de dados funcionais, mas não é uma área com a qual estou muito familiarizado. Estou trabalhando no livro de Ramsay e Silverman agora. Mas não vejo imediatamente como lidar com uma variável de resultado multinomial ...?
Existe um padrão-ouro disponível para essas medições (ou seja, você sabe quando os eventos de interesse ocorrem)? Quantos codificadores estão incluídos neste estudo? Quantos eventos distintos podemos esperar?
chl

Respostas:

2

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

fgregg
fonte
Essa técnica parece ser semelhante ao que Grafsgaard 2012 fez por uma tarefa semelhante.
KevinL
0

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:

049 D
113 C
513 C
724 G

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:

Add a point for each other coder that reported a D between (049-025) and (049+025)
Add a point for each other coder that reported a C between (113-025) and (113+025)
Add a point for each other coder that reported a C between (513-025) and (513+025)
Add a point for each other coder that reported a C between (724-025) and (724+025)
Subtract a point for each reported action.

Se a proximidade é importante para você, considere alternativas como estas:

Add 25/(Time_Thiscoder-Time_Othercoder)^2 points for each other coder that reported a matching observation.

Com todas as informações sobre problemas disponíveis, não deve ser difícil implementar essa idéia de maneira prática.

Dennis Jaheruddin
fonte
1
De onde vêm os "25"? Você tem referências ou pode explicar a teoria que justifica essa proposta?
whuber