Datenaufbereitung mit SPSS:
Ausschluss nicht verwendbarer Fälle

Arndt Regorz, Dipl. Kfm. & M.Sc. Psychologie, Stand: 14.10.2018


Der häufig technisch aufwändigste und schwierigste Teil einer SPSS-Auswertung ist gar nicht unbedingt die eigentliche statistische Analyse, sondern die vorher nötige Aufbereitung der Daten. Ein Schlüsselschritt dabei ist die Bereinigung des Datensatzes um Fälle, die aus unterschiedlichen Gründen nicht in die Auswertung eingehen sollen. Im folgenden wird eine mögliche SPSS-Syntax vorgestellt, mit der Sie diese Aufgabe meistern können.

Inhalt

  1. Datenaufbereitung
  2. Kommentierte SPSS-Syntax
  3. Quellen

1. Datenaufbereitung: Fallausschluss

Bevor man mit den eigentlichen statistischen Tests in SPSS anfangen kann, müssen zunächst die Rohdaten so aufbereitet werden, dass sinnvolle Auswertungen möglich sind. Neben Arbeitsschritten wie z.B. Skalenkonstruktion und -überprüfung ist hier vor allem die Datensäuberung zu nennen.

So gibt es häufig Teilnehmer, die vorzeitig die Beantwortung abgebrochen haben. Und welche, die nicht zu den vorab definierten Einschlusskriterien passen (z.B. Alter, Bildung, Beruf). Oder auch diejenigen, die so schnell geantwortet haben, dass das gegen eine wirklich ernsthafte Beschäftigung mit den Fragen spricht. Und auch welche, die auf einzelnen Fragen keine Antwort gegeben haben.

Neben solchen Gründen für einen Fallausschluss zu Beginn kann es jedoch auch erst im Zuge der eigentlichen statistischen Analysen dazu kommen, dass weitere Fälle ausgeschlossen werden müssen. Ein Beispiel dafür wäre die Ausreißerdiagnostik bei der Regressionsanalyse, die zur Notwendigkeit weiterer Fallauschlüsse aus der Untersuchung führen kann.

Für die Programmierung solcher Fallausschlüsse in der SPSS-Syntax gibt es nicht den einen richtigen Weg. Die im folgenden Abschnitt vorgestellte Syntax ist eine Möglichkeit, strukturiert und für den Prüfer transparent Fälle aus verschiedenen Gründen aus der Auswertung auszuschließen.

Da man bei der Programmierung vieler Ausschlussbedingungen sehr leicht Fehler machen kann, würde ich immer empfehlen, die Ergebnisse später noch stichprobenartig per Hand zu kontrollieren - also für einige Beispielfälle die Daten anzusehen und zu überlegen, ob diese Fälle ein- oder ausgeschlossen werden müssen mit anschließendem Abgleich, ob das Programm zum gleichen Ergebnis gekommen ist.

Hinsichtlich fehlender Werte ist noch ein Hinweis nötig:
Das folgende Vorgehen beruht auf der Überlegung, alle unvollständigen Fälle auszuschließen, so dass man für die eigentlichen Analysen nur vollständige Datensätze hat (fallweiser Ausschluss). Das hat den Vorteil, dass es von der Handhabung her relativ einfach ist. Dieses Verfahren ist aus meiner Sicht insbesondere für empirische Bachelorarbeiten zu empfehlen.

Für Masterarbeiten und Dissertationen kann es jedoch je nach Anspruch des Prüfers sein, dass das nicht ausreicht. Hier wird mitunter der Einsatz modernerer Verfahren zum Umgang mit fehlenden Daten erwartet (insbesondere: Multiple Imputation). Aber für andere Ausschlussgründe ist dennoch das unten vorgestellte Vorgehen auch in diesem Fall nutzbar.

2. Kommentierte SPSS-Syntax zum Fallausschluss

Die folgende Beispielsyntax zeigt, wie man mit einem schrittweisen Fallauschluss die Daten bereinigen kann.

Einige der Syntax-Zeilen gehen in der Bildschirmdarstellung im Browser über mehrere Zeilen, so dass dann am Zeilenanfang der Folgezeile der "*" für den Kommentar fehlt.
Daher sollten Sie die Syntax besser nicht abschreiben, sondern lieber mit Copy&Paste nach SPSS kopieren und dort an Ihre Zwecke anpassen.

BEGINN SYNTAX:

*Beispielsyntax zum Ein- und Ausschluss von Fällen in SPSS.

*Verwendung auf eigenes Risiko, es wird keinerlei Haftung übernommen.

*Vor endgültiger Verwendung ist es dringend zu empfehlen, stichprobenartig per Hand mit einigen Fällen zu überprüfen,.
* ob die Syntax auch genau das macht, was sie machen soll, da es relativ leicht möglich ist, Fehler bei einzelnen.
* Bedingungen einzubauen, insbesondere bei komplexen oder verschachtelten Bedingungen.


*************************************************************.
*1. Steuerung des Ein- und Ausschlusses von Fällen.
*************************************************************.

*Vorab: Definieren von Missing Values, in diesem Beispiel wird im Falle von Missings ein Wert von -99 oder -88 vom Umfragetool zurückgegeben. Das hängt von Ihrem Umfragetool ab.
MISSING VALUES ALL (-88, -99).

*Definieren einer Variable ein_aus zum Steuern des Einschlusses und Ausschlusses von Fällen.
*Diese Variable wird zuerst für alle Fälle auf 'Einschluss' gesetzt.
*Später wird sie dann fallweise auf 'Ausschluss' geändert in Abhängigkeit von verschiedenen Ausschlusskriterien.
COMPUTE ein_aus = 1.
VARIABLE LABELS ein_aus 'Einschluss oder Ausschluss der Fälle'.
FORMATS ein_aus(F1.0).
VALUE LABELS ein_aus
0 'Ausschluss'
1 'Einschluss'.
EXECUTE.

*Häufigkeitsverteilung der Ausschlussvariable vor jeglichen Ausschlüssen.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.


*(---Hinweis: Im Folgenden werden BEISPIELHAFT einige Ausschlüsse vorgenommen. Mit der gleichen Technik können aber auch Ausschlüsse für andere Bedingungen programmiert werden.)


*a) Ausschluss von Fällen mit Altersangabe unter 18 oder über 100.
IF ( (alter < 18) OR (alter > 100) ) ein_aus = 0.
EXECUTE.

*Stand Ein-/Ausschlüsse nach Filterung des Alters.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.


*b) Ausschluss von Fällen, die weniger als 300 Sekunden (5 Minuten) für den Fragebogen benötigt haben.( --- Hinweis: Die sinnvolle Dauer hängt natürlich von Ihrem Fragebogen ab).
IF ( bearbeitungsdauer < 300 ) ein_aus = 0.
EXECUTE.

*Stand Ein-/Ausschlüsse nach Filterung der Bearbeitungsdauer.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.


*c) Ausschluss von Fällen mit unvollständigem Ausfüllen des Fragebogens - hier diejenigen, die auf der letzten Pflichtfrage nach dem ernsthaften Ausfüllen des Fragebogens keine gültige Antwort gegeben haben oder 'nein' (2) geantwortet haben.
*( --- Hinweis: Zusätzlich muss ggf. noch der Ausschluss von Fällen erfolgen, die zwar bis zum Schluss gekommen sind, aber dennoch einzelen Items nicht beantwortet haben.).
IF ( MISSING(ernsthaft) OR (ernsthaft = 2) ) ein_aus = 0.
EXECUTE.

*Stand Ein-/Ausschlüsse nach Filterung der nicht bis zum Ende ausgefüllten bzw. nicht ernsthaft ausgefüllten Fragebögen.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.


*d) Ausschluss von einzelnen Fällen, aufgrund der Ausreißdiagnostik im Zuge einer Regressionsanalyse. Fallnummern wurden im Rahmen der Regression bei der Ausreißerdiagnostik ermittelt und werden hier ausgeschlossen.
IF (lfd_nr = 34 ) ein_aus = 0.
IF (lfd_nr = 89 ) ein_aus = 0.
IF (lfd_nr = 145 ) ein_aus = 0.
EXECUTE.

*Stand Ein-/Ausschlüsse nach Filterung der Ausreißer.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.


* eigentliche Filterung auf Basis der Ausschlussvariable.
USE ALL.
FILTER BY ein_aus.
EXECUTE.

*Prüfen, dass nur noch die einzuschließenden Fälle für weitere Auswertungen berücksichtigt werden und Bestimmung von N.
FREQUENCIES VARIABLES=ein_aus
/ORDER=ANALYSIS.

3. Quellen

Bühl, A. (2016). SPSS 23: Einführung in die moderne Datenanalyse. Halbergmoos, Germany: Pearson.

IBM. (2011). IBM SPSS Statistics 20 Command Syntax Reference. Retrieved from ftp://public.dhe.ibm.com/software/analytics/spss/documentation/statistics/20.0/en/client/Manuals/IBM_SPSS_Statistics_Command_Syntax_Reference.pdf

SPSS-Tutorials. (2018). SPSS – Set Missing Values with Syntax. Retrieved from https://www.spss-tutorials.com/spss-set-missing-values-with-syntax/