Inhaltsverzeichnis

Mehrfaktorielles Experimentaldesign

Während beim einfaktoriellen Experiment nur eine Eigenschaft des Stimulus variiert wird (z.B. ob ein Produkt ein „bio“ Siegel trägt oder nicht), werden beim mehrfaktoriellen Design mehrere Eigenschaften manipuliert (z.B. Bio-Siegel und Preis). Die Kombinationen der einzelnen Ausprägungen werden auch als „Vignette“ oder „Zelle“ bezeichnet (z.B. „bio/preiswert“).

Ein Sonderfall mehrfaktorieller Designs ist die Conjoint-Analyse, bei welcher sich die Befragten (mehrfach) zwischen zwei oder mehr Vignetten entscheiden müssen. Da Conjoint-Analysen sehr unterschiedlich gestaltet werden können, werden sie in dieser Anleitung nicht behandelt.

Tipp: Lesen Sie zum Verständnis der PHP-Codes unten die Kapitel Einführung in PHP-Code und Einführung in Arrays.

Tipp: Für mehrfaktorielle Designs mit quasi-experimentellen Faktoren lesen Sie Block-Randomisierung.

Art des Stimulus

Als Beispiel dient nachfolgend ein zweifaktorielles Design, bei dem den Befragten ein Produkt präsentiert wird. Die zwei manipulierten Faktoren sind …

Daraus ergeben sich im vollständigen Design 6 Vignetten bzw. Zellen:

  1. kein Bio-Siegel und billig
  2. kein Bio-Siegel und mittelpreisig
  3. kein Bio-Siegel und teuer
  4. Bio-Siegel sichtbar und billig
  5. Bio-Siegel sichtbar und mittelpreisig
  6. Bio-Siegel sichtbar und teuer

Wenn man diese 6 Vignetten als 6 Ausprägungen eines Faktors betrachtet, lässt sich jedes mehrfaktorielle Designs in ein einfaktorielles Designs übersetzen. Für die Umsetzung in SoSci Survey ist es nun wichtig, wie das experimentelle Treatment (der Stimulus) gestaltet ist:

Umsetzung separater Faktoren

Für die technische Umsetzung bietet sich das folgende Vorgehen an:

  1. Zufallsgenerator mit allen Vignetten erstellen wie oben beschrieben und in den Fragebogen einbinden.
  2. Die Elemente der gezogenen Vignette mittels put() in interne Variablen kopieren.
  3. Die Präsentation jedes einzelnen Faktors mittels Platzhalter oder PHP-Code (Randomisierung mit PHP-Code).

Zufallsgenerator

Welche Inhalte genau Sie im Zufallsgenerator speichern, hängt davon ab, welcher Stimulus am Ende präsentiert werden soll. Es bietet sich aber an, mindestens die einzelnen Faktor-Ausprägungen und eine Beschreibung der Vignette zu hinterlegen:

1 = 1, 1, kein Bio-Siegel und billig
2 = 1, 2, kein Bio-Siegel und mittelpreisig
3 = 1, 3, kein Bio-Siegel und teuer
4 = 2, 1, Bio-Siegel sichtbar und billig
5 = 2, 2, Bio-Siegel sichtbar und mittelpreisig
6 = 2, 3, Bio-Siegel sichtbar und teuer

Mit dem Komma kann man die unterschiedlichen Angaben pro Vignette so trennen, dass man sie im Datensatz separat speichern und im PHP-Code separat verwenden kann.

Es können auch weitere Informationen zu den Vignetten hinterlegt werden. Zum Beispiel könnte ein Produktfoto für das (Nicht-)Vorhandensein eines Bio-Siegels und eine Preisangabe für den Preis hinterlegt werden:

1 = 1, 1, produkt_nob.jpg, "7,50 €",  kein Bio-Siegel und billig
2 = 1, 2, produkt_nob.jpg, "9,95 €",  kein Bio-Siegel und mittelpreisig
3 = 1, 3, produkt_nob.jpg, "17,95 €", kein Bio-Siegel und teuer
4 = 2, 1, produkt_bio.jpg, "7,50 €",  Bio-Siegel sichtbar und billig
5 = 2, 2, produkt_bio.jpg, "9,95 €",  Bio-Siegel sichtbar und mittelpreisig
6 = 2, 3, produkt_bio.jpg, "17,95 €", Bio-Siegel sichtbar und teuer

Bitte beachten Sie die Anführungszeichen um die Preisangabe. Diese sind notwendig, weil in der Preisangabe selbst ein Komma verwendet wird. Falls Sie innerhalb einer Angabe ein Anführungszeichen verwenden möchten, setzen Sie stattdessen ein typografisches („  und ) oder zwei normale Anführungszeichen ("") ein.

Tipp: Wie Sie einen Zufallsgenerator anlegen, lesen Sie genauer unter Einfaktorielles Experimental-Design.

Interne Variablen

Die internen Variablen sind ein Fragentyp, welcher zusätzliche Variablen im Datensatz erzeugt. Bitte legen Sie im Datensatz eine neue Frage vom Typ „interne Variablen“ an. Innerhalb dieser Frage legen sie so viele Variablen (Items) an, wie Sie Spalten im Zufallsgenerator vorgesehen haben.

Im obigen Beispiel sind das 5 Spalten, entsprechend 5 Variablen:

  1. Ausprägung Bio-Siegel (1=kein Bio, 2=Bio-Siegel)
  2. Ausprägung Preis (1=billig, 2=mittelpreisig, 3=teuer)
  3. Produktabbildung (Name der Bilddatei)
  4. Preis als Text
  5. Beschreibung der Vignette

Im Folgenden werden zwei PHP-Funktionen verwendet, um die in der Vignette als Comma-Separated-Values (CSV) hinterlegten Informationen in die internen Variablen zu kopieren:

Wenn der Zufallsgenerator die Kennung „RG01“ hat und die 5 internen Variablen in der Frage „RG02“ angelegt wurden, dann kopiert der folgende PHP-Code die Werte in einzelne Variablen.

putList('RG02', value('RG01', 'csv'));

Hier dieselbe Funktionalität der Übersicht halber nochmals in zwei Schritte unterteilt:

$content = value('RG01', 'csv');
putList('RG02', $content);

Hinweis: Damit der PHP-Code mit der Funktion value() auf die gezogene Zufallszahl bzw. das gezogene Tupel zugreifen kann, muss die Zufallsziehung bereits erfolgt sein. Das heißt, dass der Zufallsgenerator beim Fragebogen zusammenstellen über dem PHP-Code oder auf einer vorhergehenden Seite des Fragebogens platziert werden muss.

Präsentation des Stimulus

Die Präsentation des Stimulus funktioniert so, wie in der Anleitung Randomisierung mit PHP-Code beziehungsweise den dort verlinkten Anleitungen erklärt wird.

Sie können dafür alle internen Variablen verwenden, in welche Sie die Werte mittels putList() gespeichert haben. Um also z.B. in Abhängigkeit des ersten Faktors das passende Bild anzuzeigen, können Sie den Dateinamen in Variable RG02_03 verwenden:

replace('%bild%', value('RG02_03'));
html('<div><img src="%bild%§ alt=""></div>');

Den HTML-Code können Sie natürlich auch in einen Text (hier z.B. „TX01“) auslagern und den Platzhalter %bild% direkt mittels show() einsetzen:

show('TX01', [
  '%bild%' => value('RG02_03')
]);

Ebenfalls wäre es möglich, dass Sie mit dem numerischen Code in RG02_01 arbeiten und davon abhängig einen von zwei Texten (zum Beispiel „TX02“ und „TX03“) einbinden, wo Sie jeweils den HTML-Code zur Anzeige eines der Bilder gespeichert haben.

if (value('RG02_01') == 1) {
  text('TX02');
} else {
  text('TX03');
}

Und natürlich können Sie mittels Platzhaltern auch den zweiten Faktor einsetzen. Im folgenden Beispiel wäre z.B. der HTML-Code für das Bild und darunter der Preis im Text „TX04“ abgespeichert:

<div style="width: 400px; max-width: 100%; border: 1px solid #CCCCCC; margin: 2em 0;">
  <div style="margin: 0 auto 1em">
    <img src="%image%" alt="Produkt" style="max-width: 100%;">
  </div>
  <div style="margin: 0 auto 0; font-size: 120%">
    %price%
  </div>
</div>

Diesen Text „TX04“ mit der gezogenen Vignette würden Sie wie folgt in den Fragebogen einbinden:

show('TX04', [
  '%image%' => value('RG02_03'),
  '%price%' => value('RG02_04')
]);