[[Rotation]]
 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:rotation [05.04.2015 13:42] – [Rotation von Frageblöcken] Korrektur PHP-Code adminde: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: Die Rotation kommt also speziell dann zum Einsatz, wenn die Reihenfolge von Fragen oder Items das Antwortverhalten in der Gesamtstichprobe maßgeblich verzerren dürfte. Die tatsächlich im Einzelfall verwendete Reihenfolge fließt bei der Rotation in aller Regel nicht in die Auswertung ein. Eine Rotation wird gerne verwendet, um Reihenstellungseffekten zu begegnen. Sehr bekannt sind der Primacy- und Recency-Effekt sowie Kontrast- und Konsistenzeffekte: Die Rotation kommt also speziell dann zum Einsatz, wenn die Reihenfolge von Fragen oder Items das Antwortverhalten in der Gesamtstichprobe maßgeblich verzerren dürfte. Die tatsächlich im Einzelfall verwendete Reihenfolge fließt bei der Rotation in aller Regel nicht in die Auswertung ein.
  
-In Abgrenzung zur Rotation gibt es die [[randomization|Randomisierung]], bei welche Teilnehmer zufällig in Experimentalgruppen eingeteilt werden. Auch dort kann die Reihenfolge von Fragen gezielt variiert werden -- dann ist diese Reihenfolge aber für die Auswertung i.d.R. hochrelevant.+In Abgrenzung zur Rotation gibt es die [[randomization|Randomisierung]], bei welcher Teilnehmer zufällig in Experimentalgruppen eingeteilt werden. Auch dort kann die Reihenfolge von Fragen gezielt variiert werden -- dann ist diese Reihenfolge aber für die Auswertung i.d.R. hochrelevant.
  
 **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, muss man die Vor- und Nachteile abwägen. Vor Einsatz der Rotation sollte man nur eben kurz innehalten und über sein Ziel nachdenken. 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, muss man die Vor- und Nachteile abwägen. Vor Einsatz der Rotation sollte man nur eben kurz innehalten und über sein Ziel nachdenken.
  
 +=====Rotationen erstellen=====
 +Je nachdem was man rotieren möchte, sieht die Vorgehensweise, wie man eine Rotation im Fragebogen erstellt, etwas anders aus: 
 +  * [[de:create:rotation-items|Items rotieren]]
 +  * [[de:create:rotation-questions|Fragen rotieren]]
 +  * [[de:create:rotation-pages]]
 +  * [[de:create:rotation-complicated]]
  
-===== Rotation der Items oder Optionen einer Frage =====+**Hinweis:** In Abgrenzung zur Rotation gibt es außerdem auch die [[de:create:randomization]]. Hierbei wird nicht die Reihenfolge der Stimuli zufällig festgelegt, sondern aus einer Anzahl aus Stimuli nur zufällig einige ausgewählt und präsentiert.
  
-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 //Einstellungen für die Items der Frage// bei der Einstellung //Reihenfolge Auswahloptionen// die Option "Zufällig rotieren/mischen" auswählen. Die Randomisierung wird nach dem Speichern der Frage sofort in der Vorschau aktiviert. 
- 
-Falls einzelne Items (z.B. ein "Sonstiges" mit Texteingabe) von der Rotation ausgenommen werden sollen, öffnen Sie dieses Item im **Fragenkatalog** oder mit dem {{:button.edit.gif?nolink|Bearbeiten}}-Symbol und aktiviert die Option //Dieses Item beim Mischen der Items ausnehmen//. 
- 
-**Hinweis:** Die Rotation betrifft natürlich nur die Darstellung im Fragebogen. Die Antworten des Befragten auf ein bestimmtes Item werden immer unter derselben Kennung gespeichert. 
- 
- 
-===== 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 ({{:button.settings.png?nolink|Anzeige-Einstellungen}}-Knopf) unterschiedliche Items angeben, z.B. "1-10", "11-20", etc. 
- 
-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('AB01', 'all'); 
-  // Liste Mischen 
-  shuffle($itemsAB01); 
-  // Die Liste in Teillisten à 20 Items teilen 
-  $itemsAB01 = array_chunk($itemsAB01, 20); 
-  // Die Variable für andere Seiten verfügbar machen 
-  registerVariable('itemsAB01'); 
-} 
- 
-// Die Items über mehrere Seiten verteilt anzeigen 
-$i = loopPage(count($itemsAB01)); 
-question('AB01', $itemsAB01[$i]); 
-</code> 
- 
-Mit der Funktion ''[[:de:create:functions:looppage|loopPage()]]'' kann man innerhalb einer Fragebogen-Seite mehrere unterschiedliche Seiten anzeigen. Alternativ zu den letzten beiden Zeilen kann man die benötigte Anzahl an Seiten im Fragebogen einfügen und jeweils den entsprechenden Item-Bereich anzeigen: 
- 
-<code php> 
-// Erste Seite 
-question('AB01', $itemsAB01[0]); 
- 
-// Zweite Seite 
-question('AB01', $itemsAB01[1]); 
- 
-// Dritte Seite 
-question('AB01', $itemsAB01[2]); 
-</code> 
- 
-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:** Wenn man beim **Fragebogen zusammenstellen** direkt eine Seite mit Items startet, dann erhält man die Fehlermeldung, die Variable ''$itemsAB01'' sei unbekannt. Man muss zum Testen jeweils ab der Seite starten, wo die Randomisierung damit die Variable ''$itemsAB01'' definiert wird. 
- 
- 
-===== 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#arrays|Items in eine anderen Frage übernehmen]]): 
- 
-<code php> 
-if (!isset($fragen)) { 
-  $fragen = array(  // Liste der Frage-Kennungen 
-    'AB01', 
-    'AB02', 
-    'CC03', 
-    'DE01', 
-    'DE02' 
-  ); 
-  // Die Liste zufällig mischen 
-  shuffle($fragen); 
-  // Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern 
-  registerVariable('fragen'); 
-  // Die Liste der Fragen Kennung für Kennung durchgehen 
-  // und jeweils die entsprechende Frage anzeigen 
-  foreach ($fragen as $kennung) { 
-    question($kennung); 
-  } 
-} 
-</code> 
- 
-**Hinweis:** Sollten Sie eine ähnliche Rotation an unterschiedlichen Stellen im Fragebogen verwenden, muss der Name der Variable ''$fragen'' variiert werden, also z.B. bei der ersten Verwendung ''$fragen1'', bei der zweiten Verwendung ''$fragen2''. 
- 
- 
-===== 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( 
-    'AB01', 'AB02', 
-    'CC02', 'CC03', 
-    'DE01', 'DE02' 
-  ); 
-  // Die Liste zufällig mischen 
-  shuffle($fragen); 
-  // Die Listen auf allen Seiten verfügbar machen 
-  registerVariable('fragen'); 
-} 
- 
-// Die ersten drei Kennungen der Liste anzeigen 
-question($fragen[0]); 
-question($fragen[1]); 
-question($fragen[2]); 
-</code> 
- 
-<code php> 
-// PHP-Code auf Seite 2 
- 
-// Die nächsten drei Kennungen der Liste anzeigen 
-question($fragen[3]); 
-question($fragen[4]); 
-question($fragen[5]); 
-</code> 
- 
-Falls Sie die Fragen einzeln auf jeweils einer eigenen Seite anzeigen möchten, kann dies mittels ''[[:de:create:functions:looppage|loopPage()]]'' relativ einfach erledigt werden. Das folgende Code-Beispiel setzt nach der Definition der Reihenfolge an (also zwei Zeilen unter dem ''registerVariable()'' im obigen PHP-Code) 
- 
-<code php> 
-$i = loopPage(count($fragen)); 
-question($fragen[$i]); 
-</code> 
- 
- 
-===== 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 "bild1.png" und vor Frage 2 immer "bild2.gif" angezeigt werden soll. Aber vom Prinzip her ändert sich nichts. Im folgenden Beispiel zeigt jede Seite nur eine Kombination aus Bild und Frage -- es können aber (wie im vorigen Beispiel) mehrere Fragen auf einer Seite gestellt werden. 
- 
-<code php> 
-if (!isset($blocks)) { 
-  $blocks = array(  // Liste der Frage-Kennungen und zugehöriger Bilder 
-    array('AB01', 'bild1.png'), 
-    array('AB02', 'bild2.gif'), 
-    array('AB03', 'bild3.jpg'), 
-    array('AB04', 'bild4.png') 
-  ); 
- 
-  // Die Liste mischen 
-  shuffle($blocks); 
-  // Die Listen auf allen Seiten verfügbar machen 
-  registerVariable('blocks'); 
-} 
- 
-// Anzeige der Blöcke 
-$i = loopPage(count($blocks)); 
-// Bild anzeigen 
-html('<p><img src="'.$blocks[$i][1].'" alt="Wahlplakat"></p>'); 
-// Frage anzeigen 
-question($blocks[$i][0]); 
-</code> 
- 
-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('<p><img src="'.$blocks[0][1].'" alt="Wahlplakat"></p>'); 
-question($blocks[0][0]); 
-</code> 
- 
-<code php> 
-html('<p><img src="'.$blocks[1][1].'" alt="Wahlplakat"></p>'); 
-question($blocks[1][0]); 
-</code> 
- 
- 
-===== 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 ''[[:de:create:functions:setpageorder|setPageOrder()]]'' lösen. Dabei werden unterschiedliche Seiten des Fragebogens in (z.B.) zufälliger Reihenfolge dargeboten. 
- 
-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 "B1", "B2", ... "B5". Auch die darauffolgende Seite muss eine Kennung erhalten (z.B. "SD"). 
- 
-<code php> 
-if (!isset($seiten)) { 
-  // Liste der Seiten definieren 
-  $seiten = array('B1','B2','B3','B4','B5'); 
-  // Liste mischen 
-  shuffle($seiten); 
-  // Die Seite ergänzen, wo es nachher weiter geht 
-  $seiten[] = 'SD'; 
-  // Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden 
-  registerVariable('seiten'); 
-} 
-setPageOrder($seiten); 
-</code> 
- 
-**Hinweis:** Wann immer Sie ''isset()'' einsetzen, um eine spätere Veränderung der Reihenfolge (z.B. durch Verwendung des Zurück-Knopfes) zu vermeiden, können Sie die Variable (hier: ''$seiten'') nur einmal im Fragebogen verwenden. Sollten Sie mehrere derartige Bereiche benötigen, variieren Sie den Namen der Variable, z.B. ''$seiten1'' und ''$seiten2''. 
- 
- 
-===== 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. "B1Start" und "B1End", "B2Start" und "B2End" u.s.w.). Und auch die erste Seite nach dem Bereich bekommt wieder eine Kennung ("SD"). 
- 
-**Wichtig:** Wenn Sie mehrere Seiten(blöcke) im Fragebogen rotieren möchten, verwenden sie den Befehl ''[[:de:create:functions:setpageorder|setPageOrder()]]'' anstatt des folgenden PHP-Codes. 
- 
-<code php> 
-if (!isset($blocks)) { 
-  // Liste der Seiten definieren 
-  $blocks = array('B1Start-B1End','B2Start-B2End','B3Start-B3End'); 
-  // Liste mischen 
-  shuffle($blocks); 
-  // Die Seite ergänzen, wo es nachher weiter geht 
-  $blocks[] = 'SD'; 
-  // Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden 
-  registerVariable($blocks); 
-} 
-setPageOrder($blocks); 
-</code> 
de/create/rotation.1428234150.txt.gz · Zuletzt geändert: 05.04.2015 13:42 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki