事件时间不确定的时间序列中事件的评估者间可靠性

机器算法验证 时间序列 可靠性 协议统计
2022-03-10 23:50:14

我有多个独立的编码人员试图识别时间序列中的事件——在这种情况下,观看面对面对话的视频并寻找特定的非语言行为(例如,点头)并编码每个事件的时间和类别事件。这些数据可以合理地被视为具有高采样率(30 帧/秒)的离散时间序列或连续时间序列,以更容易处理为准。

我想计算一些评估者间可靠性的度量,但我预计事件发生的时间会有一些不确定性;也就是说,我预计某个编码员可能会编码,例如,某个特定动作开始的时间比其他编码员认为的开始晚四分之一秒。这些是罕见的事件,如果有帮助的话;通常事件之间至少有几秒钟(数百个视频帧)。

有没有一种很好的方法来评估评估者间的可靠性,同时考虑这两种协议和分歧:(1)评估者是否同意发生的事件(如果有的话),以及(2)他们是否同意事件发生的时间?第二个对我来说很重要,因为我有兴趣查看这些事件相对于对话中发生的其他事情的时间,比如人们在说什么。

我所在领域的标准做法似乎是将事物划分为时间片,例如 1/4 秒左右,聚合每个编码器每个时间片报告的事件,然后计算 Cohen 的 kappa 或一些类似的度量。但是切片持续时间的选择是临时的,我对事件时间的不确定性不太了解。

到目前为止,我最好的想法是我可以计算出某种可靠性曲线;像 kappa 之类的东西,作为窗口大小的函数,我认为在该窗口中两个事件同时被编码。我真的不确定从那里去哪里,虽然......

2个回答

这里有几种方法可以考虑。

1

A)您可以将每个完整的编码序列视为一组有序的事件(即[“点头”,“摇头”,“点头”,“眉毛抬起”]和[“点头”,“摇头” ,“眉毛抬起”]),然后使用对您有意义的算法对齐序列(http://en.wikipedia.org/wiki/Sequence_alignment)。然后,您可以计算整个序列的编码器间可靠性。

B)然后,再次使用对齐的序列,你可以比较他们说事件发生的时间,因为他们都观察到了事件。

2) 或者,您可以将其建模为隐马尔可夫模型,并使用 Baumn-Welch 算法之类的东西来估算在给定一些实际事件的情况下,每个编码员实际正确编码数据的概率。http://en.wikipedia.org/wiki/Baum-Welch_algorithm

您可以考虑实际的时间差异,而不是将数据分成任意部分。Coder 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.

有了所有可用的问题信息,以实际的方式实施这个想法应该不难。