Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:create:rotation [09.10.2014 21:27] – Ebene der Überschriften korrigiert admin | de:create:rotation [08.06.2021 08:14] (aktuell) – [Rotationen erstellen] admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Rotation ====== | ====== Rotation ====== | ||
- | Von Rotation spricht man, wenn die Items oder Optionen einer Frage jedem Teilnehmer in eine anderen (i.d.R. zufälligen) Reihenfolge dargeboten werden -- oder wenn gar die Reihenfolge von Fragen zufällig variiert wird. | + | Von Rotation spricht man, wenn die Items oder Optionen einer Frage jedem Teilnehmer in einer anderen (i.d.R. zufälligen) Reihenfolge dargeboten werden -- oder wenn gar die Reihenfolge von Fragen zufällig variiert wird. |
Eine Rotation wird gerne verwendet, um Reihenstellungseffekten zu begegnen. Sehr bekannt sind der Primacy- und Recency-Effekt sowie Kontrast- und Konsistenzeffekte: | Eine Rotation wird gerne verwendet, um Reihenstellungseffekten zu begegnen. Sehr bekannt sind der Primacy- und Recency-Effekt sowie Kontrast- und Konsistenzeffekte: | ||
- | In Abgrenzung zur Rotation gibt es die [[randomization|Randomisierung]], | + | In Abgrenzung zur Rotation gibt es die [[randomization|Randomisierung]], |
**Tipp:** Lesen Sie zum Verständnis der komplexeren Code-Beispiele (unten) die Kapitel [[php|Einführung in PHP-Code]] und [[array|Einführung in Arrays]]. | **Tipp:** Lesen Sie zum Verständnis der komplexeren Code-Beispiele (unten) die Kapitel [[php|Einführung in PHP-Code]] und [[array|Einführung in Arrays]]. | ||
Zeile 20: | Zeile 20: | ||
Der Messfehler durch Rotation sinkt mit der Anzahl an Items, mit denen man ein Konstrukt misst. In der BFI-S Persönlichkeitsskala mit 3 Items je Persönlichkeitsfaktor fällt der Messfehler geringer aus als im obigen Beispiel mit einem Item. Sofern man sowohl Korrelationen rechnen will als auch die Items untereinander vergleichen, | Der Messfehler durch Rotation sinkt mit der Anzahl an Items, mit denen man ein Konstrukt misst. In der BFI-S Persönlichkeitsskala mit 3 Items je Persönlichkeitsfaktor fällt der Messfehler geringer aus als im obigen Beispiel mit einem Item. Sofern man sowohl Korrelationen rechnen will als auch die Items untereinander vergleichen, | ||
+ | =====Rotationen erstellen===== | ||
+ | Je nachdem was man rotieren möchte, sieht die Vorgehensweise, | ||
+ | * [[de: | ||
+ | * [[de: | ||
+ | * [[de: | ||
+ | * [[de: | ||
- | ===== Rotation der Items oder Optionen | + | **Hinweis: |
- | Die Randomisierung oder Rotation von Items in einer Frage wird wie folgt aktiviert: Die Frage im **Fragenkatalog** öffnen und entweder im ersten Karteireiter oder bei den // | ||
- | |||
- | Falls einzelne Items (z.B. ein " | ||
- | |||
- | **Hinweis: | ||
- | |||
- | |||
- | ===== Rotation von Items über mehrere Seiten ===== | ||
- | |||
- | Falls Sie in einer Frage sehr viele Items haben, möchten Sie diese vielleicht auf mehrere Seiten verteilen. Normalerweise würden Sie das erledigen, indem Sie die Frage beim **Fragebogen zusammenstellen** mehrfach einfügen und jeweils bei den Anzeige-Einstellungen ({{: | ||
- | |||
- | Falls Sie die Verteilung der Items mit einer Randomisierung kombinieren möchten, benötigen Sie ein paar Zeilen [[php|PHP-Code]]. | ||
- | |||
- | <code php> | ||
- | // Das isset() vermeidet, dass die Rotation etwa wg. fehlenden Antworten verändert wird | ||
- | if (!isset($itemsAB01)) { | ||
- | // Alle Items der Frage AB01 auflisten | ||
- | $itemsAB01 = getItems(' | ||
- | // Liste Mischen | ||
- | shuffle($itemsAB01); | ||
- | // Die Liste in Teillisten à 20 Items teilen | ||
- | $itemsAB01 = array_chunk($itemsAB01, | ||
- | // Die Variable für andere Seiten verfügbar machen | ||
- | registerVariable(' | ||
- | } | ||
- | |||
- | // Die Items über mehrere Seiten verteilt anzeigen | ||
- | $i = loopPage(count($itemsAB01)); | ||
- | question(' | ||
- | </ | ||
- | |||
- | Mit der Funktion '' | ||
- | |||
- | <code php> | ||
- | // Erste Seite | ||
- | question(' | ||
- | |||
- | // Zweite Seite | ||
- | question(' | ||
- | |||
- | // Dritte Seite | ||
- | question(' | ||
- | </ | ||
- | |||
- | Beachten Sie bitte, dass sich auf den Seiten nur noch der Index in eckigen Klammern ändert. Der Index beginnt bei 0, nicht bei 1 (s. Beispiel oben). | ||
- | |||
- | **Wichtig: | ||
- | |||
- | |||
- | ===== Rotation mehrerer Fragen ===== | ||
- | |||
- | In seltenen Fällen sollen nicht nur die Items einer Frage rotiert werden, sondern gleich die Fragen. Dies erfordert ein wenig Programmierung mittels [[php|PHP-Code]]. | ||
- | |||
- | Das folgende Beispiel zeigt, wie man die Reihenfolge von 5 Fragen auf einer Seite im Fragebogen rotieren kann (zur Erklärung von Arrays s. [[filter-items# | ||
- | |||
- | <code php> | ||
- | if (!isset($fragen)) { | ||
- | $fragen = array( | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ); | ||
- | // Die Liste zufällig mischen | ||
- | shuffle($fragen); | ||
- | // Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern | ||
- | registerVariable(' | ||
- | // Die Liste der Fragen Kennung für Kennung durchgehen | ||
- | // und jeweils die entsprechende Frage anzeigen | ||
- | foreach ($fragen as $kennung) { | ||
- | question($kennung); | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | **Hinweis: | ||
- | |||
- | |||
- | ===== Fragen über mehrere Seiten rotieren ===== | ||
- | |||
- | Die Rotation von Fragen über mehrere Seiten ist nur geringfügig anspruchsvoller. Das folgende Beispiel zeigt, wie 6 Fragen auf 2 Seiten verteilt werden können: | ||
- | |||
- | <code php> | ||
- | // PHP-Code auf Seite 1 | ||
- | |||
- | // Das Mischen der Liste nur einmalig ausführen | ||
- | if (!isset($fragen)) { | ||
- | // Liste der Frage-Kennungen erstellen | ||
- | $fragen = array( | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ); | ||
- | // Die Liste zufällig mischen | ||
- | shuffle($fragen); | ||
- | // Die Listen auf allen Seiten verfügbar machen | ||
- | registerVariable(' | ||
- | } | ||
- | |||
- | // Die ersten drei Kennungen der Liste anzeigen | ||
- | question($fragen[0]); | ||
- | question($fragen[1]); | ||
- | question($fragen[2]); | ||
- | </ | ||
- | |||
- | <code php> | ||
- | // PHP-Code auf Seite 2 | ||
- | |||
- | // Die nächsten drei Kennungen der Liste anzeigen | ||
- | question($fragen[3]); | ||
- | question($fragen[4]); | ||
- | question($fragen[5]); | ||
- | </ | ||
- | |||
- | Falls Sie die Fragen einzeln auf jeweils einer eigenen Seite anzeigen möchten, kann dies mittels '' | ||
- | |||
- | <code php> | ||
- | $i = loopPage(count($fragen)); | ||
- | question($fragen[$i]); | ||
- | </ | ||
- | |||
- | |||
- | ===== Fragen zusammen mit weiterem Inhalt rotieren ===== | ||
- | |||
- | Noch einen Schritt weiter muss man gehen, um weitere Daten (z.B. ein Bild als Stimulus) mit den Fragen zusammen zu rotieren. Wenn also vor Frage 1 immer " | ||
- | |||
- | <code php> | ||
- | if (!isset($blocks)) { | ||
- | $blocks = array( | ||
- | array(' | ||
- | array(' | ||
- | array(' | ||
- | array(' | ||
- | ); | ||
- | |||
- | // Die Liste mischen | ||
- | shuffle($blocks); | ||
- | // Die Listen auf allen Seiten verfügbar machen | ||
- | registerVariable(' | ||
- | } | ||
- | |||
- | // Anzeige der Blöcke | ||
- | $i = loopPage(count($blocks)); | ||
- | // Bild anzeigen | ||
- | html('< | ||
- | // Frage anzeigen | ||
- | question($blocks[$i][0]); | ||
- | </ | ||
- | |||
- | Alternativ können mehrere Seiten im Fragebogen eingefügt und jeweils ein Block angezeigt werden. Dies kann z.B. hilfreich sein, wenn die Blöcke nicht direkt hintereinander angezeigt werden sollen. | ||
- | |||
- | <code php> | ||
- | html('< | ||
- | question($blocks[0][0]); | ||
- | </ | ||
- | |||
- | <code php> | ||
- | html('< | ||
- | question($blocks[1][0]); | ||
- | </ | ||
- | |||
- | |||
- | ===== Mehrere Fragen pro Stimulus ===== | ||
- | |||
- | Es sind natürlich auch mehrere Fragen pro Block denkbar -- allerdings lässt sich so etwas in aller Regel einfacher mittels '' | ||
- | |||
- | Die Seitenabfolge muss auf der Seite __vor__ der ersten zu rotierenden Seite erfolgen. Außerdem muss beim **Fragebogen zusammenstellen** jeder Seite eine eindeutige Kennung zugeteilt werden. Im folgenden Beispiel wäre das " | ||
- | |||
- | <code php> | ||
- | if (!isset($seiten)) { | ||
- | // Liste der Seiten definieren | ||
- | $seiten = array(' | ||
- | // Liste mischen | ||
- | shuffle($seiten); | ||
- | // Die Seite ergänzen, wo es nachher weiter geht | ||
- | $seiten[] = ' | ||
- | // Reihenfolge zwischenspeichern, | ||
- | registerVariable(' | ||
- | } | ||
- | setPageOrder($seiten); | ||
- | </ | ||
- | |||
- | **Hinweis: | ||
- | |||
- | |||
- | ===== Rotation von Frageblöcken ===== | ||
- | |||
- | Ebenso wie einzelne Seiten können auch Blöcke mehrere Seiten rotiert werden. Der einzige Unterschied ist, dass jedem dieser Blöcke unter **Fragebogen zusammenstellen** eine Kennung für die jeweils erste und letzte Seite zugeordnet werden (z.B. " | ||
- | |||
- | **Wichtig: | ||
- | |||
- | <code php> | ||
- | if (!isset($blocks)) { | ||
- | // Liste der Seiten definieren | ||
- | $seiten = array(' | ||
- | // Liste mischen | ||
- | shuffle($seiten); | ||
- | // Die Seite ergänzen, wo es nachher weiter geht | ||
- | $seiten[] = ' | ||
- | // Reihenfolge zwischenspeichern, | ||
- | registerVariable(' | ||
- | } | ||
- | setPageOrder($seiten); | ||
- | </ |