In einem Befragungsprojekt kann man mehrere Fragebögen anlegen (Fragebogen zusammenstellen → Neuen Fragebogen erstellen bzw. Fragebögen verwalten). Ruft der Teilnehmer den Link zum Fragebogen auf, kann man ihn zufällig einem der Fragebögen zuweisen.
Warnung: Wenn Sie eine Randomisierung über unterschiedliche Fragebögen realisieren, kann es durch systematische Abbrecher zu einer (mitunter deutlich) ungleichen Verteilung bei den abgeschlossenen Fragebögen kommen. Verwenden Sie nur einen Fragebogen mit Randomisierung des Stimulus, um die Experimentalgruppen zuverlässig gleichmäßig zu füllen (s. auch folgender Hinweis).
Warnung: Wenn die Experimentalgruppen in unterschiedliche Fragebögen bearbeiten, muss man besonders genau darauf achten, dass die Fragebögen vom Treatment abgesehen identisch sind. Wird z.B. nach dem Pretest eine Änderung nur in einem der Fragebögen vorgenommen, kann dies zu einer Konfundierung führen und dazu, dass man die Daten nicht mehr verwenden kann. Die „normale“ Randomisierung ist hier weniger fehleranfällig.
Hinweis: Für Experimente ist es in aller Regel deutlich (!) einfacher, nur einen Fragebogen anzulegen und mit einem kleinen PHP-Code den Stimulus zu variieren (Randomisierung). Dieses Vorgehen hat u.a. auch den Vorteil, dass man eine Gleichverteilung in abgeschlossenen Fragebögen realisieren kann.
Zunächst legen Sie unter Fragebogen zusammenstellen → Neuen Fragebogen erstellen einen zusätzlichen Fragebogen an, welcher sich um die zufällige Verteilung kümmert. Die Kennung können Sie frei wählen, für die folgende Beschreibung verwenden wir die Kennung „random“.
Legen Sie diesen Fragebogen „random“ unter Fragebogen zusammenstellen → Fragebögen verwalten als Standard-Fragebogen fest.
Um eine gleichmäßige Verteilung der Teinehmer auf die Fragebögen zu gewährleisten, benötigen Sie eine Frage vom Typ Zufallsgenerator. Sie können diese Frage in einer beliebigen Rubrik anlegen – für die weitere Beschreibung wird angenommen, dass diese Frage die Kennung „RF01“ hat.
Tragen Sie die Kennungen der Fragebögen (s. oben), zwischen denen Sie auswählen möchten, als Zettel in den Zufallsgenerator ein und speichern Sie die Frage ().
Lassen Sie bei Art der Ziehung die Voreinstellung „Gleichverteile Ziehung“ ausgewählt. Die Option „Gleichverteilung in abgeschlossenen Fragebögen“ wird nicht funktionieren, weil der Fragebogen zur Zufallsverteilung nie abgeschlossen wird.
Öffnen Sie den Fragebogen, welchen Sie für die zufällige Verteilung angelegt haben („random“) unter Fragebogen zusammenstellen zum Bearbeiten.
$qnr = value('RF01', 'label'); goToQuestionnaire($qnr);
*Tipp: Als Variante zum o.g. Vorgehen können Sie im Fragebogen „random“ auch zwei Seiten anlegen. Auf der ersten Seite platzieren Sie die Begrüßung. Der Zufallsgerenator und der PHP-Code folgen dann erst auf der zweiten Seite. Das hat den großen Vorteil, dass Abbrecher auf der Begrüßungsseite (dort wird der Fragebogen mit Abstand am häufigten geschlossen) die Ziehung nicht verzerren.
Die Funktion value()
ruft die Kennung des zufällig gezogenen Fragebogens aus dem Zufallsgerator ab. Die Funktion goToQuestionnaire() springt direkt zu dem Fragebogen mit der entsprechenden Kennung.
Den Fragebogen „random“ haben Sie unter Fragebogen zusammenstellen → Fragebögen verwalten als Standard-Fragebogen für das Befragungsprojekt ausgewählt. Die Teilnehmer können den Der Link zum Fragebogen also ohne weitere Parameter (q=…
) aufrufen. Sie gelangen dann zunächst zum Fragebogen „random“ und werden von dort zufällig auf einen der anderen beiden Fragebögen verteilt.
Falls einige Fragebögen häufiger ausgewählt werden sollen als andere (höhere Gewichtung in der Zufallsauswahl), tragen Sie deren Kennungen bitte einfach mehrfach im Zufallsgenerator ein.
Der folgende Zufallsgenerator würde z.B. den Fragebogen „control“ doppelt so häufig aufrufen wie „order1“, „order2“ oder „order3“.
1 control 2 control 3 order1 4 order2 5 order3
Wenn man die Teilnehmerinnen und Teilnehmer über ein externes Panel rekrutiert, muss man in aller Regel einen Teilnahmecode im Redirect übermitteln: Mit externen Panel-Anbietern arbeiten
Sobald goToQuestionnaire()
zum Einsatz kommt, wird ein neuer Fall im Datensatz erzeugt. In diesem (neuen) Interview hat man keinen Zugriff mehr auf die Daten, die im ursprünglichen Fragebogen (hier z.B. „random“) erhoben wurden. Das gilt auch für einen Teilnahmecode, der eventuell via URL vom Panel-Anbieter übergeben wurde.
Damit es dennoch funktioniert, muss man den Teilnahmecode explizit an das untergeordnete Interview durchreichen. Dafür kommt die Funktion multiLevelDown()
zum Einsatz. Wenn der Teilnahmecode als Referenz (REF) übergeben wurde, würden Sie die Zeilen (s. oben)
$qnr = value('RF01', 'label'); goToQuestionnaire($qnr);
ersetzen durch
$qnr = value('RF01', 'label'); multiLevelDown($qnr, reference());
Im untergeordneten Fragebogen kann man dann mittels multiLevelData()
auf den übergebenen Code zugreifen. Im Redirect auf der vorletzen Seite des Fragebogens würde dann nicht mehr direkt die Referenz verwendet …
redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid=%reference%'); // bzw. gleichbedeutend redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.reference());
… sondern stattdessen die Daten, die von multiLevelDown()
übergeben wurde, also
redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.multiLevelData());
Fall neben der Panel-ID noch weitere Variablen übergeben werden sollen, können diese gemeinsam als Array in multiLevelDown()
an den nachgelagerten Fragebogen übergeben werden.
Der nachfolgende Code verwendet String-Schlüssel für die Variablen ('panelID'
, 'userID'
u.s.w.) – das dient vor allem der besseren Verständlichkeit.
// Zufallsauswahl für einen Fragebogen $qnr = value('RF01', 'label'); // Daten zusammenfassen $data = [ 'panelID' => reference(), 'userID' => value('RV01x01'), 'AB01_01' => value('AB01_01'), 'AB01_02' => value('AB01_02') ]; // Daten übergeben multiLevelDown($qnr, $data);
Um untergeordneten Fragebogen können die Daten wieder auf einzelne Variablen verteilt werden.
$data = multiLevelData(); put('IV01_01', $data['panelID']); put('IV01_02', $data['userID']); // Die Filtervariablen werden hier direkt in die Filterfragen gespeichert put('AB01_01', $data['AB01_01'], true); put('AB01_02', $data['AB01_02'], true);
Die Weiterleitung kann auf die in 'IV01_01'
abgelegte Panel-ID zugreifen.
redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.value('IV01_01'));