Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:create:questions:random [03.11.2017 10:52] – [Unterschiede ggü. der Urnen-Funktion] ramona.stock1 | de:create:questions:random [12.12.2021 21:24] (aktuell) – alte Version wiederhergestellt (28.06.2021 18:39) admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Zufallsgenerator ====== | ====== Zufallsgenerator ====== | ||
- | Der Zufallsgenerator | + | **Hinweis: |
- | Der Zufallsgenerator ist eine Weiterentwicklung der [[: | + | 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 '' |
- | Die ausführlichen Beispiele zur Verwendung von Filtern im Rahmen experimenteller Stimuli im Kapitel [[: | + | Der Zufallsgenerator |
- | **Tipp:** Sollte die zufällige Variation nicht wie gewünscht funktionieren, | + | **Tipp:** Sollte die zufällige Variation nicht wie gewünscht funktionieren, |
- | + | Es gibt verschiedene Fälle, in denen ein Zufallsgenerator eingesetzt werden kann. Einige Funktionen, die der Zufallsgenerator dabei ausführen kann: | |
- | ===== Unterschiede ggü. der Urnen-Funktion ===== | + | * 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. [[de: |
- | + | ||
- | * 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 (s. Beispiel unten). | + | |
* Der Zufallsgenerator kann innerhalb eines Interviews mehrere Zettel ziehen (Option //Anzahl Zettel pro Interview// | * Der Zufallsgenerator kann innerhalb eines Interviews mehrere Zettel ziehen (Option //Anzahl Zettel pro Interview// | ||
- | * Der Zufallsgenerator liefert pro Zettel nur einen Wert (und dessen Beschriftung). Kombinationen | + | * Der Zufallsgenerator liefert pro Zettel nur einen Wert (und dessen Beschriftung). |
- | ===== Beispiel: Bildstimulus variieren | + | ===== Erstellung eines Zufallsgenerators===== |
- | In diesem Beispiel | + | 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 |
- | ==== Vorbereitungen | + | ====Schritt 1: Zufallsgenerator anlegen==== |
- | * Laden Sie die 3 Bildstimuli unter **Bilder und Mediendateien** hoch und notieren Sie die Dateinamen. Vorsicht: Die Groß- und Kleinschreibung ist wichtig ('' | + | Der Zufallsgenerator als funktionaler Baustein wird als eine neue Frage in einer Rubrik angelegt |
- | * Legen Sie eine Frage vom Typ " | + | |
- | < | + | {{: |
- | 1 = stimulusA.jpg | + | |
- | 2 = stimulusB.jpg | + | |
- | 3 = stimulusC.jpg | + | |
- | 4 = Kontrollgruppe | + | |
- | </ | + | |
+ | Die Fragekennung benötigen Sie später im PHP-Code. | ||
- | ==== Anwendung ==== | ||
- | Unter **Fragebogen zusammenstellen** ziehen Sie den Zufallsgenerator auf die Seite, wo das Bild erscheinen soll. Darunter (!) platzieren Sie folgenden PHP-Code (s. auch [[: | + | ====Schritt 2: Inhalte eintragen==== |
- | <code php> | + | Im nächsten Schritt geben Sie die //Inhalte |
- | // Auslesen der numerischen Codes (1 bis 4) | + | |
- | $code = value(' | + | |
- | // Die Kontrollgruppe muss anders behandelt werden | + | |
- | if ($code == 4) { | + | |
- | // Kontrollgruppe - nichts anzeigen | + | |
- | } else { | + | |
- | // Die Beschriftung ist als Wertelabel hinterlegt - im Beispiel ist das der Bildname | + | |
- | $bild = value(' | + | |
- | // Das HTML-Tag <img> zeigt ein Bild an, der Dateiname wird mit src angegeben | + | |
- | html(' | + | |
- | <div style=" | + | |
- | <img src="' | + | |
- | </ | + | |
- | '); | + | |
- | } | + | |
- | </ | + | |
+ | Wenn Sie zum Beispiel die Teilnehmer zufällig in verschiedene Gruppen einteilen möchten (z.B. bei der [[de: | ||
+ | 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 | ||
- | ==== Ergänzung 1 ==== | + | 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. |
- | Nicht jede experimentelle Variation ist mit der Anzeige eines einzelnen Bildes erledigt. Der folgende PHP-Code zeigt, wie an anderer Stelle zusätzlich noch ein weiteres Bild variiert wird. Die Variation erfolgt parallel zum ersten Bild -- wer also oben Bild 1a zu sehen bekam, der sieht an dieser Stelle nun Bild 1b. | + | ====Schritt 3: Weitere Einstellungen==== |
- | Diesmal wird der Dateiname für das Bild nicht direkt | + | In manchen Fällen ist es notwendig, die Einstellungen |
- | <code php> | + | * //Anzahl Zettel pro Interview//\\ Wie viele Zettel müssen pro Interview gezogen |
- | // Auslesen der numerischen Codes (1 bis 4) | + | |
- | $code = value(' | + | |
- | // Die Kontrollgruppe muss (auch hier) anders behandelt | + | |
- | if ($code == 4) { | + | |
- | | + | |
- | } else { | + | |
- | // Array, welches | + | |
- | $bilder = array( | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | // Mit eckigen Klammern wird ein Element aus dem Array gelesen | + | |
- | $bild = $bilder[$code]; | + | |
- | | + | |
- | html(' | + | |
- | <div style=" | + | |
- | <img src="' | + | |
- | </ | + | |
- | '); | + | |
- | } | + | |
- | </ | + | |
- | **Hinweis:** Dieser PHP-Code funktioniert nur, wenn im selben Interview vorher schon die Seite mit der Zufallsgenerator-Frage aufgerufen wurde. Falls Sie das Interview zum Testen direkt auf der Seite mit dem PHP-Code | + | ====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 | ||
+ | =====Verwendung des Zufallsgenerators===== | ||
- | ==== Ergänzung 2 ==== | + | Der Zufallsgenerator wird als Grundlage für einige dynamische |
- | + | * [[de: | |
- | Anstatt eines Bildes kann natürlich auch die angezeigte Frage variiert oder ein Textbaustein eingebunden werden. | + | * [[de: |
- | + | * [[de: | |
- | <code php> | + | * [[de: |
- | // Auslesen der numerischen Codes (1 bis 4) | + | |
- | $code = value(' | + | |
- | // Textbaustein variieren | + | |
- | if ($code == 1) { | + | |
- | text(' | + | |
- | } elseif ($code == 2) { | + | |
- | text(' | + | |
- | } elseif ($code == 3) { | + | |
- | text(' | + | |
- | } elseif ($code == 4) { | + | |
- | text(' | + | |
- | } | + | |
- | // Frage variieren | + | |
- | if (($code == 1) or ($code == 2)) { | + | |
- | question(' | + | |
- | } else { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | **Tipp:** Sehen Sie sich neben '' | + | |
- | + | ||
- | + | ||
- | ===== Beispiel: Mehrere Bilder anzeigen ===== | + | |
- | + | ||
- | In diesem Beispiel geht es um 300 Bilder, die von Teilnehmern bewertet werden sollen. Dabei soll jeder Teilnehmer 20 unterschiedliche Bilder bewerten -- jedes Bild auf einer eigenen Seite. | + | |
- | + | ||
- | + | ||
- | ==== Vorbereitung ==== | + | |
- | + | ||
- | * Laden Sie alle Bilder unter **Bilder und Mediendateien** hoch. | + | |
- | * Legen Sie eine Frage vom Typ "Zufallsgenerator" an (im folgenden | + | |
- | * In der Frage tragen Sie als //Zettel (Inhalte)// die Dateinamen aller Bilder ein. Ein Dateiname pro Zeile. Zahlen brauchen Sie nicht voranzustellen, | + | |
- | * Für die Option //Anzahl Zettel pro Interview// tragen Sie die Anzahl der Bilder ein, die gezeigt werden sollen, also in diesem Beispiel 20. | + | |
- | * Legen Sie für die Bewertungen 20 Fragen an, Kennungen '' | + | |
- | + | ||
- | + | ||
- | ==== Anwendung ==== | + | |
- | + | ||
- | Legen Sie unter **Fragebogen zusammenstellen** eine (!) Seite für die Anzeige der Bilder und ggf. zugehöriger Fragen an. Auf dieser Seite platzieren Sie den Zufallsgenerator und darunter folgenden PHP-Code (s. auch [[:de: | + | |
- | + | ||
- | <code php> | + | |
- | // loopPage(20) liefert eine Zahl von 0 bis 19 (eins mehr bei jeder Wiederholung) | + | |
- | $i = loopPage(20); | + | |
- | // Das ausgewählte Bild anzeigen | + | |
- | $varID = ' | + | |
- | $img = value($varID, | + | |
- | // Das HTML-Tag <img> zeigt ein Bild an, der Dateiname wird mit src angegeben | + | |
- | html(' | + | |
- | <div style=" | + | |
- | <img src="' | + | |
- | </ | + | |
- | '); | + | |
- | // Die passende Frage-Kennung erstellen und die Frage mittels question() anzeigen | + | |
- | question(id(' | + | |
- | </ | + | |
- | + | ||
- | Falls Sie nicht 20 Fragen ('' | + | |
- | + | ||
- | <code php> | + | |
- | // Das passende Item aus der Frage mittels question() anzeigen | + | |
- | question(' | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ===== Beispiel: Mehrere Parteien bewerten ===== | + | |
- | + | ||
- | Im folgenden Beispiel sollen die Teilnehmer unterschiedliche politische Parteien hinsichtlich einer Vielzahl von Kriterien beurteilen. Insgesamt sollten 6 Parteien bewertet werden -- allerdings soll jeder Teilnehmer nur 2 zufällig ausgewählte Parteien vorgelegt bekommen. | + | |
- | + | ||
- | ==== Variante 1 ==== | + | |
- | + | ||
- | Diese Variante speichert die Antworten zur ersten gezogenen Partei immer in die gleichern Variablen. Wenn Sie pro Partei z.B. 20 Variablen verwenden, hat Ihr Datensatz also 40 Variablen für die Partei-Bewertungen. Das ist übersichtlich, | + | |
- | + | ||
- | * Legen Sie im Fragebogen eine Rubrik (z.B. '' | + | |
- | * Erstellen Sie eine Kopie der Rubrik, indem Sie die Rubrik erst als XML-Datei herunterladen (Pfeil-nach-unten Symbol oben in der Funktionsleiste über der Frage) und anschließend diese XML-Datei unter //Neue Rubrik// importieren. Im Beispiel wird angenommen, dass die Kopie die Kennung '' | + | |
- | * Erstellen Sie den Fragebogen unter **Fragebogen zusammenstellen** und platzieren Sie die Fragen aus '' | + | |
- | * Legen Sie eine Frage vom Typ " | + | |
- | + | ||
- | < | + | |
- | 1 = CDU/CSU | + | |
- | 2 = SPD | + | |
- | 3 = Die Grünen | + | |
- | 4 = Die Linke | + | |
- | 5 = Piraten | + | |
- | 6 = AfD | + | |
- | </ | + | |
- | + | ||
- | Platzieren Sie den Zufallsgenerator unter **Fragebogen zusammenstellen** auf der ersten Seite mit einer '' | + | |
- | + | ||
- | <code php> | + | |
- | $name = value(' | + | |
- | replace(' | + | |
- | </ | + | |
- | + | ||
- | Von dort an wird in jeder Frage der Platzhalter '' | + | |
- | + | ||
- | Auf der ersten Seite mit einer '' | + | |
- | + | ||
- | <code php> | + | |
- | $name = value(' | + | |
- | replace(' | + | |
- | </ | + | |
- | + | ||
- | Falls Sie die Fragen zu den beiden Parteien mischen möchten und daher in den Fragen und Items die Platzhalter '' | + | |
- | + | ||
- | <code php> | + | |
- | $name1 = value(' | + | |
- | replace(' | + | |
- | $name2 = value(' | + | |
- | replace(' | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ==== Variante 2 ==== | + | |
- | + | ||
- | Ebenfalls möglich ist, dass Sie für jede Partei eigene Fragen anlegen. Wenn Sie pro Partei 20 Variablen abfragen, macht das im Datensatz immerhin 120 Variablen -- dafür werden die Bewertungen einer Partei aber immer in denselben Variablen gespeichert. Das Anlegen so vieler Fragen ist natürlich aufwändiger (v.a. wenn im Pretest noch Änderungsbedarf auftaucht) -- aber die Auswertung ist deutlich einfacher. | + | |
- | + | ||
- | * Legen Sie im Fragebogen eine Rubrik (z.B. '' | + | |
- | * In dieser Variante können Sie den Namen der Partei direkt in die Frage eintragen (und dann in jeder Kopie manuell ändern) oder | + | |
- | * Sie können anstatt des Parteinamens auch den [[:de:create:placeholders|Platzhalter]] '' | + | |
- | * Erstellen Sie 5 Kopien der Rubrik, indem Sie die Rubrik erst als XML-Datei herunterladen (Pfeil-nach-unten Symbol oben in der Funktionsleiste über der Frage) und anschließend diese XML-Datei unter //Neue Rubrik// mehrfach importieren. Im Beispiel wird angenommen, dass die Kopien die Kennungen '' | + | |
- | * Legen Sie eine Frage vom Typ " | + | |
- | + | ||
- | < | + | |
- | 1 = CDU/CSU | + | |
- | 2 = SPD | + | |
- | 3 = Die Grünen | + | |
- | 4 = Die Linke | + | |
- | 5 = Piraten | + | |
- | 6 = AfD | + | |
- | </ | + | |
- | + | ||
- | Platzieren Sie den Zufallsgenerator unter **Fragebogen zusammenstellen** auf oder vor der Seite mit der ersten Partei-Frage. | + | |
- | + | ||
- | Falls Sie mit dem Platzhalter '' | + | |
- | + | ||
- | <code php> | + | |
- | $name = value(' | + | |
- | replace(' | + | |
- | </ | + | |
- | + | ||
- | Die Fragen haben nun also die Kennungen '' | + | |
- | + | ||
- | Den folgenden PHP-Code platzieren jeweils dort, wo die entsprechende Frage gestellt werden soll. Wenn Sie also 9 Fragen pro Partei haben, platzieren Sie den Code 9-mal im Block für die erste Partei und 9-mal im Block für die zweite Partei. Im zweiten Block muss '' | + | |
- | + | ||
- | === PHP-Code mit Zusammenbauen === | + | |
- | + | ||
- | <code php> | + | |
- | $code = value(' | + | |
- | $kennung = ' | + | |
- | question($kennung); | + | |
- | </ | + | |
- | + | ||
- | === PHP-Code mit Filter === | + | |
- | + | ||
- | <code php> | + | |
- | $code = value(' | + | |
- | if ($code == 1) { | + | |
- | question(' | + | |
- | } elseif ($code == 2) { | + | |
- | question(' | + | |
- | } elseif ($code == 3) { | + | |
- | question(' | + | |
- | } elseif ($code == 4) { | + | |
- | question(' | + | |
- | } elseif ($code == 5) { | + | |
- | question(' | + | |
- | } elseif ($code == 6) { | + | |
- | question(' | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Variante 3 ==== | + | |
- | + | ||
- | Prinzipiell besteht auch die Möglichkeit, | + | |
- | + | ||
- | Diese Variante ist anfälliger gegen Fehler (z.B. dass man irgendwo im Fragebogen eine Frage vergisst) und macht den Fragebogen sehr unübersichtlich. Der Befehl '' | + | |
- | + | ||
- | Aufgrund des begrenzten Nutzens von '' | + | |
- | + | ||
- | <code php> | + | |
- | $seiten = array(); | + | |
- | // Numerischer Code der ersten Partei | + | |
- | $code1 = value(' | + | |
- | // Die passenden Seiten in das Array schreiben | + | |
- | if ($code1 == 1) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code1 == 2) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code1 == 3) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code1 == 4) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code1 == 5) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code1 == 6) { | + | |
- | $seiten[] = ' | + | |
- | } | + | |
- | // Seiten für den Zwischenteil ergänzen | + | |
- | $seiten[] = ' | + | |
- | // Numerischer Code der zweiten Partei | + | |
- | $code2 = value(' | + | |
- | // Seiten für die zweite Partei in das Array schreiben | + | |
- | if ($code2 == 1) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code2 == 2) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code2 == 3) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code2 == 4) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code2 == 5) { | + | |
- | $seiten[] = ' | + | |
- | } elseif ($code2 == 6) { | + | |
- | $seiten[] = ' | + | |
- | } | + | |
- | // Festlegen, wo es dann weitergeht | + | |
- | $seiten[] = ' | + | |
- | // Seitenabfolge festlegen | + | |
- | setPageOrder($seiten); | + | |
- | </ | + | |
- | + | ||
- | Auch dieser PHP-Code lässt sich prinzipiell wieder kompakter schreiben, wenn man die Kennungen der Seiten " | + | |
- | + | ||
- | <code php> | + | |
- | $code1 = value(' | + | |
- | $code2 = value(' | + | |
- | setPageOrder( | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | ' | + | |
- | ); | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | ===== Beispiel: Seiten-Abfolge variieren ===== | + | |
- | + | ||
- | Der Fragebogen in diesem Beispiel gehört zu einem Within-Subject Experimentaldesign. Im Fragebogen gibt es einen allgemeinen Teil, dann einige Seiten mit dem ersten Stimulus, dann einige Seiten Puffer und dann Seiten zum zweiten Stimulus. Die Abfolge der beiden Stimulus-Teile im Fragebogen soll zufällig variiert werden. | + | |
- | + | ||
- | + | ||
- | ==== Vorbereitung ==== | + | |
- | + | ||
- | * Legen Sie eine Frage vom Typ " | + | |
- | + | ||
- | < | + | |
- | 1 = Experimentalgruppe 1 | + | |
- | 2 = Experimentalgruppe 2 | + | |
- | </ | + | |
- | + | ||
- | * Geben Sie den Seiten des Fragebogens unter **Fragebogen zusammenstellen** Kennungen ([[: | + | |
- | * Die erste Seite, die zu Stimulus A gehört, bekommt die Kennung " | + | |
- | * Die letzte Seite, die zu Stimulus A gehört, bekommt die Kennung " | + | |
- | * Die erste Seite vom Zwischenteil (Puffer) bekommt die Kennung " | + | |
- | * Die letzte Seite vom Zwischenteil bekommt die Kennung " | + | |
- | * Die erste Seite, die zu Stimulus B gehört, bekommt die Kennung " | + | |
- | * Die letzte Seite, die zu Stimulus B gehört, bekommt die Kennung " | + | |
- | * Die erste Seite des letzten Teils (also direkt nach " | + | |
- | + | ||
- | + | ||
- | ==== Anwendung ==== | + | |
- | + | ||
- | Unter **Fragebogen zusammenstellen** ziehen Sie den Zufallsgenerator auf die letzte Seite des allgemeinen Teils. Die darauf folgende Seite sollte entsprechend die Kennung " | + | |
- | + | ||
- | Unter dem Zufallsgenerator fügen Sie folgenden PHP-Code ein (s. auch [[:de:create:php]]). Der Befehl '' | + | |
- | + | ||
- | <code php> | + | |
- | $code = value(' | + | |
- | if ($code == 1) { | + | |
- | // Normale Reihenfolge beibehalten - man könnte den Befehl also auch einfach weglassen... | + | |
- | setPageOrder(' | + | |
- | } else { | + | |
- | // Umgekehrte Reihenfolge der Teile A und B | + | |
- | setPageOrder(' | + | |
- | } | + | |
- | </ | + | |
===== Ziehungen nachjustieren ===== | ===== Ziehungen nachjustieren ===== | ||
- | Arbeitet man mit vielen Experimentalgruppen, | + | Arbeitet man mit vielen Experimentalgruppen, |
- | **Warnung: | + | **Warnung: |
+ | 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 | ||
- | **Tipp:** In einer Situation, | + | **Tipp:** In einer Situation, |
Sind die Bedingungen für das Nachjustieren (s. oben) erfüllt, so ist das Vorgehen wie folgt: | Sind die Bedingungen für das Nachjustieren (s. oben) erfüllt, so ist das Vorgehen wie folgt: | ||
Zeile 404: | Zeile 99: | ||
</ | </ | ||
- | In Excel oder OpenOffice Calc erstellt man solch eine 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): | + | In Excel oder OpenOffice Calc erstellt man eine solche |
<code excel> | <code excel> | ||
Zeile 416: | Zeile 111: | ||
cat(paste(paste(names(tmp), | cat(paste(paste(names(tmp), | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ |