Inhaltsverzeichnis

Zufallsgenerator

Hinweis: Diese Seite erklärt ausführlich, wie Sie einen Zufallsgenerator erstellen und wann ein solcher eingesetzt werden kann. Konkrete Beispiele finden Sie dann in den Anleitungen zu den einzelnen Anwendungen (siehe unten).

Der Zufallsgenerator ist ein funktionaler Baustein für den Fragebogen. Das Element zieht aus einer vorgegebenen Liste von Elementen (Zettel) eines und speichert dessen Wert in eine Variable. Der gezogene Wert kann mittels value() ausgelesen und in einem Filter verwendet werden, um Inhalte des Fragebogens zufällig zu variieren. So lassen sich Teilnehmer etwa zufällig zu Experimentalgruppen zuordnen (Randomisierung).

Der Zufallsgenerator sorgt standardmäßig dafür, dass alle Zettel gleich häufig gezogen werden (Option Art der Ziehung). Das ist vor allem dann wichtig, wenn die Experimentalgruppen gleich groß sein sollen. Bei einer uneingeschränkten Zufallsauswahl hingegen kann es (gerade bei überschaubaren Stichproben) passieren, dass die Gruppengrößen massiv abweichen.

Tipp: Sollte die zufällige Variation nicht wie gewünscht funktionieren, liefern die Debug-Informationen im Fragebogen in aller Regel schnell eine Antwort. Mehr dazu s. Problemlösung bei Filterfragen und im Erklärvideo Experimental Randomization (engl) am Ende.

Es gibt verschiedene Fälle, in denen ein Zufallsgenerator eingesetzt werden kann. Einige Funktionen, die der Zufallsgenerator dabei ausführen kann:

Erstellung eines Zufallsgenerators

Hier wird allgemein einmal erklärt, wie Sie einen Zufallsgenerator anlegen können. Wie dieser Zufallsgenerator dann im Speziellen eingesetzt werden muss, wird dann in den einzelnen Kapiteln (siehe Links unten) genauer erklärt.

Schritt 1: Zufallsgenerator anlegen

Der Zufallsgenerator als funktionaler Baustein wird als eine neue Frage in einer Rubrik angelegt (Ein Fragebogen in 5 Minuten). Wählen Sie bei der Erstellung der Frage den Fragentyp Zufallsgenerator. Sie können hierfür einfach die ersten Buchstaben des Fragentyps eingeben, dann erscheint der Fragentyp in der Auswahlliste. Geben Sie der Frage noch eine Beschreibung und eine Fragekennung und klicken Sie auf speichern (Speichern).

Zufallsgenerator anlegen

Die Fragekennung benötigen Sie später im PHP-Code.

Schritt 2: Inhalte eintragen

Im nächsten Schritt geben Sie die Inhalte (Zettel) ein, aus welchen Sie später ziehen möchten.

Wenn Sie zum Beispiel die Teilnehmer zufällig in verschiedene Gruppen einteilen möchten (z.B. bei der Randomisierung), geben Sie einfach die Gruppenbezeichnungen ein.

Beispiel:
Gruppe 1
Gruppe 2
Gruppe 3

Durch das Speichern der Frage teilt das System nun den einzelnen Bezeichnungen automatisch Werte (beginnend mit 1) zu:

Beispiel:
1= Gruppe 1
2= Gruppe 2
3= Kontrollgruppe

Wenn nun der Zufallsgenerator im Fragebogen platziert wird, teilt dieser dem Teilnehmer einen zufälligen Wert (Zettel) zu. Diese Werte können später ausgelesen werden und in Filtern weiterverwendet werden.

Schritt 3: Weitere Einstellungen

In manchen Fällen ist es notwendig, die Einstellungen im Zufallsgenerator noch anzupassen:

Schritt 4: Platzieren des Zufallsgenerators

Je nach Weiterverwendung der Werte des Zufallsgenerators muss dieser passend im Fragebogen platziert werden. Dazu muss die Frage beim Fragebogen zusammenstellen auf eine Seite gezogen werden. In jedem Fall muss der Wert vor einem PHP-Code platziert werden, bei dem der Wert ausgelesen werden soll. Wenn der Wert des Zufallsgenerators einmal gezogen wurde, kann dieser Wert im Fragebogen jederzeit wieder ausgelesen werden.

Verwendung des Zufallsgenerators

Der Zufallsgenerator wird als Grundlage für einige dynamische Inhalte in SoSci Survey benötigt. Dazu gehören:

Ziehungen nachjustieren

Arbeitet man mit vielen Experimentalgruppen, kann es sein, dass die eigentlich erfolgreiche Gleichverteilung nach der Bereinigung verloren geht. Gerade wenn die Fallzahl pro Gruppe sehr klein ist, schlagen die Fälle zu Buche, die bei der Bereinigung (z.B. aufgrund des Manipulation Check) gelöscht werden müssen. Dann kann es sein, dass es nötig ist, den Zufallsgenerator während der Erhebung geringfügig anzupassen.

Warnung: Das Nachjustieren der Zufallsauswahl sollte nur dann erfolgen, wenn die Teilnehmer kontinuierlich und aus derselben Grundgesamtheit rekrutiert werden. Sonst besteht die Gefahr einer Konfundierung: Man stelle sich ein Experiment mit 4 Gruppen vor, bei dem die Teilnehmer alle an einem bestimmten Tag eingeladen werden. Nachdem 2/3 der Teilnehmer den Fragebogen ausgefüllt haben, bemerkt man, dass in Gruppe 1 überdurchschnittlich viele Fälle bereinigt werden müssen. Also werden ab sofort mehr Teilnehmer der Gruppe 1 zugeteilt. Nun liegt eine Konfundierung vor, denn Teilnehmer, die auf eine Einladung später reagieren, können sich signifikant von Teilnehmern unterscheiden, die schnell reagieren. Also würden sich die Teilnehmer in Gruppe 1 nun a-priori von Teilnehmern in anderen Gruppen unterscheiden – und damit wären Unterschiede in den abhängigen Variablen nicht mehr alleine auf den experimentellen Stimulus zurückzuführen.

Tipp: In einer Situation, in der man die Zufallsziehung nicht nachträglich anpassen kann, kann man eine Urne verwenden und in urnDraw() ein manuelles Ablegen der Zettel konfigurieren. Das manuelle Ablegen mittels urnPutAway() erfolgt nur dann, wenn mit einem Filter überprüft wurde, dass der Fall auch brauchbar ist. Nachteile: Das ist vergleichsweise aufwändig und gerade zu Beginn der Erhebung kann es zu deutlich ungleichen Gruppengrößen kommen.

Sind die Bedingungen für das Nachjustieren (s. oben) erfüllt, so ist das Vorgehen wie folgt:

  1. Der vorläufige Datensatz wird bereinigt (Abbrecher, fehlende Antworten, Manipulation Check, keine Zustimmung zur Verwendung der Angaben, …).
  2. Es wird eine Häufigkeitstabelle über die Variable des Zufallsgenerators erstellt.
  3. Diese Häufigkeitstabelle wird in ein Format Code: Anzahl umgewandelt (s. unten).
  4. Diese Liste wird im Zufallsgenerator in das Feld Bisher gezogen eingetragen – dabei spielt die Reihenfolge der Werte keine Rolle, wichtig ist nur, dass jeweils Code und Anzahl enthalten sind.
  5. Nach dem Speichern wird die Liste automatisch sortiert und weitere Zufallsziehungen erfolgen so, dass bisherige Ungleichheiten ausgeglichen werden.

Die Liste der Codes und verwertbaren Fälle kann z.B. wie folgt aussehen:

111111: 2
111211: 1
111311: 2
111411: 2
112111: 1
112211: 2
112311: 2
112411: 2
u.s.w.

In Excel oder OpenOffice Calc erstellt man eine solche Liste, indem man die zuvor erstellte Häufigkeitstabelle (mit Codes, nicht Beschriftungen) mit folgendem Befehl zusammenfasst (wenn in Spalte A die Codes stehen und in Spalte B die Häufigkeiten):

=VERKETTEN(A1; ": "; B1)

In GNU R kann man Häufigkeitstabelle und Liste wie folgt ausgeben lassen (wenn die Variable des Zufallsgenerators z.B. RG01 heißt):

tmp = table(data$RG01)
cat(paste(paste(names(tmp), tmp, sep=": "), collapse="\n"))