Es gibt viele Situationen, in denen man im Fragebogen etwas Zufall benötigt. Dieses Kapitel stellt einige Möglichkeiten vor.
Möchte man einen Teilnehmer zufällig einer Experimentalgruppe zuweisen, dann benötigt man wahrscheinlich eine Randomisierung. Hier muss man sich eigentlich nur noch entscheiden, ob man ausreichend Teilnehmer hat, um dem Zufall zu vertrauen: Nämlich in Hinblick auf gleiche Gruppengrößen. Falls nicht, sollte man den Mehraufwand für Urnen in Kauf nehmen; diese garantieren bei korrekter Anwendung eine weitgehende Gleichverteilung.
Eine Rotation wird gerne verwendet, um Reihenstellungseffekten zu begegnen. Sehr bekannt sind der Primacy- und Recency-Effekt sowie Kontrast- und Konsistenzeffekte: Wann immer also die Reihenfolge von Fragen oder Items das Antwortverhalten beeinflussen könnte, wird die Reihenfolge gerne zufällig variiert (Rotation).
Aber Vorsicht: Nicht immer ist eine Rotation auch sinnvoll. Mit rotierten Items kann man sich ebenso problematische Messfehler einhandeln.
Sinnvoll ist eine Rotation eigentlich nur dann, wenn man das Aggregat auf die Grundgesamtheit hochrechnen möchte. Wenn man also z.B. vergleichen will, welches Item in einer Mehrfachauswahl die meisten Kreuzchen bekommt oder welches Item in einer Skala am höchsten bewertet wird. Dann gleichen sich Verzerrungen durch die Reihenstellungseffekte im Aggregat statistisch gesehen wahrscheinlich aus.
Nicht sinnvoll ist die Rotation, wenn man die Teilnehmer untereinander vergleichen möchte. Das ist bei nahezu allen Spielarten der Korrelation der Fall, also z.B. bei der Frage ob die Zufriedenheit mit einem Fernsehgenre (in einer Fragebatterie/Skala mit anderen Items zusammen erhoben) auf die Fernsehnutzungsdauer schließen lässt. Rotiert man hier die Items der Skala zufällig, so sind einige Teilnehmer nur aufgrund von Reihenstellungseffekten mit dem Fernsehprogramm scheinbar zufriedener. Man handelt sich also durch die Rotation einen Messfehler ein.
Der Messfehler durch Rotation sinkt mit der Anzahl an Items, mit denen man ein Konstrukt misst. In der BFI-S Persönlichkeitsskala mit 3 Items je Persönlichkeitsfaktor fällt der Messfehler geringer aus als im obigen Beispiel mit einem Item. Sofern man sowohl Korrelationen rechnen will als auch die Items untereinander vergleichen, muss man die Vor- und Nachteile abwägen. Vor Aktivierung der Rotation sollte man nur eben kurz inne halten und über sein Ziel nachdenken.
Die Randomisierung oder Rotation von Items in einer Frage wird wie folgt aktiviert: Die Frage im Fragenkatalog öffnen und und unter Einstellungen für die Items der Frage die Option Items der Frage zufällig mischen markieren. Die Randomisierung wird nach dem Speichern der Frage sofort in der Vorschau aktiviert.
Falls einzelne Items (z.B. ein „Sonstiges“ mit Texteingabe) vom der Rotation ausgenommen werden sollen, öffnen Sie dieses Item im Fragenkatalog oder mit dem -Symbol und aktiviert die Option Dieses Item beim Mischen der Items ausnehmen.
Hinweis: Die Rotation betrifft natürlich nur die Anzeige. Die Antworten des Befragten auf ein Item werden immer unter derselben Kennung gespeichert.
Falls Sie in einer Frage sehr viele Items haben, möchten Sie diese vielleicht auf mehrere Seiten verteilen. Normalerweise würden Sie das erledigen, indem Sie die Frage beim Fragebogen zusammenstellen mehrfach einfügen und jeweils bei den Anzeige-Einstellungen (-Knopf) unterschiedliche Items angeben, z.B. „1-10“, „11-20“, etc.
Falls Sie die Verteilung der Items mit einer Randomisierung kombinieren möchten, benötigen Sie ein paar Zeilen PHP-Code. Es ist sinnvoll, die eigentliche Randomisierung (der erste PHP-Code) schon früh im Fragebogen durchzuführen. Wenn Sie die Randomisierung erst auf der Seite mit dem ersten Frageblock durchführen, kann der Teilnehmer durch Drücken der F5-Taste (Seite neu laden bzw. Aktualisieren) die Randomisierung sonst verändern.
// PHP-Code für die Randomsierung // Alle Items der Frage AB01 auflisten $items = getItems('AB01', 'all'); // Liste Mischen shuffle($items); // Die Liste in Teillisten à 20 Items teilen $itemsAB01 = array_chunk($items, 20); // Die Variable für andere Seiten verfügbar machen registerVariable('itemsAB01');
// PHP-Code auf der ersten Seite mit Items question('AB01', $itemsAB01[0]);
// PHP-Code auf der zweiten Seite mit Items question('AB01', $itemsAB01[1]);
Beachten Sie bitte, dass sich auf den Seiten nur noch der Index in eckigen Klammern ändert. Der Index beginnt bei 0, nicht bei 1 (s. Beispiel oben).
Wichtig: Wenn man beim Fragebogen zusammenstellen direkt eine Seite mit Items startet, dann erhält man die Fehlermeldung, die Variable $itemsAB01 sei unbekannt. Man muss zum Testen jeweils ab der Seite mit der Randomisierung starten.
In seltenen Fällen sollen nicht nur die Items einer Frage rotiert werden, sondern gleich die Reihenfolge mehrere Fragen. Dies lässt sich nicht durch einen einfachen Mausklick erledigen, sondern erfordert ein wenig Programmierung.
Das folgende Beispiel zeigt, wie man 5 Fragen auf einer Seite im Fragebogen rotieren kann (zur Erklärung von Arrays s. Items in eine anderen Frage übernehmen):
$fragen = array( // Liste der Frage-Kennungen 'AB01', 'AB02', 'CC03', 'DE01', 'DE02' ); // Die Liste zufällig mischen shuffle($fragen); // Die Liste der Fragen Kennung für Kennung durchgehen // und jeweils die entsprechende Frage anzeigen foreach ($fragen as $kennung) { question($kennung); }
Die Rotation von Fragen über mehrere Seiten ist nochmals ein wenig anspruchsvoller. Das folgende Beispiel zeigt, wie 6 Fragen auf 2 Seiten verteilt werden können:
// PHP-Code auf Seite 1 $fragen = array( // Liste der Frage-Kennungen 'AB01', 'AB02', 'CC02', 'CC03', 'DE01', 'DE02' ); // Die Liste zufällig mischen shuffle($fragen); // Die Listen auf allen Seiten verfügbar machen registerVariable('fragen'); // Die ersten drei Kennungen der Liste anzeigen question($fragen[0]); question($fragen[1]); question($fragen[2]);
// PHP-Code auf Seite 2 // Die nächsten drei Kennungen der Liste anzeigen question($fragen[3]); question($fragen[4]); question($fragen[5]);
Tipp: Die gemischte Liste kann man auch schon früher im Fragebogen erstellen und mit set() abspeichern. Der kleine Vorteil ist, dass der Befragte die Reihenfolge dann nicht mit der Browser-Funktion „Aktualisieren“ verändern kann.
Nochmal einen Schritt weiter muss man gehen, um weitere Daten (z.B. ein Bild als Stimulus) mit den Fragen zusammen zu rotieren. Wenn also vor Frage 1 immer „bild1.png“ und vor Frage 2 immer „bild2.gif“ angezeigt werden soll. Aber vom Prinzip her ändert sich nichts. Im folgenden Beispiel zeigt jede Seite nur eine Kombination aus Bild und Frage – es können aber (wie im vorigen Beispiel) mehrere Fragen auf einer Seite gestellt werden.
// PHP-Code auf Seite 1 $fragen = array( // Liste der Frage-Kennungen 'AB01', 'AB02', 'AB03', 'AB04' ); $bilder = array( // Zuordnung weiterer Informationen (z.B. Bilder) zu den Frage-Kennungen 'AB01' => 'bild1.png', 'AB02' => 'bild2.gif', 'AB03' => 'bild3.jpg', 'AB04' => 'bild1a.png' ); // Die Liste der Fragen (und nur diese) zufällig mischen shuffle($fragen); // Beide Listen auf allen Seiten verfügbar machen registerVariable('fragen'); registerVariable('bilder');
// PHP-Code auf Seite 2 // Die erste Kombination aus Bild und Frage anzeigen $frage = $fragen[0]; // Die 0 ist das einzige, was sich für die weiteren Fragen ändert $bild = $bilder[$frage]; html('<div style="text-align: center"><img src="'.$bild.'"></div>'); question($frage);
// PHP-Code auf Seite 3 // Die zweite Kombination aus Bild und Frage anzeigen $frage = $fragen[1]; $bild = $bilder[$frage]; html('<div style="text-align: center"><img src="'.$bild.'"></div>'); question($frage);
Der letzte PHP-Code wird mit geändertem Array-Index für $fragen
insgesamt so oft wiederholt, wie Fragen angezeigt werden sollen.
Vor allem in Experimenten muss man die Teilnehmer häufig zufällig auf Versuchs- und Kontrollgruppe(n) verteilen. Oder anders ausgedrückt: Man muss den zufällig auswählen, welcher von mehreren Stimuli angezeigt wird.
Dafür gibt es zwei Möglichkeiten:
Im einfachsten Fall hat man verschiedene Stimuli, die man experimentell variieren möchte. Dazu kann man zwei Möglichkeiten:
Der Unterschied ist, dass die zufällige Variation nur wahrscheinlich ähnlich große Gruppen erzeugt. Verwendet man Urnen, sind die Gruppen durchweg annähernd gleich groß. In beiden Fällen muss man allerdings ein paar Zeilen PHP-Code programmieren (Einführung in PHP-Code).
Im Folgenden wird kurz beschrieben, wie man mit der Funktion random() zufällig eines von 4 Bildern im Fragebogen anzeigt. Das Vorgehen ist dabei prinzipiell genauso wie bei einer Filterfrage ( Filterfragen und Filter), nur erfolgt die Auswahl nicht anhand der Antwort des Befragten.
$zahl = random(1,4); // Würfelt eine Zahl zwischen 1 und 4 put('ST03_01', $zahl); // Speichert die Zahl in ST03_01 // Grafik in Abhängigkeit von der Zahl anzeigen if ($zahl == 1) { html('<p><img src="stimulus1.png"></p>'); } elseif ($zahl == 2) { html('<p><img src="stimulus2.png"></p>'); } elseif ($zahl == 3) { html('<p><img src="stimulus3.png"></p>'); } elseif ($zahl == 4) { html('<p><img src="stimulus4.png"></p>'); } question('ST02'); // Bewertung der Werbeanzeige
Das Beispiel zeigt zufällig die Grafik stimuls1.png, stimuls2.png, stimuls3.png oder stimuls4.png und darunter die Frage ST02.
Außerdem speichert der Code die gezogene Zahl mit put() in der internen Variable ST03_01 (Variablen in SoSci Survey). Damit das put() funktioniert, muss man eine Frage (im Beispiel ST03) vom Typ „Interne Variablen“ angelegt haben und darin mindestens ein Item.
Anstatt mit html()
Text oder eine Grafik anzuzeigen, kann man natürlich auch mit text()
einen längeren Text zeigen oder ein Video einbinden oder mit question()
eine Frage anzeigen.
V.a. in Methodenexperimenten sollen ganze Fragen randomisiert werden - auch das ist mit Filtern recht einfach zu erledigen. Das Vorgehen ist im Prinzip dasselbe wie bei der Randomisierung eines Stimulus.
Etwas schwieriger wird es allerdings, wenn die Fragen auf unterschiedlichen Seiten im Fragebogen erscheinen sollen. In diesem Fall muss man die einmal gezogene Zufallszahl auf den folgenden Seiten erst wieder mit mit value()
aus dem Datensatz auslesen.
// Code auf Seite 1 $order = random(1,2); // Auswahl von Reihenfolge 1 oder 2 put('ST03_01', $order); // Speichert die Zahl in ST03_01 // Hier die eine oder die andere Frage zeigen if ($order == 1) { question('AB01'); // Bewertung des Politikers } else { question('AB02'); // Bewertung der Partei }
// Code auf Seite 2 $order = value('ST03_01'); // Zufallszahl auslesen // Auf Seite 2 die jeweils andere Frage zeigen if ($order == 1) { question('AB02'); // Bewertung der Partei } else { question('AB01'); // Bewertung des Politikers }
Im Beispiel wird nun zufällig entweder erst Frage AB01 (auf Seite 1) und dann AB02 (auf Seite 2) angezeigt oder genau andersherum: AB02 auf Seite 1 und AB01 auf Seite 2.
Sie möchten zufällig 3 von 10 Fragen anzeigen, um Ihren Stimulus auf mehrere Teilnehmer zu verteilen? Erstellen Sie eine Liste (Array) mit allen Frage-Kennungen, mischen Sie die Liste und zeigen Sie dann die Fragen zu den ersten drei Kennungen an.
Hinweis: Bei diesem Verfahren wird nicht sichergestellt, dass alle Fragen gleich häufig abgefragt werden. Um dies zu erreichen müssen Sie die Fragen-Kombinationen vorgeben und mit Urnen arbeiten.
// Liste der relevanten Fragen $fragen = array( 'AB01', 'AB02', 'AB03', 'AB04', 'AB05', 'BB01', 'BB02', 'BB03', 'CC01', 'CC02' ); // Die Liste mischen shuffle($fragen); // Die Frage anzeigen, die nach dem Mischen an erste Stelle steht question($fragen[0]); // Und die Fragen an zweiter und dritter Stelle question($fragen[1]); question($fragen[2]);
Tipp: Wenn die Fragen auf unterschiedlichen Seiten angezeigt werden sollen, mischen Sie die Liste auf Seite 1 im Fragebogen, speichern Sie die Variable $fragen
mittels registerVariable('fragen')
und rufen Sie die Zeilen mit question()
einfach auf beliebigen Seiten im Fragebogen auf.
In ganz seltenen Fällen sind die verschiedenen Varianten des Fragebogens so unterschiedlich, dass Filter zu aufwändig werden.
Wie das funktioniert steht unter Zufallsauswahl für Fragebögen.