Interrater-Zuverlässigkeit für Ereignisse in einer Zeitreihe mit Unsicherheit über die Ereigniszeit

13

Ich habe mehrere unabhängige Programmierer, die versuchen, Ereignisse in einer Zeitreihe zu identifizieren. In diesem Fall sehen sie sich ein Video von Gesprächen von Angesicht zu Angesicht an, suchen nach bestimmten nonverbalen Verhaltensweisen (z. B. Kopfnicken) und codieren die Zeit und die Kategorie der einzelnen Ereignisse Veranstaltung. Diese Daten könnten vernünftigerweise als diskrete Zeitreihen mit einer hohen Abtastrate (30 Bilder / Sekunde) oder als kontinuierliche Zeitreihen behandelt werden, je nachdem, was einfacher zu bearbeiten ist.

Ich würde gerne ein gewisses Maß an Interrater-Zuverlässigkeit berechnen, aber ich gehe davon aus, dass bei Eintreten der Ereignisse eine gewisse Unsicherheit besteht . das heißt, ich erwarte, dass ein Codierer zum Beispiel codieren könnte, dass eine bestimmte Bewegung eine Viertelsekunde später begann, als andere Codierer dachten, dass sie gestartet wurde. Dies sind seltene Ereignisse, wenn das hilft; In der Regel mindestens einige Sekunden (Hunderte von Videoframes) zwischen den Ereignissen.

Gibt es eine gute Methode zur Beurteilung der Zuverlässigkeit zwischen Bewertern, bei der diese beiden Arten von Übereinstimmung und Meinungsverschiedenheit berücksichtigt werden: (1) Stimmen die Bewerter darin überein, welches Ereignis aufgetreten ist (falls vorhanden), und (2) sind sie sich einig, wann es aufgetreten ist? Die zweite ist wichtig für mich, weil ich daran interessiert bin, den Zeitpunkt dieser Ereignisse im Verhältnis zu anderen Dingen zu betrachten, die im Gespräch vor sich gehen, wie zum Beispiel das, was die Leute sagen.

Die übliche Praxis in meinem Bereich scheint darin zu bestehen, Dinge in Zeitscheiben aufzuteilen, etwa 1/4 Sekunde, die Ereignisse zu aggregieren, die jeder Codierer pro Zeitscheibe gemeldet hat, und dann Cohens Kappa oder ein ähnliches Maß zu berechnen. Aber die Wahl der Slice-Dauer ist ad-hoc und ich kann mir keine Vorstellung von der Ungewissheit in der Zeit der Ereignisse machen.

Der beste Gedanke, den ich bisher habe, ist, dass ich eine Art Zuverlässigkeitskurve berechnen könnte; so etwas wie Kappa als Funktion der Größe des Fensters, in dem ich zwei Ereignisse als gleichzeitig codiert betrachte. Ich bin mir allerdings nicht sicher, wohin ich von dort aus gehen soll ...

chl
quelle
Es sieht nach einer Situation aus, in der funktionale Datenanalysemethoden angewendet werden können. Hast du sie in Betracht gezogen?
mpiktas
Ich hatte über eine funktionale Datenanalyse nachgedacht, aber das ist kein Bereich, mit dem ich sehr vertraut bin. Ich arbeite jetzt über Ramsay und Silvermans Buch. Aber ich verstehe nicht sofort, wie ich mit einer multinomialen Ergebnisvariablen umgehen soll ...?
Gibt es für diese Messungen einen Goldstandard (dh wissen Sie, wann das / die interessierende (n) Ereignis (e) eintritt (en))? Wie viele Codierer sind in dieser Studie enthalten? Mit wie vielen unterschiedlichen Ereignissen können wir rechnen?
CHL

Antworten:

2

Hier sind ein paar Denkanstöße.

1

A) Sie können jede vollständige Sequenz von Codierungen als eine geordnete Reihe von Ereignissen behandeln (z. B. ["Kopfnicken", "Kopfschütteln", "Kopfnicken", "Augenbrauen hochziehen"] und ["Kopfnicken", "Kopfschütteln"). , "eyebrow raised"]), und richten Sie die Sequenzen mit einem für Sie sinnvollen Algorithmus aus ( http://en.wikipedia.org/wiki/Sequence_alignment ). Sie könnten dann die Intercodiererzuverlässigkeit für die gesamte Sequenz berechnen.

B) Dann können Sie erneut anhand der ausgerichteten Sequenzen vergleichen, wann ein Ereignis aufgetreten ist, vorausgesetzt, beide haben das Ereignis beobachtet.

2) Alternativ können Sie dies als Hidden-Markov-Modell modellieren und so etwas wie den Baumn-Welch-Algorithmus verwenden, um die Wahrscheinlichkeiten anzunehmen, mit denen jeder Codierer die Daten unter bestimmten Umständen tatsächlich korrekt codiert hat. http://en.wikipedia.org/wiki/Baum-Welch_algorithm

fgregg
quelle
Diese Technik scheint ähnlich zu sein wie Grafsgaard 2012 für eine ähnlich klingende Aufgabe.
KevinL
0

Anstatt die Daten in willkürliche Teile aufzuteilen, könnten Sie die tatsächlichen Zeitunterschiede berücksichtigen. Coder 1 meldet Zeit und Aktion:

049 D
113 C
513 C
724 G

Eine einfache Methode, um herauszufinden, welcher Codierer für andere Codierer am zuverlässigsten ist, besteht darin, ihm eine Punktzahl wie die folgende zu geben:

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.

Wenn Nähe für Sie wichtig ist, ziehen Sie Alternativen in Betracht wie diese:

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

Mit allen verfügbaren Probleminformationen sollte es nicht schwierig sein, diese Idee auf praktische Weise umzusetzen.

Dennis Jaheruddin
quelle
1
Woher kommen die "25"? Haben Sie Referenzen oder können Sie die Theorie erläutern, die diesen Vorschlag rechtfertigt?
Whuber