Interrater надежность для событий во временном ряду с неопределенностью относительно времени события

13

У меня есть несколько независимых кодеров, которые пытаются идентифицировать события во временном ряду - в этом случае я смотрю видео разговора лицом к лицу и ищу конкретные невербальные поведения (например, кивает головой) и кодирует время и категорию каждого событие. Эти данные целесообразно обрабатывать как ряды с дискретным временем с высокой частотой дискретизации (30 кадров в секунду) или как ряды с непрерывным временем, с чем проще работать.

Я хотел бы вычислить некоторую меру надежности между оценщиками, но я ожидаю, что будет некоторая неопределенность в том, когда произошли события; то есть, я ожидаю, что один кодер может, например, кодировать, что конкретное движение началось на четверть секунды позже, чем другие кодеры думали, что оно началось. Это редкие события, если это помогает; обычно не менее нескольких секунд (сотни видеокадров) между событиями.

Есть ли хороший способ оценки надежности между оценщиками, который рассматривает оба этих типа соглашения и разногласия: (1) согласны ли эксперты по поводу того, какое событие произошло (если есть), и (2) они согласны с тем, когда оно произошло? Второе важно для меня, потому что мне интересно посмотреть на время этих событий относительно других вещей, происходящих в разговоре, например, что говорят люди.

Стандартная практика в моей области, кажется, состоит в том, чтобы разделить вещи на временные интервалы, скажем, 1/4 секунды или около того, агрегировать события, о которых каждый кодер сообщил за интервал времени, а затем вычислить каппу Коэна или некоторую похожую меру. Но выбор длительности среза является специальным, и я не могу понять, что неопределенность во времени событий.

Лучшая мысль, которую я имею до сих пор, - это то, что я могу вычислить некоторую кривую надежности; что-то вроде каппа в зависимости от размера окна, в котором я считаю, что два события кодируются одновременно. Я не совсем уверен, куда идти оттуда, хотя ...

хл
источник
Похоже, ситуация, когда функциональные методы анализа данных могут быть применены. Вы их рассматривали?
mpiktas
Я думал о функциональном анализе данных, но это не та область, с которой я хорошо знаком. Я работаю через книгу Рамсея и Сильвермана. Но я не сразу вижу, как обращаться с полиномиальной переменной результата ...?
Существует ли золотой стандарт для этих измерений (например, знаете ли вы, когда происходит интересующее вас событие (события))? Сколько кодеров включено в это исследование? Сколько разных событий мы можем ожидать?
ЧЛ

Ответы:

2

Вот несколько способов подумать.

1

A) Вы можете рассматривать каждую полную последовательность кодировок как упорядоченный набор событий (например, ["кивок головы", "тряска головы", "кивок головы"] и ["кивок головы", "тряска головы" , "брови подняты"]), затем выровняйте последовательности, используя понятный вам алгоритм ( http://en.wikipedia.org/wiki/Sequence_alignment ). Затем вы можете рассчитать надежность межкодерного кодирования для всей последовательности.

Б) Затем, снова используя выровненные последовательности, вы можете сравнить, когда они сказали, что произошло событие, учитывая, что они оба наблюдали событие.

2) С другой стороны, вы можете смоделировать это как скрытую марковскую модель и использовать что-то вроде алгоритма Баумна-Уэлча, чтобы рассчитать вероятности того, что при некотором фактическом событии каждый кодер действительно закодировал данные правильно. http://en.wikipedia.org/wiki/Baum-Welch_algorithm

fgregg
источник
Эта техника, похоже, похожа на ту, что Grafsgaard 2012 сделал для аналогичной задачи звучания.
KevinL
0

Вместо того, чтобы разбивать данные на произвольные части, вы могли бы учитывать фактические различия во времени. Кодер 1 сообщает время и действие:

049 D
113 C
513 C
724 G

Простой способ определить, какой кодер является наиболее надежным по сравнению с другими кодировщиками, - дать ему оценку следующим образом:

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.

Если для вас важна близость, рассмотрите альтернативы, подобные этим:

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

Имея всю доступную информацию о проблемах, не составит труда реализовать эту идею на практике.

Деннис Джаэруддин
источник
1
Откуда взялись «25»? У вас есть ссылки или вы можете объяснить теорию, которая оправдывает это предложение?
whuber