Codierung offener Textantworten: Automatisierung mit SPSS Syntax-Tricks

SPSS Logo

Viele Befragungen enthalten offene Textantworten. Wenn diese Antworten quantitativ-statistisch ausgewertet werden sollen, müssen sie nachcodiert werden. Oft geschieht das manuell. Mehrfachnennungen und unterschiedliche Schreibweisen erschweren automatisches Umcodieren per Programmierung.

Mit den folgenden Tricks kann man sich die Arbeit vereinfachen. Manuelle Nacharbeit ist damit nicht vollkommen ausgeschlossen, aber der Aufwand kann doch sehr verringert werden.

Anwendungsbeispiel: Endgeräte zum Abspielen von Filmen

In unserem Beispiel geht es um die Frage: „Welche Geräte verwenden Sie, um Filme aus dem Internet anzusehen?“

Unter anderem wurden folgende Antworten gegeben:

  1. PS3, iPad, samsung tv
  2. SAMSUNG TV
  3. philips TV, ipad
  4. LG tv, SAmsung tablet
  5. Loewe SL150, iPad
  6. sony tv
  7. SONY tv
  8. Download Manager PC
  9. Galaxy S3, sony Tv

Ziel soll sein, die Antworten den Kategorien TV, PC, Tablet, Smartphone und Playstation zuzuordnen, wobei Mehrfachantworten möglich sein sollen. Damit sind fünf Variablen erforderlich, da die Mehrfachantworten nicht in einer einzigen Variable gespeichert werden können. Zunächst werden die neuen Variablen angelegt (es geht auch ohne diese Befehle, aber ich finde es übersichtlicher, Variablen zunächst zu definieren):

compute TV=0.
compute PC=0.
compute Tablet=0.
compute Smartphone=0.
compute Playstation=0.
execute.

Erster Versuch: Zuordnung der Textantworten per if-Statement

Die einfachste Variante wäre, Antworten aufzuzählen und per if-Statement zuzuordnen. Beispiel:

if Endgerät=“sony tv“ TV=1.
execute.

Damit wird die Antwort Nr. 6 korrekt zugeordnet. Mit Antwort Nr. 7 klappt es nicht wegen der Großschreibung. Dazu wäre bei dieser Strategie ein weiteres if-Statement nötig:

if Endgerät=“SONY tv“ TV=1.
execute.

Trick 1: Groß- und Kleinschreibung vereinheitlichen

Das Problem mit der Groß- und Kleinschreibung kann einfach umgangen werden, indem alle Textantworten nur groß oder nur klein geschrieben werden. Empfehlung: Neue Variable anlegen, um die Originalantworten nicht zu überschreiben.

string Endgerät_up (A50).
compute Endgerät_up=upcase(Endgerät).
exe.



Damit liegen die Antworten in der neuen Variable „Endgerät_up“ in Großschrift (englisch upper case) vor. (Die Funktion für Kleinschrift heißt lower statt upcase.) Der einleitende Befehl „string“ definiert eine neue Textvariable. Der Compute-Befehl liest die Originalantworten und schreibt sie in Großschrift in die Variable Endgerät_up. Die Antworten sehen jetzt so aus:

  1. PS3, IPAD, SAMSUNG TV
  2. SAMSUNG TV
  3. PHILIPS TV, IPAD
  4. LG TV, SAMSUNG TABLET
  5. LOEWE SL150, IPAD
  6. SONY TV
  7. SONY TV
  8. DOWNLOAD MANAGER PC
  9. GALAXY S3, SONY TV

Nun genügt ein Befehl, um die Antworten 6 und 7 zuzuordnen, da sie genau gleich geschrieben sind:

if Endgerät_up=“SONY TV“ TV=1.
exe.

Mehrfachantworten: Die Suche nach der „Nadel im Heuhaufen“

Schwieriger wird es jedoch bei Mehrfachangaben wie den iPads in den Antworten 3 und 5 oder dem Sony TV in Antwort 9. Gesucht wird eine Funktion, die die „Nadel im Heuhaufen“ findet und korrekt zuordnet. Glücklicherweise bietet SPSS eine solche Funktion. Sie heißt „char.index“.

Trick 2: char.index

Die Funktion char.index gehört zu den String-Funktionen, also den Werkzeugen für Textantworten. Kurz gesagt liefert sie als Ergebnis die Position, an der die „Nadel“ im „Heuhaufen“ zum ersten Mal auftritt. (SPSS verwendet tatsächlich diese Sprache!) In unserem Anwendungsfall interessiert uns die genaue Position nicht – allerdings wollen wir wissen, ob die „Nadel“ überhaupt im „Heuhaufen“ vorkommt. Ist das nicht der Fall, liefert die Funktion den Wert 0 als Ergebnis. Ergo müssen wir lediglich prüfen, ob das Ergebnis größer als 0 ausfällt.

Beispiele:

if char.index(Endgerät_up, „TV“)>0 TV=1.
if char.index(Endgerät_up, „IPAD“)>0 Tablet=1.
exe.

Die erste Zeile ordnet alle Antworten, die die Zeichenfolge „TV“ enthalten, korrekt dieser Kategorie zu: die Antworten 1 bis 4, 6, 7 und 9 werden so mit einer einzigen Codezeile erfasst.

Die zweite Codezeile ordnet die Antworten 1, 3 und 5, die „IPAD“ enthalten, korrekt als Tablets ein.

Zum Finetuning kann man weitere Zeilen ergänzen, etwa so:

if char.index(Endgerät_up, „TABLET“)>0 Tablet=1. [für Antwort 4]

Fazit: Nutzen und Grenzen automatisierter Nachcodierungen

Es ist eine Ermessensentscheidung, wie genau man diese automatische Codierung programmiert, wann es sich lohnt, manuell nachzuarbeiten bzw. ob man mit einer gewissen Unschärfe leben kann. Gerade bei größeren Datensätzen dürfte auf diese Weise eine erhebliche Zeitersparnis möglich sein. Programmierung lohnt sich zudem immer dann, wenn im Vorfeld, während die Datenerhebung noch läuft, Zeit zum Programmieren besteht. Erfahrungsgemäß ist die Zeit nach Abschluss der Datenerhebung oft knapper. Dann kann man für jede vorab vorbereitete Hilfe dankbar sein.

Welche Erfahrungen machen Sie mit Textantworten? Nutzen Sie dafür Tools – wenn ja, welche? Wie haben diese sich bewährt? Wie hoch bleibt der manuelle Restaufwand?

Dieser Beitrag ist ein Update zu PSPP: Wie gut ist die kostenlose Alternative zu SPSS?




Freue mich über Kommentare!