Dies ist eine alte Version des Dokuments!
Eine Multi-Level Struktur liegt dann vor, wenn innerhalb eines Fragebogens die gleichen Fragen mehrfach beantwortet werden sollen, und zwar für unterschiedliche Personen oder Objekte. Beispiele sind:
Hinweis: Zur Verwendung von SoSci Survey im Rahmen mehrwelliger Erhebungen (welche ebenfalls Multi-Level-Daten erzeugen) siehe Mehrwellige Befragungen.
Wenn zu jedem genannten Element (Namen, Artikel, Objekt, …) nur eine oder wenige Eigenschaften abgefragt werden sollen, kann ein ganz „normaler“ Fragebogen ausreichend sein. In diesem Fragebogen sieht man eine bestimmte (maximale) Anzahl an Nennungen vor und legt eine entsprechende Anzahl Fragen oder Items an.
Wichtig: Bei dieser Variante werden die Daten für alle Elemente in einer einzigen Datenzeile in unterschiedlichen Variablen gespeichert.
Beispiel: Der Teilnehmer soll Namen seiner Kollegen eintragen und für jeden Kollegen bewerten, wie viel er mit diesem zusammenarbeitet und ob er ihn auch außerhalb der Arbeit privat trifft.
%name1%
bis %name20%
.Mit einem Filter wird ermittelt, welche der Eingabefelder ausgefüllt wurden. Außerdem werden die Namen in die Platzhalter gespeichert …
$items = getItems('NG01', 'valid'); foreach ($items as $item) { $varID = id('NG01', $item); $value = value($varID); replace('%name'.$item.'%', $value); } registerVariable($items);
… und anschließend (ggf. auch über mehrere Seiten verteilt) nur jene Items der folgenden Fragen angezeigt, zu denen auch ein Element eingetragen wurde.
question('FR01', $items); question('FR02', $items);
Tipp: Wenn man die Fragen zu den Elementen auf einzelnen Seiten abfragen möchte, bietet sich die Funktion loopPage()
an. Auf deren Basis kann man (a) jeweils ein einzelnes Item aus einer Frage anzeigen, (b) jeweils eine Frage aus einer Rubrik anzeigen (z.B. „RB01“ bis „RB20“) oder (c) jeweils aus einer eigenen Rubrik (z.B. „R0“ bis „R9“) bestimmte Fragen anzeigen (z.B. „R001, R002“ bis „R901, R902“).
Hinweis: Diese Variante setzt immer eine definierte Obergrenze für die Anzahl an Elementen voraus. Diese Obergrenze wird – je nach Anwendungsfall – zwischen 5 und 99 liegen, denn mehr als 99 Elemente sind mit dieser Lösung nur aufwändig zu realisieren. Theoretisch gibt es natürlich auch Fälle, wo diese Obergrenze nicht ausrecht. Umgekehrt darf man fragen, ob man wirklich jeden statistischen Ausreißer in den Daten abbilden muss. Meistens ist das nicht notwendig, um aussagekräftige Ergebnisse zu erhalten. Und praktisch ist es auch so, dass es den meisten Teilnehmer auch an Motivation mangelt, dieselben Fragen für mehr als eine Hand voll Elemente zu beantworten.
Möchte man die Daten für eine Multi-Level Analyse tatsächlich in unterschiedlichen Datenzeilen speichern, unterstützt SoSci Survey dies mit den folgenden PHP-Befehlen:
multiLevelDown()
– Startet innerhalb des Hauptfragebogens (Level 2) einen Teilfragebogen (Level 1) für das einzelne Element.multiLevelData()
– Liefert im Teilfragebogen die Daten, die evtl. mittels multiLevelDown()
übermittelt wurden.multiLevelReturn()
– Leitet den Teilnehmer vom Teilfragebogen zurück zum Hauptfragebogen und übergibt dabei (optional) Daten, z.B. einer Auswahlfrage, ob noch weitere Elemente folgen. Falls der Befhel nicht verwendet wird, springt der Teilfragebogen beim Erreichen der „letzten Seite“ automatisch zurück zum Hauptfragebogen (dabei werden keine Daten übermittelt).multiLevelResponse()
– Liefert im Hauptfragebogen die Daten, die evtl. von multiLevelReturn()
übermittelt wurden.Der Teilfragebogen speichert die Fallnummer (CASE) des Hauptfragebogens als Referenz (REF), sodass eine eindeutige Zuordnung von Teil- zu Hauptfragebögen möglich ist.
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.
Der Hauptfragebogen hat zwei Aufgaben: Zum einen muss er den Teilnehmer an geeigneter Stelle zum Teilfragebogen schicken. Diese Seite benötigt eine Kennung, z.B. „subStart“.
multiLevelDown('sub01');
Zum anderen muss er auf der nächsten Seite überprüfen, ob der Teilfragebogen erneut vorgelegt werden soll (das wird erreicht, indem der Fragebogen zur Seite „subStart“ zurück springt). Dafür gibt der Teilfragebogen mittels multiLevelReturn()
entweder den Wert true
zurück (s. unten), falls ein Element eingetragen wurde oder false
, wenn die Ausweichoption „kein weiteres Element“ angegeben wurde. Diese Antwort wird mittels multiLevelResponse()
abgefragt und in einem Filter verwertet.
$rsp = multiLevelResponse(); // Falls $rsp den Wert true hat... if ($rsp) { // ... springt der Fragebogen zurück zur vorigen Seite "subStart" goToPage('subStart'); }
Der Teilfragebogen muss lediglich dafür sorgen, dem Hauptfragebogen den korrekten Wert (true
oder false
) mitzuteilen. Dafür wird vor der „letzten Seite“ eine zusätzliche Seite eingefügt, welche mittels überprüft, ob die Ausweichoption (nicht) angekreuzt wurde (Variable „NT01_01a“).
$gotName = (value('NT01_01a') != 2); multiLevelReturn($gotName);
Im obigen Beispiel wurde die Vergleichsbedingung direkt als Variable $gotName
gespeichert. Man kann es stattdessen auch als IF-Filter formulieren:
if (value('NT01_01a') != 2) { multiLevelReturn(true); } else { multiLevelReturn(false); }
Alternativ kann der Hauptfragebogen zunächst alle Element abfragen und dann den Teilfragebogen entsprechend oft starten.
Hinweis: Diese Anleitung ist noch unvollständig, da loopPage() mit multiLevelDown() noch nicht vollständig zusmmenarbeitet.
Für den Hauptfragebogen ist folgende Aufbau sinnvoll:
multiLevelDown()
startet.multiLevelResponse()
) prüft, ob noch ein weiteres Element angezeigt werden soll und dann mittels goToPage()
oder setNextPage()
zurück springt zur vorigen Seite „startSub“.Im Teilfragebogen kann folgender Aufbau sinnvoll sein:
multiLevelData()
– z.B. muss die Bezeichnung des gerade abgefragten Elements und evtl. auch dessen Nummer übermittelt und mittels put()
im Teilfragebogen gespeichert werden.multiLevelReturn()
einen Wert an den Hauptfragebogen übermittelt, dass kein weiteres Element abgefragt werden soll.Tipp: Legen sie für den Teilfragebogen unter Fragebogen zusammenstellen → Karteireiter Einstellungen den Zugriffsmodus „Intern/gesperrt“ fest, damit der Fragebogen tatsächlich nur als Teilfragebogen und nicht direkt aufgerufen werden kann.
Hinweis: Es ist empfehlenswert im untergeordeneten Fragebogen die Nummerierung der Fragen abzuschalten (Fragebogen zusammenstellen → Karteireiter Einstellungen). Derzeit ist die Nummerierung der Fragen in jedem untergeordneten Fragebogen noch unabhängig von der Nummerierung im Hauptfragebogen.