Inhaltsverzeichnis

Zufallsauswahl für Fragebögen

In einem Befragungsprojekt kann man mehrere Fragebögen anlegen (Fragebogen zusammenstellenNeuen 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.

Vorgehen

Zunächst legen Sie unter Fragebogen zusammenstellenNeuen 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 zusammenstellenFragebögen verwalten als Standard-Fragebogen fest.

Fragebögen für die Zufallsauswahl

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.

Zufallsgenerator erstellen

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 (Frage speichern).

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.

Zufallsgenerator für die Auswahl des Fragebogens

Öffnen Sie den Fragebogen, welchen Sie für die zufällige Verteilung angelegt haben („random“) unter Fragebogen zusammenstellen zum Bearbeiten.

  1. Ziehen Sie den Zufallsgenerator (RF01) auf die erste (und einzige*) Seite des Fragebogens und
  2. platzieren Sie darunter folgenden PHP-Code.
$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.

Fragebogen zur zufälligen Auswahl anderer Fragebögen

Den Fragebogen „random“ haben Sie unter Fragebogen zusammenstellenFragebö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.

Gewichtete Auswahl

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

Zusammenspiel mit externen Panels

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());

Mehrere Variablen übergeben

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'));