Dies ist eine alte Version des Dokuments!
In mehrwelligen Befragungen hat sich für gedruckte Fragebögen (Pen 'n Paper) die Verwendung eines „persönlichen Codes“ bewährt. Dabei soll der Teilnehmer im ersten Fragebogen aus den Fragmenten persönlicher Informationen einen Code erstellen. Das sieht etwa aus wie folgt:
Gibt der Teilnahmer im zweiten Fragebogen denselben Code an, erlaubt das die Zuordnung der beiden Datensätze. Oben sehen Sie nur ein illustrierendes Beispiel – konkrete Ausführungen finden Sie z.B. bei:
Pöge, A. (2008). Persönliche Codes „reloaded“. Methoden – Daten – Analysen, 2(1), 59-70. Online verfügbar.
Ein Vorteil dieser Lösung ist, dass der Code in Zeiten vor dem Social Web hohe Anonymität gewährleistete und relativ zuverlässig funktionierte. Allerdings hat diese Lösung auch Nachteile:
Verwendet man einen Online-Fragebogen, stehen für mehrwellige Erhebungen weitere Möglichkeiten zur Verfügung. Jede Lösung ist ein Kompromiss zwischen Datenschutz und Komfort/Zuverlässigkeit. Die folgenden Möglichkeiten sind nach Datenschutz-Level geordnet, wobei schon die erste und damit „schlechteste“ Option ein gutes Datenschutz-Level gewährleistet – aber eben nicht maximalen Datenschutz. Für die meisten Anwendungsfälle ist die Serienmail das Mittel der Wahl.
mailSend()
den Versand der Einladung zum zweiten Fragebogen planen und die E-Mail-Adresse dann mittels dropValue()
sofort wieder löschen. Den Zurück-Knopf (falls im Fragebogen erlaubt) sollte man zumindest auf dieser Seite mittels option()
deaktivieren, um eine versehentliche Speicherung der Mailadresse zu vermeiden.%caseNumber%
) einen individuellen Link zum zweiten Fragebogen versenden. Der Teilnehmer muss dafür seine E-Mail-Adresse eingeben, diese wird allerdings nicht gespeichert. Ein Nachteil gegenüber der Serienmail-Funktion besteht darin, dass der Link nicht zeitgesteuert verschickt werden kann, weil dafür die E-Mail-Adresse zeitweise gespeichert werden müsste.Hat man sich gegen die Alternativen für die Abfrage eines persönlichen Codes entschieden, gibt es in SoSci Survey zwei grundsätzliche Möglichkeiten der Umsetzung:
Die erste Variante liegt auf der Hand, die entspricht dem Vorgehen im gedruckten Fragebogen. Man erklärt dem Teilnehmer, wie er den Code erstellen soll, und verwendet dann eine Frage zur Texteingabe, damit der Teilnehmer den Code eingeben kann.
Um wenigstens das korrekte Format zu überprüfen, kann man für die Texteingabe-Frage einen „regulären Ausdruck“ definieren. Dafür klickt man das Eingabefeld links in der Navigation an und legt unter Einschränkungen für die Texteingabe einen Regulären Ausdruck fest. Reguläre Ausdrücke sind komplexe Suchmuster mit spannenden Möglichkeiten (regular-expressions.info), die auf den ersten Blick aber auch etwas komplex aussehen. Für den persönlichen Code ist es halb so schlimm:
/[A-Z]{2}[0-9]{3}[A-Z]/
Dieser Reguläre Ausdruck beschreibt einen Code bestehend aus 2 Buchstaben (Großbuchstaben, keine Umlaute), drei Ziffern und dann nochmal einem Buchstaben, also z.B. AB123C
.
[A-Z]
umfasst also alle Zeichen von A bis Z (nur Großbuchstaben), [A-Za-z]]
umfasst auch Kleinbuchstaben und [A-Za-zÄÖÜäöü]
umfasst auch die deutschen Umlaute.{2}
nach der ersten Zeichenklasse gibt an, dass zwei Buchstaben erwartet werden.[0-9]
in eckigen Klammern besagt, dass eine Ziffer erwartet wird. Ebenso könnte man die vordefinierte Klasse \d
(ohne eckige Klammern) verwenden.Einfacher für den Teilnehmer ist es, wenn man die einzelnen Bestandteile des Codes getrennt abfragt. Und auch die Formatprüfung gestaltet sich dann einfacher.
Es ist eigentlich nicht notwendig, dass Sie dem Teilnehmer seinen persönlichen Code nochmal „en block“ anzeigen, aber wenn Sie das machen möchten, verwenden sie ein klein wenig JavaScript. Angenommen Ihre Texteingabe-Frage hat die Kennung „PC01“ und enthält 6 Eingabefelder, dann würden Sie unter der Frage folgenden HTML-/JavaScript-Code platzieren:
<div style="margin: 2em; font-size: 1.2em;"> Ihr persönlicher Code: <span id="personalCode" style="font-weight: bold;">–</span> </div> <script type="text/javascript"> <!-- var pcInputs = ["PC01_01","PC01_02","PC01_03","PC01_04","PC01_05","PC01_06"]; function pcRefresh() { var code = ""; for (var i=0; i<pcInputs.length; i++) { code+= document.getElementById(pcInputs[i]).value; } document.getElementById("personalCode").innerHTML = code; } // Init pcRefresh(); for (var i=0; i<pcInputs.length; i++) { document.getElementById(pcInputs[i]).addEventListener("keyup", pcRefresh); } // --> </script>
Für die spätere Analyse ist es hilfreich, den Code auch gleich „en block“ im Datensatz zu speichern. Dafür benötigen Sie eine Interne Variable (z.B. „IV01_01“) und auf der Folgeseite (!) folgenden PHP-Code:
$code = implode(valueList('PC01')); put('IV01_01', $code);
Falls Sie mit leeren Feldern rechnen, können Sie die Bestandteile des Codes auch mit einem Bindestrich getrennt speichern (abgesehend davon, dass Sie die einzelnen Bestandteile ja ohnehin nochmal einzeln im Datensatz haben):
$code = implode('-', valueList('PC01')); put('IV01_01', $code);
Tipp: Legen Sie für die offene Texteingabe auf jeden Fall eine Antwortpflicht fest, Lücken im Code können Sie i.d.R. nicht brauchen.