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:random_questionnaire [08.01.2020 11:01] – [Vorgehen] adminde:create:random_questionnaire [07.09.2022 08:11] (aktuell) admin
Zeile 2: Zeile 2:
  
 In einem Befragungsprojekt kann man mehrere Fragebögen anlegen (**Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** bzw. **Fragebögen verwalten**). Ruft der Teilnehmer den [[:de:survey:url|Link zum Fragebogen]] auf, kann man ihn zufällig einem der Fragebögen zuweisen. In einem Befragungsprojekt kann man mehrere Fragebögen anlegen (**Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** bzw. **Fragebögen verwalten**). Ruft der Teilnehmer den [[:de:survey:url|Link zum Fragebogen]] auf, kann man ihn zufällig einem der Fragebögen zuweisen.
 +
 +**Warnung:** Wenn Sie eine Randomisierung über unterschiedliche Fragebögen realisieren, kann es durch systematische Abbrecher zu einer (mitunter deutlich) ungleichen Verteilung bei den abgeschlossenen Fragebögen kommen. Verwenden Sie nur einen Fragebogen mit [[:de:create:randomization]] des Stimulus, um die Experimentalgruppen zuverlässig gleichmäßig zu füllen (s. auch folgender Hinweis).
 +
 +**Warnung:** Wenn die Experimentalgruppen in unterschiedliche Fragebögen bearbeiten, muss man besonders genau darauf achten, dass die Fragebögen vom Treatment abgesehen identisch sind. Wird z.B. nach dem Pretest eine Änderung nur in einem der Fragebögen vorgenommen, kann dies zu einer Konfundierung führen und dazu, dass man die Daten nicht mehr verwenden kann. Die "normale" [[:de:create:randomization]] ist hier weniger fehleranfällig.
  
 **Hinweis:** Für Experimente ist es in aller Regel deutlich (!) einfacher, nur einen Fragebogen anzulegen und mit einem kleinen PHP-Code den Stimulus zu variieren ([[:de:create:randomization]]). Dieses Vorgehen hat u.a. auch den Vorteil, dass man eine Gleichverteilung in //abgeschlossenen// Fragebögen realisieren kann. **Hinweis:** Für Experimente ist es in aller Regel deutlich (!) einfacher, nur einen Fragebogen anzulegen und mit einem kleinen PHP-Code den Stimulus zu variieren ([[:de:create:randomization]]). Dieses Vorgehen hat u.a. auch den Vorteil, dass man eine Gleichverteilung in //abgeschlossenen// Fragebögen realisieren kann.
Zeile 10: Zeile 14:
 Zunächst legen Sie unter **Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** einen zusätzlichen Fragebogen  an, welcher sich um die zufällige Verteilung kümmert. Die Kennung können Sie frei wählen, für die folgende Beschreibung verwenden wir die Kennung "random". Zunächst legen Sie unter **Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** einen zusätzlichen Fragebogen  an, welcher sich um die zufällige Verteilung kümmert. Die Kennung können Sie frei wählen, für die folgende Beschreibung verwenden wir die Kennung "random".
  
-Legen Sie diesen Fragebogen unter **Fragebogen zusammenstellen** -> **Fragebögen verwalten** als Standard-Fragebogen fest.+Legen Sie diesen Fragebogen "random" unter **Fragebogen zusammenstellen** -> **Fragebögen verwalten** als Standard-Fragebogen fest.
  
 {{:de:create:scr.random-questionnaire.questionnaires.png|Fragebögen für die Zufallsauswahl}} {{:de:create:scr.random-questionnaire.questionnaires.png|Fragebögen für die Zufallsauswahl}}
Zeile 36: Zeile 40:
 ** *Tipp:** Als Variante zum o.g. Vorgehen können Sie im Fragebogen "random" auch zwei Seiten anlegen. Auf der ersten Seite platzieren Sie die Begrüßung. Der Zufallsgerenator und der PHP-Code folgen dann erst auf der zweiten Seite. Das hat den großen Vorteil, dass Abbrecher auf der Begrüßungsseite (dort wird der Fragebogen mit Abstand am häufigten geschlossen) die Ziehung nicht verzerren. ** *Tipp:** Als Variante zum o.g. Vorgehen können Sie im Fragebogen "random" auch zwei Seiten anlegen. Auf der ersten Seite platzieren Sie die Begrüßung. Der Zufallsgerenator und der PHP-Code folgen dann erst auf der zweiten Seite. Das hat den großen Vorteil, dass Abbrecher auf der Begrüßungsseite (dort wird der Fragebogen mit Abstand am häufigten geschlossen) die Ziehung nicht verzerren.
  
-Die Funktion ''[[:de:create:functions:value]]'' ruft die Kennung des zufällig gezogenen Fragebogens aus dem Zufallsgerator ab. Die Funktion [[:de:create:function:gotoquestionnaire]] springt direkt zu dem Fragebogen mit der entsprechenden Kennung.+Die Funktion ''[[:de:create:functions:value]]'' ruft die Kennung des zufällig gezogenen Fragebogens aus dem Zufallsgerator ab. Die Funktion [[:de:create:functions:gotoquestionnaire]] springt direkt zu dem Fragebogen mit der entsprechenden Kennung.
  
 {{:de:create:scr.random-questionnaire.questionnaire.png|Fragebogen zur zufälligen Auswahl anderer Fragebögen}} {{:de:create:scr.random-questionnaire.questionnaire.png|Fragebogen zur zufälligen Auswahl anderer Fragebögen}}
Zeile 55: Zeile 59:
 4 order2 4 order2
 5 order3 5 order3
 +</code>
 +
 +
 +===== Zusammenspiel mit externen Panels =====
 +
 +Wenn man die Teilnehmerinnen und Teilnehmer über ein externes Panel rekrutiert, muss man in aller Regel einen Teilnahmecode im Redirect übermitteln: [[:de:survey:panels]]
 +
 +Sobald ''[[:de:create:functions:gotoquestionnaire]]'' zum Einsatz kommt, wird ein neuer Fall im Datensatz erzeugt. In diesem (neuen) Interview hat man keinen Zugriff mehr auf die Daten, die im ursprünglichen Fragebogen (hier z.B. "random") erhoben wurden. Das gilt auch für einen Teilnahmecode, der eventuell via URL vom Panel-Anbieter übergeben wurde.
 +
 +Damit es dennoch funktioniert, muss man den Teilnahmecode explizit an das untergeordnete Interview durchreichen. Dafür kommt die Funktion ''[[:de:create:functions:multileveldown]]'' zum Einsatz. Wenn der Teilnahmecode als Referenz (REF) übergeben wurde, würde das aussehen wie folgt.
 +
 +<code php>
 +$qnr = value('RF01', 'label');
 +multiLevelDown($qnr, reference());
 +</code>
 +
 +Im untergeordneten Fragebogen kann man dann mittels ''[[:de:create:functions:multileveldata]]'' auf den übergebenen Code zugreifen. Im Redirect würde dann nicht mehr direkt die Referenz verwendet ...
 +
 +<code php>
 +redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid=%reference%');
 +// bzw. gleichbedeutend
 +redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.reference());
 +</code>
 +
 +... sondern die Daten, die von ''multiLevelDown()'' übergeben wurde, also
 +
 +<code php>
 +redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.multiLevelData());
 +</code>
 +
 +
 +==== Mehrere Variablen übergeben ====
 +
 +Fall neben der Panel-ID noch weitere Variablen übergeben werden sollen, können diese gemeinsam als [[:de:create:array|Array]] in ''multiLevelDown()'' an den nachgelagerten Fragebogen übergeben werden.
 +
 +Der nachfolgende Code verwendet String-Schlüssel für die Variablen (''%%'panelID'%%'', ''%%'userID'%%'' u.s.w.) -- das dient vor allem der besseren Verständlichkeit.
 +
 +<code php>
 +// Zufallsauswahl für einen Fragebogen
 +$qnr = value('RF01', 'label');
 +// Daten zusammenfassen
 +$data = [
 +    'panelID' => reference(),
 +    'userID'  => value('RV01x01'),
 +    'AB01_01' => value('AB01_01'),
 +    'AB01_02' => value('AB01_02')
 +];
 +// Daten übergeben
 +multiLevelDown($qnr, $data);
 +</code>
 +
 +Um untergeordneten Fragebogen können die Daten wieder auf einzelne Variablen verteilt werden.
 +
 +<code php>
 +$data = multiLevelData();
 +put('IV01_01', $data['panelID']);
 +put('IV01_02', $data['userID']);
 +// Die Filtervariablen werden hier direkt in die Filterfragen gespeichert
 +put('AB01_01', $data['AB01_01'], true);
 +put('AB01_02', $data['AB01_02'], true);
 +</code>
 +
 +Die Weiterleitung kann auf die in ''%%'IV01_01'%%'' abgelegte Panel-ID zugreifen.
 +
 +<code php>
 +redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.value('IV01_01'));
 </code> </code>
de/create/random_questionnaire.1578477687.txt.gz · Zuletzt geändert: 08.01.2020 11:01 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