Übersetzungen dieser Seite:
 

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:

  • Für den gezogenen Zettel sind zwei Werte verfügbar: Erstens der numerische Code und zweitens der eingetragene Text für den Zettel – das kann z.B. der Dateiname eines Bildes sein (z.B. Einfaktorielles Design).
  • Der Zufallsgenerator kann innerhalb eines Interviews mehrere Zettel ziehen (Option Anzahl Zettel pro Interview) und dabei sicherstellen, dass derselbe Zettel nicht mehrfach gezogen wird.
  • Der Zufallsgenerator liefert pro Zettel nur einen Wert (und dessen Beschriftung). Aber auch Kombinationen können mittels Zufallsgenerator umgesetzt werden (siehe Randomisierung: within-subject (Messwiederholung)).

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, den Zufallsgenerator noch zu optimieren:

  • Angeben, wie viele Zettel gezogen werden müssen:
    In manchen Fällen ist es notwendig mehrere Zettel ziehen zu lassen (beispielsweise 20 Bilder aus 300). Geben Sie den entsprechenden Wert unter Anzahl Zettel pro Interview ein.
  • Art der Ziehung:
    Wie bereits erwähnt, sollte man sich bereits vor dem Erstellen des Zufallsgenerators überlegen, welche Ziehung man benötigt. Standardmäßig ist eine Gleichverteilung vorgesehen. Dies kann aber bei kleinen Gruppen und bei vielen erwarteten Abbrechern zu ungleichen Gruppen führen. Daher gibt es unter Art der Ziehung verschiedene Einstellungen, wie die Zettel gezogen werden.
  • Inhalte anzeigen:
    es ist auch möglich, bereits Dateinamen als Zettel anzugeben und mittels Inhalte anzeigen diese direkt auf der Fragebogenseite einzubinden (siehe Einfaktorielles Design)

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"))
de/create/questions/random.txt · Zuletzt geändert: 02.03.2021 21:25 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki