SoSci Survey
Übersetzungen dieser Seite:
 

Randomisierung mit Urnen

Urnen erlauben eine Zufallsziehung ohne Zurücklegen. Dadurch ist gewährleistet, dass jeder Eintrag (z.B. jede Experimentalgruppe oder jede Kombination in einer Conjoint-Analyse) gleich häufig gezogen wird.

Hinweis: Komplette Fragebögen lassen sich mit Urnen nicht randomisieren. Man kann also mit einer Urne nicht zwischen unterschiedlichen Fragebögen „wählen“. Damit man eine Urne verwenden kann, müssen alle Zufallsbedingungen mittels Filter in einem Fragebogen untergebracht werden (s. unten).

Wichtig: Prüfen Sie im technischen Pretest unbedingt, ob die Ziehungen in der Urne auch korrekt vermerkt werden – insbesondere dann, wenn Sie die Kombinationen manuell ablegen.

Eine Urne anlegen

Zunächst müssen Sie eine Urne anlegen. Eine Urne enthält mehrere Zettel – und auf jedem Zettel kann ein Wert (normalerweise eine Zahl) oder eine Kombination mehrere Werte stehen.

  • Wählen Sie im Menü SpezialfunktionenRandomisierung mit Urnen.
  • Klicken Sie auf Urne anlegen. Sie erhalten ein Formular, in dem Sie einen Namen (Kennung der Urne) für die neue Urne angeben können sowie deren Inhalt (Kombinationen).
  • Den Inhalt geben Sie wie folgt an: Für jeden Zettel eine Zeile – und falls auf einem Zettel mehr als ein Wert stehen soll, dann trennen Sie die Werte durch Kommata oder Tabulator. Tipp: Für Kombinationen können Sie im Tabellenkalkulationsprogramm ihrer Wahl (z.B. OpenOffice Calc oder Excel) eine Tabelle anlegen, wobei die verschiedenen Werte (z.B. Alter, Vorname, Geschlecht) in den einzelnen Spalten stehen und in den Zeilen die Kombinationen. Markieren Sie die Zellen (nur die mit Inhalt, keine Überschriften) und kopieren Sie den Inhalt in das Texteingabefeld für Kombinationen.
  • Mit Urne anlegen wird die Urne gespeichert.
  • Notieren Sie sich die Kennung der Urne.

Am häufigten werden Urnen für die Einteilung von Teilnehmern in Experimentalgruppen verwendet. In diesem Fall empfielt sich ein Zahl pro Zettel. Wenn Sie 4 Gruppen haben, sieht der Inhalt der Urne einfach aus wie folgt:

1
2
3
4

Hinweis: Damit sich Interviewpartner nicht nach Belieben einen Zettel aussuchen können, wird pro Interview nur einmal gezogen. Das heißt, dass Sie beim Testen durch Aktualisieren immer den gleichen Zettel bekommen werden. Um einen neuen Zettel zu bekommen, müssen Sie ein neues Interview starten.

Interne Variablen anlegen

Der gezogene Zettel bzw. die gezogene Kombination muss im Datensatz gespeichert werden. Dafür benötigen Sie interne Variablen.

  • Legen Sie im Fragenkatalog eine neue Frage vom Typ „Interne Variable“ an.
  • Legen Sie in dieser Frage ein oder mehrere Variablen (Items) an:
    • Falls Sie auf jedem Zettel nur einen Wert stehen haben, benötigen Sie nur eine Variable (ein Item).
    • Falls Sie Kombinationen verwenden (mehrere Werte pro Zettel), benötigen Sie so viele Variablen, wie die Kombinationen Werte haben. Wenn Sie Beispielswerte 10 Zettel á 3 Werte in Ihrer Urne verwenden, benötigen Sie 3 Variablen in der Frage.
  • Notieren Sie sich die Kennung der Frage, die Sie gerade angelegt haben.

Urnen verwenden

Im Fragebogen wird nun ein Zettel mittels urnDraw() aus der Urne gezogen – und sein Inhalt wird in den internen Variablen abgelegt. Anschließend können Sie den/die gezogenen Wert/e in Filtern oder Platzhaltern verwenden.

Beim Aufruf von urnDraw() benötigen Sie lediglich die Kennungen, die Sie oben notiert haben (Kennung der Urne, Kennung der internen Variable). Außerdem müssen Sie entscheiden, wann der Zettel abgelegt wird. Normalerweise (keine Angabe oder 'now') wird der Zettel sofort abgelegt. Wenn die Teilnehmer in einer Versuchsgruppe besonders häufig abbrechen, hätten Sie in dieser Gruppe weniger vollständige Fragebögen. Wenn Sie hier mit Problemen rechnen, verwenden Sie 'end' oder 'man' (s. Referenz zu urnDraw()).

Beispiel: Eine von drei Experimentalgruppen auswählen

Das folgende Beispiel geht davon aus, dass Sie eine Frage „interne Variablen“ mit der Kennung „KK01“ und einer Variable/einem Item („KK01_01“) angelegt haben, sowie eine Urne mit der Kennung „personen“ mit folgendem Inhalt:

1
2
3

In den drei Experimentalgruppen soll nun jeweils eine der Frage „AB01“, „AB02“ oder „AB03“ angezeigt werden. Beachten Sie, dass urnDraw() den gezogenen Wert in KK01_01 speichert. Mittels value() wird dieser Wert dann ausgelesen.

urnDraw('personen', 'KK01');
$zufallszahl = value('KK01_01');
if ($zufallszahl == 1) {
  question('AB01');
} elseif ($zufallszahl == 2) {
  question('AB02');
} elseif ($zufallszahl == 3) {
  question('AB03');
}

Mit einem ähnlichen PHP-Code kann man auch eines von drei Bildern anzeigen – evtl. zusammen mit einem von drei Texten. Es versteht sich von selbst, dass die Textbausteine „info-A“, „info-B“ und „info-C“ vorab angelegt werden müssen.

urnDraw('personen', 'KK01');
$zufallszahl = value('KK01_01');
if ($zufallszahl == 1) {
  html('<p><img src="bild-a.jpg"></p>');
  text('info-A');
} elseif ($zufallszahl == 2) {
  html('<p><img src="bild-b.jpg"></p>');
  text('info-B');
} elseif ($zufallszahl == 3) {
  html('<p><img src="bild-c.jpg"></p>');
  text('info-C');
}

… oder es gibt drei Versuchsgruppen, von denen zwei einen Text mit variierendem Bild bekommen und die dritte Gruppe bekommt nur den Text. Die Bilder müssen natürlich vorab auf den Server hochgeladen werden und man muss den Textbaustein mit der Kennung „stimulus“ anlegen.

urnDraw('personen', 'KK01');
$zufallszahl = value('KK01_01');
if ($zufallszahl == 1) {
  html('<p><img src="bild-a.jpg"></p>');
  text('stimulus');
} elseif ($zufallszahl == 2) {
  html('<p><img src="bild-b.jpg"></p>');
  text('stimulus');
} elseif ($zufallszahl == 3) {
  text('stimulus');
}

Beispiel: Mehrere Werten pro Zettel

Dieses Beispiel verwendet 3 interen Variablen (IV01_01 bis IV01_03) und eine Urne „kombi“ mit folgendem Inhalt:

1, 1, 1
1, 1, 2
1, 2, 1
1, 2, 2
2, 1, 1
2, 1, 2
2, 2, 1
2, 2, 2

Im Beispiel wird eine 3er-Kombination gezogen. Jedes Datenfeld hat entweder die Auswertung 1 oder 2. Mittels Arrays werden den Zahlen Text zugeordnet. Dabei dient der gezogene Wert (also 1 oder 2) als Schlüssel – er wird in eckigen Klammern angegeben, um das jeweilige Element des Arrays auszuwählen. Siehe auch Arrays.

urnDraw('kombi', 'IV01');
// Die Zahlen kodieren drei Eigenschaften - hier werden ihnen Text zugeordnet
$preis = array(
  1 => '5 Euro',
  2 => '10 Euro',
);
$qualitaet = array(
  1 => 'normal',
  2 => 'hochwertig'
);
$lieferzeit = array(
  1 => 'schnell',
  2 => 'langsam'
);
html('
  <h1>Bitte stellen Sie sich folgenden Obstkorb vor:</h1> 
  <p>Preis: '.$preis[value('IV01_01')].'</p>
  <p>Qualität: '.$qualitaet[value('IV01_02')].'</p>
  <p>Lieferzeit: '.$lieferzeit[value('IV01_03')].'</p>
');
// Eine Frage zu dieser Kombination stellen
question('AB01');

Beispiel: Aus zwei unterschiedlichen Urnen ziehen

Wenn Sie aus unterschiedlichen Urnen ziehen möchten, benötigen Sie auch mehrere Fragen vom Typ „interne Variablen“ – im Beispiel drei solche Fragen „IV01“, „IV02“ und „IV03“.

urnDraw('personen', 'IV01', 'end');  // Ersten Zettel ziehen aus "Personen"
urnDraw('personen', 'IV02', 'end');  // Zweiten Zettel ziehen aus "Personen"
urnDraw('beziehung','IV03', 'end');  // Dritten Zettel ziehen aus "Beziehung"
// Die Zettel werden erst abgelegt, wenn der Teilnehmer das Ende des
// Fragebogens erreicht - so werden Abbrecher bei der Ziehung nicht gezählt
 
// Auf den Personen-Zettel stünde nun z.B.: Alter, Vorname, Geschlecht
// Dies wird zusammengefügt als "Alter (Vorname, Geschlecht)"
$beschreibung1 = value('IV01_01').' ('.value('IV01_02').', '.value('IV01_03').')';
$beschreibung2 = value('IV02_01').' ('.value('IV02_02').', '.value('IV02_03').')';
// Jetzt in der Beschreibung also
// z.B. "Andreas (25, m)" und "Berta (22, w)"
// Steht nun noch auf dem dritten Zettel, in welcher Beziehung
// die beiden Personen stehen, lässt sich so eine Situations-
// Beschreibung erstellen:
$komplett = $beschreibung1.' '.value('IV03_01').' '.$beschreibung2;
// z.B. "Andreas (25, m) wohnt bei Berta (22, w)";
// Natürlich könnte der Text auch per Platzhalter in die Frage
// integriert werden
html($komplett);
// Zugehörige Frage stellen
question('CJ02');

Beispiel: Texte für Zahlencodes anzeigen

Abschließend nochmal ein komplexeres Beispiel, das zeigt, wie man Zufallszahlen in Textelemente transformieren kann:

// Eine Kombination aus Urne "Award" ziehen und auf "A101" speichern,
// Zettel noch nicht ablegen
urnDraw('Award','A101','man');
// Werte sind nun gespeichert unter A101_01 und A101_02
// Der erste Wert kann 11-16 sein, der zweite 21-24
// Texte in Variable $text1 und $text2 speichern
switch (value('A101_01')) {
  case 11: $text1 = '500 Euro'; break;
  case 12: $text1 = '1000 Euro'; break;
  case 13: $text1 = '1500 Euro'; break;
  case 14: $text1 = '2000 Euro'; break;
  case 15: $text1 = '2500 Euro'; break;
  case 16: $text1 = '3000 Euro'; break;
  default: $text1 = 'Ungültiger Code: '.value('A101_01');
}
switch (value('A101_02')) {
  case 21: $text2 = 'Ein Freund'; break;
  case 22: $text2 = 'Ein Verwandter'; break;
  case 23: $text2 = 'Ein Kollege'; break;
  case 24: $text2 = 'Ihr Chef'; break;
  default: $text1 = 'Ungültiger Code: '.value('A101_02');
}
$situation = $text2.' will sich bei Ihnen '.$text1.' leihen';
// In Platzhalter %situation% speichern
set($situation, 'situation');
// Frage zur Situation (mit Platzhalter %situation%)
question('AL07');

Auf einer späteren Seite – wenn alle relevanten Daten erfragt wurden – wird der Zettel dann abgelegt:

urnPutAway('A101');
// Oder in diesem Fall auch einfach nur
urnPutAway();
de/create/random_urns.txt · Zuletzt geändert: 24.01.2014 13:56 von autsch
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki