Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
de:create:randomization_php [30.12.2020 18:22] – sophia.schauer | de:create:randomization_php [24.01.2021 14:53] – sophia.schauer | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======Randomisierung mit PHP-Code====== | ======Randomisierung mit PHP-Code====== | ||
- | Für komplexere Randomisierungen wie zum Beispiel die Kombination von Fragen und Stimuli oder auch für komplexere HTML-Codierungen der Stimuli ist es sinnvoll, die Randomisierung durch einen PHP-Code in den Fragebogen zu integrieren. Wie dies gelingt wird in diesem Kapitel | + | Für komplexere Randomisierungen wie zum Beispiel die Kombination von Fragen und Stimuli oder auch für komplexere HTML-Codierungen der Stimuli ist es sinnvoll, die Randomisierung durch einen PHP-Code in den Fragebogen zu integrieren. Wie dies gelingt wird in diesem Kapitel |
**Hinweis: | **Hinweis: | ||
+ | |||
+ | **Hinweis: | ||
Zeile 12: | Zeile 14: | ||
__Beispiel__: | __Beispiel__: | ||
Zettel zeigt die Zahl " | Zettel zeigt die Zahl " | ||
- | Zahl " | + | Zahl " |
Durch das Anlegen dieses Fragentyps legen Sie die Unterteilung in verschiedene Gruppen fest. Jeder Teilnehmer wird einer dieser Gruppen zugeordnet, wobei im folgenden beschrieben wird, dass der Teilnehmer bildlich gesprochen einen " | Durch das Anlegen dieses Fragentyps legen Sie die Unterteilung in verschiedene Gruppen fest. Jeder Teilnehmer wird einer dieser Gruppen zugeordnet, wobei im folgenden beschrieben wird, dass der Teilnehmer bildlich gesprochen einen " | ||
Zeile 33: | Zeile 35: | ||
=====Schritt 2: Präsentation des Stimulus===== | =====Schritt 2: Präsentation des Stimulus===== | ||
- | Wie oben beschrieben, | + | Wie oben beschrieben, |
- | ==== Stimulus: Frage ==== | + | Für die Definition, welcher Gruppe nun welcher |
- | Durch einen [[de: | + | |
- | <code php> | + | {{: |
- | if (value(' | + | |
- | question(' | + | |
- | } elseif (value(' | + | |
- | question(' | + | |
- | } else { | + | |
- | // Den else-Teil könnte man in diesem Fall weglassen, | + | |
- | // hier passiert rein gar nichts. | + | |
- | } | + | |
- | </ | + | |
- | Der Wert 1 für den Zufallsgenerator (RG01) würde in diesem Fall keine Frage anzeigen, da der Teilnehmer der Kontrollgruppe zugeordnet wurde. Wenn der Wert RG01=2 gezogen wurde, wird die Frage AB01 angezeigt und bei dem Wert RG01=3 | + | **Hinweis: |
- | ====Stimulus: Text==== | + | Zur Einbindung eines Stimulus |
- | Wenn der Stimulus ein Text ist, muss bei der Einbindung | + | |
- | + | ||
- | Dafür legt man als erstes im **Fragenkatalog** als **Text** die Stimulus-Texte an. | + | |
- | + | ||
- | Der folgende PHP-Code würde in der Gruppe „Positive Fallbeispiele“ (Zufallsgeneratorwert RG01=2) | + | |
- | + | ||
- | <code php> | + | |
- | if (value(' | + | |
- | text(' | + | |
- | } elseif (value(' | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ====Stimulus: | + | |
- | Bilder können ebenso, wie Texte mittels [[de: | + | |
- | + | ||
- | **Tipp:** Diese Möglichkeit bietet durch den HTML-Text viel Raum zur Gestaltung | + | |
- | + | ||
- | <code php> | + | |
- | if (value(' | + | |
- | text(' | + | |
- | } elseif (value(' | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===Beispiel: | + | |
- | + | ||
- | Vor allem in Experimenten muss man die Teilnehmer häufig zufällig auf Versuchs- und Kontrollgruppen verteilen oder anders ausgedrückt: | + | |
- | + | ||
- | Das folgende Beispiel zeigt, wie man mittels [[php|PHP-Code]] eines von 4 Bildern randomiesiert. Voraussetzung ist, dass -- wie oben beschrieben -- eine Zufallszahl zwischen 1 und 4 gezogen und in Variable '' | + | |
- | + | ||
- | <code php> | + | |
- | $zahl = value(' | + | |
- | + | ||
- | // Grafik in Abhängigkeit von der Zahl anzeigen | + | |
- | // (dafür wird HTML-Code verwendet) | + | |
- | if ($zahl == 1) { | + | |
- | html('< | + | |
- | } elseif ($zahl == 2) { | + | |
- | html('< | + | |
- | } elseif ($zahl == 3) { | + | |
- | html('< | + | |
- | } elseif ($zahl == 4) { | + | |
- | html('< | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Anstatt mit '' | + | |
- | + | ||
- | + | ||
- | ===Beispiel: | + | |
- | + | ||
- | Der folgende PHP-Code zeigt genau dieselben Bilder wie der obige PHP-Code im Beispiel, arbeitet aber nicht mit kompletten HTML-Code-Stückchen, | + | |
- | + | ||
- | <code php> | + | |
- | $code = value(' | + | |
- | + | ||
- | // Grafikdatei in Abhängigkeit von der Zufallszahl in einen Platzhalter schreiben | + | |
- | if ($code == 1) { | + | |
- | replace(' | + | |
- | } elseif ($code == 2) { | + | |
- | replace(' | + | |
- | } elseif ($code == 3) { | + | |
- | replace(' | + | |
- | } elseif ($code == 4) { | + | |
- | replace(' | + | |
- | } | + | |
- | // Den HTML-Code kann man direkt einbinden oder (hier nicht gezeigt) als Textbaustein | + | |
- | html('< | + | |
- | </ | + | |
- | + | ||
- | **Tipp:** Platzhalter sind vor allem dann hilfreich, wenn für die Einbindung des Stimulus mehr HTML-Code erforderlich ist, als hier exemplarisch gezeigt. | + | |
- | + | ||
- | **Tipp:** Die Bezeichnung der PHP-Variable (in den Beispielen '' | + | |
- | + | ||
- | ===Beispiel: | + | |
- | + | ||
- | Falls Stimuli | + | |
- | + | ||
- | <code php> | + | |
- | $code = value(' | + | |
- | + | ||
- | // Text bzw. HTML-Code als Text anzeigen | + | |
- | if ($code == 1) { | + | |
- | text(' | + | |
- | } elseif ($code == 2) { | + | |
- | text(' | + | |
- | } elseif ($code == 3) { | + | |
- | text(' | + | |
- | } elseif ($code == 4) { | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ====Stimulus: | + | |
- | Auch Videos können mittels einer text()-Funktion eingebettet werden. Dazu benötigt man den selben Code, wie bei den Texten und bindet das Video via HTML-Text ein. Dazu muss man, wie oben beschrieben das Video bereits in **Bilder und Mediendateien** gespeichert haben und in einem ([[de: | + | |
- | + | ||
- | <code php> | + | |
- | if (value(' | + | |
- | text(' | + | |
- | } elseif (value(' | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ====Stimulus: | + | |
- | Auch Audios können wiederum mittels einer text()-Funktion eingebettet werden. Dazu benötigt man den selben Code, wie bei den Texten und bindet das Audio via [[de: | + | |
- | + | ||
- | Der PHP-Code zur Einbindung der Audiodateien auf der Fragenbogenseite könnte wie folgt aussehen und muss unter dem Zufallsgenerator unter **Fragebogen zusammenstellen** eingefügt werden. | + | |
- | + | ||
- | <code php> | + | |
- | if (value(' | + | |
- | text(' | + | |
- | } elseif (value(' | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ==== Stimulus und Frage zusammen ==== | + | |
- | + | ||
- | Man kann auch Fragen und Stimuli gemeinsam randomisieren. Dies ist der Fall, wenn man abhängig vom Stimulus auch unterschiedliche Fragen abfragen möchte. | + | |
- | + | ||
- | <code php> | + | |
- | $zahl = value(' | + | |
- | + | ||
- | if ($zahl == 1) { | + | |
- | text(' | + | |
- | question(' | + | |
- | } elseif ($zahl == 2) { | + | |
- | text(' | + | |
- | question(' | + | |
- | } elseif ($zahl == 3) { | + | |
- | text(' | + | |
- | question(' | + | |
- | } elseif ($zahl == 4) { | + | |
- | text(' | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | In dem Beispiel wird zum Stimulus A eine andere Frage (AB01) angezeigt, als zu den anderen Stimuli. | + | |
- | + | ||
- | **Hinweis: | + | |
- | + | ||
- | + | ||
- | ==== Stimulus und Frage auf unterschiedlichen Seiten ==== | + | |
- | + | ||
- | Falls der Stimulus und die (jeweils zugehörige) Frage auf unterschiedlichen Seiten gezeigt werden sollen, wird auf beiden Seiten ein Filter eingebaut. Wenn die Zufallszahl einmal gezogen wurde, steht sie (im Beispiel als Variable '' | + | |
- | + | ||
- | <code php> | + | |
- | // PHP-Code auf der Seite mit dem Stimulus | + | |
- | $zahl = value(' | + | |
- | + | ||
- | if ($zahl == 1) { | + | |
- | text(' | + | |
- | } elseif ($zahl == 2) { | + | |
- | text(' | + | |
- | } elseif ($zahl == 3) { | + | |
- | text(' | + | |
- | } elseif ($zahl == 4) { | + | |
- | text(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | <code php> | + | |
- | // PHP-Code auf der Seite mit der Frage | + | |
- | $zahl = value(' | + | |
- | + | ||
- | if ($zahl == 1) { | + | |
- | question(' | + | |
- | } elseif ($zahl == 2) { | + | |
- | question(' | + | |
- | } elseif ($zahl == 3) { | + | |
- | question(' | + | |
- | } elseif ($zahl == 4) { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | **Hinweis: | + | |
- | + | ||
- | **Tipp:** Mit dieser Variable können zusammengehörige Stimuli (z.B. Seite 1 bis 3 eines Zeitungsartikels) auf auf mehrere Seiten verteilt werden. | + | |
- | + | ||
- | ==== Randomisierung von Fragen ==== | + | |
- | V.a. in Methodenexperimenten werden ganze Fragen randomisiert -- auch das ist mit Filtern recht einfach umzusetzen. Das Vorgehen ist im Prinzip dasselbe wie bei der Randomisierung eines Stimulus: | + | |
- | + | ||
- | <code php> | + | |
- | $zahl = value(' | + | |
- | + | ||
- | if ($zahl == 1) { | + | |
- | question(' | + | |
- | } elseif ($zahl == 2) { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Fragen auf verschiedenen Seiten ==== | + | |
- | Wenn die Fragen auf unterschiedlichen Seiten im Fragebogen erscheinen sollen muss man an zwei Stellen filtern: | + | |
- | + | ||
- | <code php> | + | |
- | //Auf der 1. Seite platzieren | + | |
- | $zahl = value(' | + | |
- | + | ||
- | // Die eine oder die andere Frage zeigen | + | |
- | if ($zahl == 1) { | + | |
- | question(' | + | |
- | } else { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | <code php> | + | |
- | //Auf der 2. Seite platzieren | + | |
- | $zahl = value(' | + | |
- | if ($zahl == 1) { | + | |
- | question(' | + | |
- | } else { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Im Beispiel wird nun zufällig entweder zuerst Frage AB01 und dann später AB02 angezeigt -- oder erst AB03 und dann AB04. | + | |
- | + | ||
- | ====Randomisierung von Seiten==== | + | |
- | + | ||
- | Wenn die Reihenfolge von Fragen komplexer variiert werden soll, können Filter -- wie im obigen Beispiel -- schnell unübersichtlich werden. In diesem Fall kann die PHP-Funktion '' | + | |
- | + | ||
- | <code php> | + | |
- | $zahl = value(' | + | |
- | if ($zahl == 1) { | + | |
- | setPageOrder(' | + | |
- | } elseif ($zahl == 2) { | + | |
- | setPageOrder(' | + | |
- | } else { | + | |
- | setPageOrder(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Weitere Erklärungen und Beispiele finden Sie in der Referenz zur Funktion '' | + | |
- | + | ||
- | + | ||
- | ===== Zufällige Auswahl von Fragen ===== | + | |
- | + | ||
- | Sie möchten zufällig 3 von 10 Fragen anzeigen, um Ihren Stimulus auf mehrere Teilnehmer zu verteilen? | + | |
- | + | ||
- | + | ||
- | ==== Auswahl mit Zurücklegen ==== | + | |
- | + | ||
- | Wenn es egal ist, in welchen Kombinationen die Fragen angezeigt werden __und__ wenn die Fallzahlen pro Frage hinreichend groß sind, um statistische Schwankungen zu verkraften, dann erstellen Sie eine Liste (Array) mit allen Frage-Kennungen, | + | |
- | + | ||
- | <code php> | + | |
- | // Sicherstellen, | + | |
- | if (!isset($fragen)) { | + | |
- | // Liste der relevanten Fragen | + | |
- | $fragen = array( | + | |
- | ' | + | |
- | ' | + | |
- | ); | + | |
- | // Die Liste mischen | + | |
- | shuffle($fragen); | + | |
- | // Und die Variable für eine erneute Anzeige der Seite speichern | + | |
- | registerVariable($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, dann platzieren Sie die Zeilen mit '' | + | |
- | + | ||
- | **Vorsicht: | + | |
- | + | ||
- | + | ||
- | ==== Auswahl ohne Zurücklegen ==== | + | |
- | + | ||
- | Wenn sichergestellt werden muss, dass alle Fragen gleich häufig angezeigt werden, wird eine Urne benötigt, die mögliche 3er-Kombinationen der Frage-Kennungen enthält. Diese 3er-Kombinationen muss vorab erstellt werden, z.B. in Excel. | + | |
- | + | ||
- | < | + | |
- | AB01, AB02, AB04 | + | |
- | AB01, AB02, AB05 | + | |
- | ... | + | |
- | AB05, AB03, AB04 | + | |
- | AB05, AB04, AB03 | + | |
- | </ | + | |
- | + | ||
- | Schon bei 5 Fragen sind 60 Kombinationen möglich. Wenn Sie deutlich mehr Kombinationen als Teilnehmer haben, müssen Sie einen Teil der Kombinationen evtl. systematisch entfernen -- sonst ist nicht sichergestellt, | + | |
- | + | ||
- | Im Fragebogen ziehen Sie nun eine der Kombinationen aus der Urne und verwenden die so gezogenen Kennungen in der '' | + | |
- | + | ||
- | <code php> | + | |
- | urnDraw(' | + | |
- | question(value(' | + | |
- | question(value(' | + | |
- | question(value(' | + | |
- | </ | + | |
- | + | ||
- | Auch hier können Sie die '' | + | |
- | + | ||
- | + | ||
- | ==== Viele Stimuli | + | |
- | + | ||
- | Womöglich soll eine größere Anzahl von Objekten bewerten werden. Anstatt einer '' | + | |
- | + | ||
- | <code php> | + | |
- | $zahl = value(' | + | |
- | if ($zahl == 1) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 2) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 3) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 4) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 5) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 6) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 7) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 8) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 9) { | + | |
- | $src = ' | + | |
- | } elseif ($zahl == 10) { | + | |
- | $src = ' | + | |
- | } | + | |
- | html(' | + | |
- | <div style=" | + | |
- | <img src="' | + | |
- | </ | + | |
- | '); | + | |
- | </ | + | |
- | + | ||
- | <code php> | + | |
- | switch (value(' | + | |
- | case 1 : $src = ' | + | |
- | case 2 : $src = ' | + | |
- | case 3 : $src = ' | + | |
- | case 4 : $src = ' | + | |
- | case 5 : $src = ' | + | |
- | case 6 : $src = ' | + | |
- | case 7 : $src = ' | + | |
- | case 8 : $src = ' | + | |
- | case 9 : $src = ' | + | |
- | case 10 : $src = ' | + | |
- | } | + | |
- | html(' | + | |
- | <div style=" | + | |
- | <img src="' | + | |
- | </ | + | |
- | '); | + | |
- | </ | + | |
+ | - [[de: | ||
+ | - [[de: | ||
+ | - [[de: | ||
+ | - [[de: | ||