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:multilevel [02.08.2019 16:13] adminde:create:multilevel [07.02.2025 17:37] (aktuell) – [Zufallsziehung mit Bildern] admin
Zeile 7: Zeile 7:
  
 **Hinweis:** Zur Verwendung von SoSci Survey im Rahmen mehrwelliger Erhebungen (welche ebenfalls Multi-Level-Daten erzeugen) siehe [[:de:create:waves]]. **Hinweis:** Zur Verwendung von SoSci Survey im Rahmen mehrwelliger Erhebungen (welche ebenfalls Multi-Level-Daten erzeugen) siehe [[:de:create:waves]].
 +
 +
 +===== Verwendung der Multi-Level Übersicht =====
 +
 +Der Fragetyp [[:de:create:questions:multilevel]] koppelt einen übergeordneten Fragebogen mit einem untergeordneten Fragebogen, sodass eine Multi-Level Struktur ohne PHP-Programmierung verwendet werden kann.
 +
 +PHP-Code ist nur erforderlich, wenn mittels ''[[:de:create:functions:multilevelprepare]]'' vorab eine Liste mit Fällen erzeugt werden soll, welche die Befragte ausfüllen/bearbeiten soll.
  
  
Zeile 58: Zeile 65:
 **Hinweis:** Das Multi-Levle-Design erlaubt es __nicht__, mittels Zurück-Knopf zu einer früheren Wiederholungen bzw. einem bereits bewerteten Stimulus zurück zu wechseln. **Hinweis:** Das Multi-Levle-Design erlaubt es __nicht__, mittels Zurück-Knopf zu einer früheren Wiederholungen bzw. einem bereits bewerteten Stimulus zurück zu wechseln.
  
 +===== Anwendungsfälle und Beispiele =====
  
-==== Beispiel 1 ====+==== Abfrage mit Abbruchbedingung ====
  
 Im ersten Anwendungsfall sollen die Elemente im Teilfragebogen (Kennung "sub01") abgefragt werden. Dafür wird als erste Frage im Teilfragebogen eine //offene Texteingabe// ("NT01") mit Ausweichoption "kein weiteres Element" verwendet. Im ersten Anwendungsfall sollen die Elemente im Teilfragebogen (Kennung "sub01") abgefragt werden. Dafür wird als erste Frage im Teilfragebogen eine //offene Texteingabe// ("NT01") mit Ausweichoption "kein weiteres Element" verwendet.
Zeile 97: Zeile 105:
 </code> </code>
  
 +Die folgende Abbildung visualisiert anhand eines vereinfachten Beispiels (Auswahlfrage NT01 mit 1=Wiederholung), wo die PHP-Codes platziert werden, welche Daten übermittel werden (orange) und welche PHP-Befehle wohin springen (grün).
  
-==== Beispiel 2 ====+{{:de:create:multilevel.loop.png?nolink|Platzierung der PHP-Codes auf den unterschiedlichen Seiten}} 
 + 
 + 
 +==== Abfrage für jede Nennung ====
  
 Alternativ kann der Hauptfragebogen zunächst alle Element abfragen und dann den Teilfragebogen entsprechend oft starten. Dieses Beispiel geht davon aus, dass in einer Frage vom Typ //Offene Nennungen// (Kennung z.B. "NG01") zunächst Elemente abgefragt wurden. Alternativ kann der Hauptfragebogen zunächst alle Element abfragen und dann den Teilfragebogen entsprechend oft starten. Dieses Beispiel geht davon aus, dass in einer Frage vom Typ //Offene Nennungen// (Kennung z.B. "NG01") zunächst Elemente abgefragt wurden.
Zeile 110: Zeile 122:
 if (count($items) > 0) { if (count($items) > 0) {
   $item = loopPage($items);   $item = loopPage($items);
-  // Text der Nennung abrugen+  // Text der Nennung abrufen
   $element = value(id('NG01', $item));   $element = value(id('NG01', $item));
   // Teilfragebogen starten und Text der Nennung übergeben   // Teilfragebogen starten und Text der Nennung übergeben
Zeile 130: Zeile 142:
  
  
-==== Beispiel 3 ====+==== Zufallsziehung ===== 
 + 
 +In diesem Anwendungsfall sollen mittels [[:de:create:questions:random]] 10 aus 100 Stimuli gezogen und bewertet werden. Die Bewertung erfolgt in dem untergeordneten Fragebogen "rating". Folgende Vorbereitungen sind notwendig, die Kennungen können natürlich frei gewählt werden: 
 + 
 +  * Im Zufallsgenerator "RG01" sind die Stimuli als Begriffe hinterlegt, und es ist eingestellt, dass pro Interview 10 Codes gezogen werden. Der Karteireiter "Variablen" zeigt neben der Variable "RG01_CP" (die wir hier nicht benötigen) die Variablen "RG01x01" bis "RG01x10"
 +  * Es existiert eine Frage "interne Variablen" mit der Kennung "IV01", in welcher eine Variable "IV01_01" mit der Beschriftung "Stimulus" existiert. 
 + 
 +Im übergeordneten Fragebogen wird nun auf einer Seite der Zufallsgenerator eingebunden (in die Seite gezogen) und darunter folgender PHP-Code platziert: 
 + 
 +<code php> 
 +// Auslesen der gezogenen Werte 
 +$stimuli = array_values(valueList('RG01')); 
 + 
 +// Die Seite für jeden der gezogenen Werte anzeigen 
 +$stimulusID = loopPage($stimuli); 
 + 
 +// Den untergeordneten Fragebogen für den Stimulus aufrufen 
 +multiLevelDown('rating', $stimulusID); 
 +</code> 
 + 
 +Die Funktion ''valueList()'' liest alle gezogenen Werte aus, und die Funktion ''array_values()'' entfernt die Variablennamen, welche die Funktion ''valueList()'' mitliefert, die hier aber nicht benötigt werden. Die Funktion ''loopPage()'' kümmert sich um die Wiederholungen und die Funktion ''multiLevelDown()'' leitet zum untergeordneten Fragebogen "rating" weiter, der für jeden Stimulus durchlaufen werden soll. Dabei wird die Information übergeben, welcher Stimulus (numerischer Code) jeweils angezeigt werden soll. 
 + 
 +Im untergeordneten Fragebogen "rating" muss man zunächst mittels ''multiLevelData()'' auslesen, welcher Stimulus angezeigt werden soll. Mittels ''getItemtext()'' wird dann ermittelt, welchem Text das entspricht, und dieser wird mittels ''replace()'' in den Platzhalter ''%text%'' geschrieben (der Name ist frei wählbar). 
 + 
 +<code php> 
 +// Information aus multiLevelDown() auslesen 
 +$stimulusID = multiLevelData(); 
 + 
 +// ID im Datensatz speichern 
 +put('IV01_01', $stimulusID); 
 + 
 +// Text zum Code suchen 
 +$stimulus = getItemtext('RG01', $stimulusID); 
 + 
 +// Text in einen Platzhalter schreiben 
 +replace('%text%', $stimulus); 
 +</code> 
 + 
 +Der Platzhalter kann nun in nachfolgenden Fragebogen oder beispielsweise auch in folgenden HTML-Code verwendet werden: 
 + 
 +<code html> 
 +<h1>%text%</h1> 
 +</code> 
 + 
 + 
 +==== Zufallsziehung mit Bildern ==== 
 + 
 +Wenn Sie Bilder anstatt von Begriffen verwenden, hinterlegen Sie im Zufallsgenerator die Dateinamen der Bilder. 
 + 
 +Die Einrichtung des übergeordneten Fragebogens erfolgt wie oben für die Zufallsziehung beschrieben. 
 + 
 +Im untergeordneten Fragebogen können Sie mithilfe des Dateinamens dann das jeweils passende Bild anzeigen. 
 + 
 +<code php> 
 +// Information aus multiLevelDown() auslesen 
 +$stimulusID = multiLevelData(); 
 + 
 +// ID im Datensatz speichern 
 +put('IV01_01', $stimulusID); 
 + 
 +// Name der Bilddatei zum Code suchen 
 +$dateiname = getItemtext('RG01', $stimulusID); 
 + 
 +// Bild anzeigen 
 +html( 
 +  '<div style="text-align: center;">'
 +  '<img src="'.$dateiname.'" alt="" style="max-width: 100%">'
 +  '</div>' 
 +); 
 +</code> 
 + 
 + 
 +==== Zufallsziehung mit Auslassungen oder Abbruch ====
  
 Die Anleitung zu [[:de:create:functions:randomuse#anwendungsbeispiel|randomUse()]] zeigt den vollständigen PHP-Code für den Anwendungsfall, dass Teilnehmer 20 zufällig aus einem Pool ausgewählte Items bewerten müssen, diese aber auch auslassen können. Die Anleitung zu [[:de:create:functions:randomuse#anwendungsbeispiel|randomUse()]] zeigt den vollständigen PHP-Code für den Anwendungsfall, dass Teilnehmer 20 zufällig aus einem Pool ausgewählte Items bewerten müssen, diese aber auch auslassen können.
 +
  
  
de/create/multilevel.1564755204.txt.gz · Zuletzt geändert: 02.08.2019 16:13 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