Randomisierung - idea-labs/documentation GitHub Wiki

Für Studien kann es notwendig sein, dass Versuchspersonen zufällig einer von verschiedenen Bedingungen zugeordnet werden oder sie Fragebögen oder Items in unterschiedlicher Reihenfolge erhalten. Verwendet dafür nicht das Randomisierungs-Modul von REDCap. Das ist zu komplex und für die Zwecke der meisten Studien, die wir durchführen, nicht geeignet. Statt dessen könnt Ihr mithilfe von Branching Logic oder Survey Queue randomisieren. Die Zuordnung zu einer Bedingung oder Reihenfolge erfolgt auf Basis der Record-ID. Hinweise zum Aktivieren von Surveys findet Ihr hier.

Schritt 1: Record-ID in einem extra Instrument generieren

Für die nachfolgenden Schritte ist es wichtig, dass bereits eine Record-ID generiert wurde (die Record ID steht immer im ersten Instrument). Eine Möglichkeit dafür wäre, indem die Person einen Survey ausfüllt, bevor sie einer Bedingung zugeordnet wird. Im Regelfall würdet Ihr eine Online-Studie mit einer Datenschutz- und Einverständniserklärung beginnen, die von der Person bestätigt und abgeschickt wird. Damit wäre dieser Punkt automatisch erledigt, da dann die Record-ID erstellt wird. Wollt Ihr direkt mit den unterschiedlichen Bedingungen beginnen (weil beispielsweise Eltern die Einverständniserklärung unabhängig von REDCap ausgefüllt haben), muss dennoch ein extra Survey am Anfang stehen, mit dem die Record-ID generiert wird. Notfalls enthält dieser Survey nur eine Frage, die für die Studie nicht relevant ist oder Hinweise. Selbst wenn in diesem Survey nichts von den Versuchspersonen ausgefüllt wird, muss er auf jeden Fall abgeschickt werden.
Eine zweite Möglichkeit wäre, dass für die Person bereits ein erstes Instrument angelegt wurde und sie einen personalisierten Link erhält. In diesem Fall kann sie auch direkt einer Bedingung zugeordnet werden.
In den meisten Studien würdet Ihr vermutlich mit der ersten Möglichkeit arbeiten.

Schritt 2: Hilfsvariable für die Randomisierung erstellen

Ihr legt ein extra Instrument an (nennt es z.B. Randomisierung), das im Online-Designer nicht als Survey aktiviert und für die Versuchspersonen nicht zugänglich ist. Darin legt Ihr eine oder mehrere Variablen als Calculated Fields an mit folgender Formel:

([record_id] - rounddown(([record_id]/6),0)*6)+1

Im Beispiel steht die Zahl sechs für sechs verschiedene Bedingungen, die randomisiert werden sollen. Sie kann, je nachdem wie viele Bedingungen Ihr habt, natürlich beliebig verändert werden. Im Beispiel wird jeder Versuchsperson auf Basis der Record-ID eine Zahl von 1 bis 6 zugewiesen. Auf Basis dieser Zahl kann sie danach mittel Branching Logic oder Survey Queue einer von sechs Bedingungen zugewiesen werden.

Schritt 3: Randomisierung

Randomisierung mittels Branching Logic

Die Hilfsvariable muss immer in einem anderen Instrument als die Record-ID stehen. Wenn Ihr das Instrument nicht weiter verwendet, sollte es im Online-Designer nicht als Survey aktiviert sein. Verwendet Ihr das Instrument, muss die Variable mit dem Actiontag @HIDDEN-SURVEY in der Umfrage verborgen werden. Danach ist die Randomisierung ganz normale Branching Logic. Je nachdem welche Zahl mit der Hilfsvariable generiert wird, bestimmt Ihr, welche Variable erscheint. Nachfolgende Variablen können dann wiederum über Branching Logic sichtbar gemacht oder verborgen werden.

Ein Problem bei diesem Vorgehen ist, dass die Branching Logic nur auf Basis der Hilfsvariable zuverlässig funktioniert. Bei allen nachfolgenden Variablen besteht die Gefahr, dass die Versuchspersonen die vorherigen Variablen nicht ausfüllen und damit die Branching Logic nicht mehr funktioniert. Ihr könnt das Ausfüllen der Variablen erzwingen, das ist aber wieder mit anderen Problemen verbunden.

Sobald also mehr als eine Variable randomisiert werden soll, ist es in den meisten Fällen besser, die Survey Queue zu verwenden, die nicht davon beeinflusst wird, ob Personen alle Variablen bearbeiten.

Randomisierung mittels Survey Queue

Wichtig: Bei einer Randomisierung von Instrumenten mittels Survey Queue muss die Hilfsvariable in einem extra Instrument stehen. Dieses sollte am besten nicht als Survey aktiviert werden, so besteht gar nicht die Möglichkeit, dass es versehentlich für die Versuchspersonen sichtbar wird.

Richtet die Instrumente für Eure Erhebung ein, die zu randomisierenden und die, die für alle gleich sind. Soll Versuchspersonen beispielsweise einer von drei Stimuli präsentiert werden, legt Ihr für jeden Stimulus ein extra Instrument an (Beispiel 1). Sollen Variablen oder Variablenblöcke in unterschiedlicher Reihenfolge präsentiert werden, legt ihr für jede Variable bzw. jeden Variablenblock ein extra Instrument an. Die Reihenfolge wird dann über die Survey Queue variiert (Beispiel 2).

Danach aktiviert Ihr im Online Designer jedes Instrument als Survey. Wenn Ihr oben im Projekt auf "Ihre Umfragen" geht, wird Euch die Survey Queue angezeigt. Mittels Conditional Logic legt Ihr fest, wann welcher Survey angezeigt wird. Probiert es so lange aus, bis es wirklich exakt so funktioniert, wie Ihr es haben wollt.

Hinweise zur Survey Queue

  • Lasst Euch die Survey Queue anzeigen, solange Ihr den Ablauf testet. Sie wird euch am Ende der Umfrage angezeigt und Ihr könnt sehen, ob alles funktioniert wie geplant. Erst wenn alles funktioniert, blendet Ihr die Anzeige der Survey Queue aus. Sobald Ihr die "Hide Survey Queue" akiviert, wird automatisch Autostart aktiviert und die Fragebögen erscheinen so wie von Euch vorgegeben.
  • Der erste Survey muss in der Survey Queue nicht aktiviert werden, er wird immer angezeigt. Grundsätzlich müsst Ihr für den ersten Survey keine Einstellungen in der Survey Queue vornehmen.
  • Alle nachfolgenden Surveys müssen hingegen in der Survey Queue aktiviert werden. Für diese legt Ihr fest, wann und unter welcher Bedingung sie erscheinen sollen. Dabei ist das Muster immer: Wenn der erste Survey bearbeitet ist UND unter conditional logic die Hilfsvariable einen bestimmten Wert aufweist. Soll die Reihenfolge variiert werden, muss unter conditional logic noch festgelegt werden, welche Surveys bereits ausgefüllt sein müssen.

Beispiel 1: Zuweisen zu unterschiedlichen Bedingungen

In diesem Beispiel sollen die Versuchspersonen zuerst zufällig eines von drei Bildern sehen, danach Fragen beantworten, die spezifisch für ihr Bild sind und als letztes einen Fragebogen bearbeiten, der für alle gleich ist. Die Gleichung für die Variable Random lautet:

([record_id] - rounddown(([record_id]/3),0)*3)+1

Online Designer Beispiel 1
Im Online Designer werden die folgenden Instrumente angelegt:

Survey Queue Beispiel 1
Das Instrument "Erster Survey" ist in der Survey Queue nicht aktiviert, es startet automatisch. Das Instrument Randomisierung ist im Online Designer nicht aktiviert und erscheint somit gar nicht in der Survey Queue. Für die Instrumente "Bild 1...", "Bild 2..." und "Bild 3..." wird über Conditional Logic festgelegt, in welchem Fall sie erscheinen sollen. Das Instrument "Allgemeine Fragen" schließlich wird wieder für alle angezeigt, nachdem sie eines der drei Bilder gesehen haben.

Beispiel 2: Präsentieren von Variablen in unterschiedlicher Reihenfolge

Beim zweiten Beispiel werden die gleichen Instrumente verwendet wie beim ersten Beispiel. Allerdings sollen diesmal alle Versuchspersonen alle Bilder sehen, jedoch in unterschiedlicher Reihenfolge. Bei drei Bildern sind insgesamt sechs Reihenfolgen (Bedingungen) möglich. Die Formel für "random" wird entsprechend angepasst:

([record_id] - rounddown(([record_id]/6),0)*6)+1

Jeder Bedingung ist eine bestimmte Reihenfolge zugeordnet

Random Record ID An 1. Stelle An 2. Stelle An 3. Stelle
2 1, 7,... Bild 1 Bild 2 Bild 3
3 2, 8,... Bild 2 Bild 1 Bild 3
4 3, 9,... Bild 1 Bild 3 Bild 2
5 4, 10,... Bild 3 Bild 2 Bild 1
6 5, 11... Bild 2 Bild 3 Bild 1
1 6, 12... Bild 3 Bild 1 Bild 2

Survey Queue Beispiel 2

In der Survey Queue muss dann für jedes Instrument festgelegt werden, wann es erscheint, je nachdem zu welcher der sechs Reihenfolgen eine Person zugeordnet wurde:

Conditional Logic für Instrument "Bild 1":
([random] = 2) OR
([random] = 3 AND [bild_2_complete] = '2') OR
([random] = 4) OR
([random] = 5 AND [bild_2_complete] = '2') OR
([random] = 6 AND [bild_3_complete] = '2') OR
([random] = 1 AND [bild_3_complete] = '2')

Conditional Logic für Instrument "Bild 2":
([random] = 2 AND [bild_1_complete] = '2') OR
([random] = 3) OR
([random] = 4 AND [bild_3_complete] = '2') OR
([random] = 5 AND [bild_3_complete] = '2') OR
([random] = 6) OR
([random] = 1 AND [bild_1_complete] = '2')

Conditional Logic für Instrument "Bild 3":
([random] = 2 AND [bild_2_complete] = '2') OR
([random] = 3 AND [bild_1_complete] = '2') OR
([random] = 4 AND [bild_1_complete] = '2') OR
([random] = 5) OR
([random] = 6 AND [bild_2_complete] = '2') OR
([random] = 1)

⚠️ **GitHub.com Fallback** ⚠️