Einleitung
In diesem Beitrag werde ich Dich Schritt für Schritt durch die Welt des Datenmanagements in SPSS führen. Während R unter vielen Wissenschaftlerinnen und Wissenschaftlern beliebt ist, gehört SPSS (Statistical Package for the Social Sciences) seit Jahrzehnten zu den verbreitetsten Programmen für statistische Analysen – vor allem in den Sozial- und Verhaltenswissenschaften. Vielleicht hast Du SPSS schon mal geöffnet, ein paar Klicks gemacht und Dich dann gefragt, wo Du am besten anfängst.
Hier werden wir uns ansehen, wie Du Daten in SPSS importierst, sie aufbereitest, filterst, kodierst, fehlende Werte behandelst und wie Du anschließend Deine „sauberen“ Daten wieder exportierst. Dabei schauen wir uns einerseits das klassische „Klick-und-Menü“-Verfahren an, andererseits lernen wir auch ein bisschen Syntax kennen, was – ähnlich wie in R – die Reproduzierbarkeit erleichtert.
Warum SPSS für Datenmanagement?
Du fragst Dich vielleicht: „Warum sollte ich eigentlich auf SPSS setzen – oder bleiben?“ Nun, es ist natürlich Geschmackssache. SPSS punktet insbesondere damit, dass es eine grafische Benutzeroberfläche (GUI) hat, die sich für viele intuitiv anfühlt. Du klickst Dich durch Menüs, kannst Filter setzen, neue Variablen berechnen oder fehlende Werte definieren – ganz ohne eine Programmiersprache lernen zu müssen.
Allerdings hat SPSS auch eine Syntaxsprache, die Dir ermöglicht, jeden Schritt exakt nachzuvollziehen und zu dokumentieren, sodass Du Deine Analyse später leicht wiederholen kannst. Das ist ein großer Vorteil, wenn Du reproduzierbar arbeiten möchtest.
Außerdem ist SPSS in vielen Institutionen (Unis, Forschungsabteilungen etc.) bereits lizenziert. Oft musst Du also nichts extra bezahlen, weil Deine Einrichtung dafür aufkommt.
SPSS: Oberfläche verstehen und Setup
Die SPSS-Ansichten
SPSS hat zwei Hauptansichten, zwischen denen Du wechseln kannst:
- Datenansicht (Data View): Hier siehst Du die Zeilen (Fälle) und Spalten (Variablen).
- Variablenansicht (Variable View): Hier definierst Du die Eigenschaften jeder Variable (Name, Datentyp, Label, mögliche Werte bei kategorialen Variablen etc.).
Wenn Du mit SPSS startest, landest Du meist in der Datenansicht. Wechsle einfach unten links zwischen „Data View“ und „Variable View“.
Variable Label sind ausführlichere Bezeichnung für Deine Variable (z. B. „Alter der Befragten“ statt nur „alter“). Value Label sind konkrete Bezeichnungen für numerische Codes der Antworten, etwa 1 = „männlich“, 2 = „weiblich“.
Syntax und Output
- Syntax-Fenster: Wenn Du oben im Menü „File -> New -> Syntax“ wählst, öffnet sich ein Fenster, in das Du SPSS-Befehle hineinschreiben kannst, z. B.
FREQUENCIES
,COMPUTE
usw. - Output-Fenster: Ergebnisse werden in einem separaten Fenster angezeigt, dem „Output Viewer“. Dort findest Du Tabellen, Grafiken und Fehlermeldungen.
Viele Leute starten SPSS als Klick-Software, doch gerade fürs Datenmanagement lohnt es sich, hin und wieder in die Syntax einzusteigen. Du sparst damit Zeit, wenn Du ähnliche Schritte öfter durchführen möchtest.
Daten einlesen in SPSS
Öffnen von SPSS-Dateien (.sav)
Hast Du eine .sav-Datei (das native SPSS-Format), kannst Du sie einfach per Doppelklick öffnen (wenn Dein System entsprechend eingestellt ist) oder über das Menü File -> Open -> Data…
.
Import von CSV/TXT
Wenn Du CSV-Dateien hast (Comma Separated Values), gehst Du etwa so vor:
- File -> Open -> Data…
- Unten bei „Files of Type“ wählst Du „Text (.txt, .dat, .csv)“.
- Suchst Deine CSV-Datei heraus.
- Der Text Import Wizard startet. Dort legst Du fest, ob Du Header hast (also Spaltennamen in der ersten Zeile), welches Trennzeichen etc.
Syntax-Beispiel für eine CSV-Datei:
GET DATA
/TYPE=TXT
/FILE='C:\meinprojekt\rohdaten\umfrage.csv'
/DELCASE=LINE
/DELIMITERS=","
/QUALIFIER='"'
/ARRANGEMENT=DELIMITED
/FIRSTCASE=2
/VARIABLES=
...
.
EXECUTE.
Die VARIABLES
-Abschnitte geben an, wie Du Spalten nennen willst und welche Formate. Mit dem „Text Import Wizard“ kannst Du Dir so einen Syntax-Block automatisch generieren lassen.
Excel-Dateien in SPSS laden
Für .xlsx oder .xls:
- File -> Open -> Data…
- Wähle „Excel (.xls, .xlsx)“ als Dateiformat.
- Im Assistenten kannst Du einstellen, ob die erste Zeile Spaltennamen enthält.
Syntax-Beispiel ist deutlich umfangreicher als in R – meist wird er über den Assistenten generiert. Eine verkürzte Version könnte so aussehen:
GET DATA
/TYPE=XLSX
/FILE='C:\meinprojekt\rohdaten\umfrage.xlsx'
/SHEET=name 'Tabelle1'
/CELLRANGE=FULL
/READNAMES=ON
/ASSUMEDSTRWIDTH=32767.
Danach EXECUTE.
nicht vergessen, damit SPSS wirklich die Daten lädt.
Datenaufbereitung und Transformation
Die rohen Daten sind jetzt in SPSS, doch meist brauchst Du Datenanpassungen, bevor Du Analysen starten kannst.
Variable anlegen, umkodieren etc.
Neue Variable berechnen (COMPUTE)
Angenommen, Du hast zwei Variablen groesse
(in m) und gewicht
(in kg) und möchtest den BMI berechnen. Das geht via:
Menü:
- Transform -> Compute Variable…
Name der neuen Variable: bmi
Formel: bmi = gewicht / (groesse ** 2)
Mit Klick auf OK wird die Variable erstellt und landet als neue Spalte in der Datenansicht.
Syntax:
COMPUTE bmi = gewicht / (groesse ** 2).
EXECUTE.
Umkodieren von Werten (RECODE)
Möchtest Du z. B. aus einer Variablen einkommen
die Kategorien „gering“, „mittel“, „hoch“ machen, kannst Du SPSS sagen: alles unter 1500 = gering, 1500-3000 = mittel, ab 3000 = hoch.
Menü: Transform -> Recode into Different Variables
Syntax (Beispiel):
RECODE einkommen (LO THRU 1499 = 1) (1500 THRU 2999 = 2) (3000 THRU HI = 3)
INTO einkommen_gruppe.
EXECUTE.
VALUE LABELS einkommen_gruppe
1 "Gering"
2 "Mittel"
3 "Hoch".
EXECUTE.
Zack, jetzt ist einkommen_gruppe
eine neue Variable mit Werten 1, 2, 3. Über die VALUE LABELS werden sie lesbarer gemacht.
„Recoding“ oder Umkodieren bedeutet, bestimmte Wertebereiche oder Kategorien in neue Werte zu übersetzen. Das ist ähnlich wie in R, wo Du z. B.
if_else()
nutzt.
Filtern und Auswählen von Fällen
- Select Cases: Menü -> Data -> Select Cases…
- Beispiele:
alter > 30
(nur Personen älter als 30),geschlecht = 1
(nur männlich, wenn 1= männlich kodiert ist). - SPSS blendet dann alle anderen Zeilen aus oder löscht sie, je nach Deiner Auswahl.
- Beispiele:
- Split File: Menü -> Data -> Split File…
- Damit kannst Du separate Analysen pro Gruppe durchführen, z. B. getrennt nach Geschlecht.
Syntax:
USE ALL.
COMPUTE filter_$=(alter>30).
FILTER BY filter_$.
EXECUTE.
Dadurch hast Du nun alle Personen mit alter>30
gefiltert. Vergiss nicht, den Filter später auszuschalten (FILTER OFF
).
Sortierung
Menü: Data -> Sort Cases.
Syntax:
SORT CASES BY einkommen (D).
(D)
steht für descending. (A)
wäre ascending.
Umgang mit fehlenden Werten
Was sind fehlende Werte in SPSS?
In SPSS werden fehlende Werte meistens als Punkt .
angezeigt (ähnlich wie NA
in R). Du kannst zudem benutzerdefinierte fehlende Werte definieren, etwa -99
für „keine Antwort“.
Fehlende Werte deklarieren
In der Variablenansicht kannst Du bei „Missing“ eingeben, welche Werte SPSS als fehlend interpretieren soll. Das kann z. B. -99
oder ein Bereich von -99
bis -90
sein. SPSS rechnet diese Werte dann nicht in die Statistiken ein.
Syntax (Beispiel):
MISSING VALUES einkommen (-99).
Häufigkeiten checken
Du willst wissen, wie viele NAs oder Missing Values existieren?
Menü: Analyze -> Descriptive Statistics -> Frequencies…
Syntax:
FREQUENCIES VARIABLES=einkommen
/FORMAT=NOTABLE
/STATISTICS=MIN MAX MEAN
/MISSING=REPORT.
So bekommst Du eine kleine Tabelle, die u. a. sagt, wie viele fehlende Werte existieren.
Strategien zum Umgang mit fehlenden Werten
- Listwise Deletion: Zeilen, die in irgendeiner relevanten Variable fehlend sind, werden komplett ausgeschlossen.
- Pairwise Deletion: SPSS rechnet in manchen Statistiken mit verschiedenen „Teil-Stichproben“ – kann zu Schwankungen in der Fallzahl führen.
- Imputation: Du kannst in SPSS mit dem Modul Missing Values Analysis (MVA) z. B. Mehrfachimputation durchführen. Das ist eine weiterführende Methode, die wir uns hier eher nicht anschauen werden.
Datenexport und Speicherung
Speichern als SPSS-Format (.sav)
File -> Save As… – Wähle Save as type: SPSS Statistics (*.sav)
. So hast Du Deine Daten in einem Format, das Dich sämtliche Format- und Label-Infos bewahren lässt.
Export als CSV
Wenn Du Deine Daten extern weitergeben willst oder in ein anderes Tool importieren, kannst Du in SPSS folgendes tun:
Menü: File -> Export -> [Optionen variieren je nach SPSS-Version], oder:
SAVE TRANSLATE
/OUTFILE="C:\meinprojekt\output\export.csv"
/TYPE=CSV
/MAP
/REPLACE
/FIELDNAMES.
EXECUTE.
-
/TYPE=CSV
gibt das Format an. -
/FIELDNAMES
sorgt dafür, dass die Variablennamen in der ersten Zeile stehen. -
/MAP
gibt Dir einen Protokollauszug darüber, welche Variablen wie exportiert wurden.
Excel-Dateien exportieren
Menü: File -> Export -> … (je nach SPSS-Version kann es über „Save As…“ -> Typ: Excel-Datei geschehen)
Syntax: Ist relativ komplex, ähnlich wie GET DATA für Excel. Oft leichter über die GUI.
Syntax-Dateien
Um nicht nur die Daten, sondern auch Deine Arbeitsschritte zu speichern, empfiehlt sich:
- Alles, was Du per Klick tust, über „Paste“ in eine Syntax-Datei kopieren, oder
- Direkt in einer Syntax-Datei arbeiten.
So hast Du einen scriptartigen Ablauf, den Du später reproduzieren kannst – ähnlich wie in R-Skripten.
Best Practices & Tipps
Ordnerstruktur
Auch wenn SPSS kein natives „Projekt“-Konzept wie RStudio hat, empfiehlt es sich, eine klare Ordnerstruktur zu haben. Zum Beispiel:
-
daten_roh/
für Rohdaten -
daten_bearbeitet/
für bereinigte Versionen -
syntax/
für alle Deine Syntax-Dateien -
output/
für Ergebnisse, Tabellen, exportierte Dateien
Dokumentation
- Variable Labels und Value Labels sind Gold wert. Du wirst später froh sein, wenn Du nicht mehr rätseln musst, was „var43“ eigentlich war.
- Falls Du benutzerdefinierte fehlende Werte verwendest, dokumentiere unbedingt, warum Du bestimmte Werte als missing definierst.
Syntax vs. Klick
- Wenn Du neu in SPSS bist und Dir das Syntax-Schreiben schwerfällt, fang mit den Menüs an. Dann klicke auf „Paste“, um zu sehen, welche Syntax SPSS generiert.
- Wenn Du Dich wohler fühlst, benutze gleich Syntax – das spart Zeit und Nerven, gerade bei repetitiven Aufgaben.
Ein Wort zu Performance
SPSS ist nicht primär auf riesige Datensätze (Big Data) ausgelegt. Bei Millionen Datensätzen kann es langsam werden. Dann lohnt ein Blick auf andere Tools (SQL, R, Python) oder das SPSS-Modul Server. Aber für mittlere Datengrößen in Psychologie, Soziologie, Medizin etc. ist SPSS meist völlig ausreichend.
Kleiner Data-Check
Bevor Du mit tiefen Analysen loslegst, guck Dir Frequenzen und Deskriptivstatistiken an. Zum Beispiel:
- Descriptive Statistics ->
ANALYZE -> DESCRIPTIVE STATISTICS -> DESCRIPTIVES…
- Explore ->
ANALYZE -> DESCRIPTIVE STATISTICS -> EXPLORE…
(Boxplots, Ausreißer etc.) - FREQUENCIES für kategoriale Daten.
So findest Du schnell Unregelmäßigkeiten oder Ausreißer.
Ein Praxisbeispiel Schritt für Schritt
Im Folgenden zeige ich Dir ein kurzes Praxisbeispiel (vereinfacht), das Dir den gesamten Workflow demonstriert:
- Datenimport: Stell Dir vor, Du hast eine CSV mit dem Namen
umfrage.csv
, die Spalten sindid
,geschlecht
,alter
,einkommen
. - Aufbereiten:
-
alter
in Altersgruppen einteilen - fehlende Werte definieren
- Sortieren nach
einkommen
- ggf. Filter auf bestimmte Gruppen
-
- Export als SPSS-Format
Import (Syntax)
GET DATA
/TYPE=TXT
/FILE='C:\meinprojekt\raw_data\umfrage.csv'
/DELCASE=LINE
/DELIMITERS=","
/QUALIFIER='"'
/ARRANGEMENT=DELIMITED
/FIRSTCASE=2
/VARIABLES=
id F1.0
geschlecht F1.0
alter F3.0
einkommen F8.2
.
EXECUTE.
Danach solltest Du in der Datenansicht Deine vier Spalten sehen. Du kannst via Variable View jeden Variablennamen anpassen, Value Labels hinzufügen etc.
Altersgruppen bilden
RECODE alter
(LO THRU 17=1)
(18 THRU 64=2)
(65 THRU HI=3)
INTO alter_grp.
EXECUTE.
VALUE LABELS alter_grp
1 "Kind/Jugend"
2 "Erwachsen"
3 "Senior".
EXECUTE.
Fehlende Werte
Angenommen, -99
stehe für „keine Angabe“ im Feld einkommen
. Dann:
MISSING VALUES einkommen (-99).
Sortierung und Filtern
SORT CASES BY einkommen (D). /* Absteigend nach Einkommen sortieren */
COMPUTE filter_$=(geschlecht=1). /* Nur geschlecht=1, z.B. männlich */
FILTER BY filter_$.
EXECUTE.
Export der bereinigten Daten
SAVE OUTFILE='C:\meinprojekt\output\umfrage_bereinigt.sav'
/COMPRESSED.
EXECUTE.
Damit hast Du Deine „Endversion“ in SPSS-Format.
Fragen & Antworten (Q&A)
Zum Abschluss ein kleiner Fragenkatalog, damit Du Dein Wissen testen kannst. Ich liefere Dir jeweils eine Musterlösung als Beispielantwort.
- Frage: Wie öffne ich eine CSV-Datei in SPSS, ohne alles über das Menü zu klicken?
Antwort (Musterlösung): Du kannst Dir im Menü den Import-Assistenten aufrufen und dort auf „Paste“ klicken. Das generiert Dir einenGET DATA
-Befehl in der Syntax. Danach musst Du nurEXECUTE.
dranhängen, und schon hast Du Deinen Syntax-Block. Manuell könnte das so aussehen:GET DATA /TYPE=TXT /FILE='C:\pfad\zu\datei.csv' /DELCASE=LINE /DELIMITERS="," /FIRSTCASE=2 /VARIABLES= ... . EXECUTE.
- Frage: Wie kann ich fehlende Werte definieren, wenn z. B. „-99“ für „keine Antwort“ steht?
Antwort (Musterlösung): In der Variablenansicht wähle ich unter „Missing“ -> „Discrete values“ -> „-99“. Oder ich schreibe in Syntax:MISSING VALUES meine_variable (-99).
- Frage: Wie lege ich eine neue Variable
bmi
an, wenn ich Größe und Gewicht habe?
Antwort (Musterlösung): Gehe auf „Transform -> Compute Variable…“, nenne die Zielvariablebmi
, und gib die Formel= gewicht / (groesse ** 2)
ein. Per Syntax:COMPUTE bmi = gewicht / (groesse ** 2). EXECUTE.
- Frage: Wie erstelle ich aus einer laufenden Variable (z. B. Einkommen) Kategorien wie „gering“, „mittel“, „hoch“?
Antwort (Musterlösung): Mit „Transform -> Recode into Different Variables“. Syntax:RECODE einkommen (LO THRU 1499=1) (1500 THRU 2999=2) (3000 THRU HI=3) INTO einkommen_kat. VALUE LABELS einkommen_kat 1 "Gering" 2 "Mittel" 3 "Hoch". EXECUTE.
- Frage: Kann ich meine final bereinigten Daten auch an Kolleginnen weitergeben, die kein SPSS haben?
Antwort (Musterlösung): Klar, exportier sie als CSV oder Excel. Das geht z. B. über:SAVE TRANSLATE /OUTFILE="C:\meinprojekt\output\export.csv" /TYPE=CSV /FIELDNAMES. EXECUTE.
Oder Du machst einen Excel-Export über das Menü (File -> Export). - Frage: Wie kann ich meine Analyseschritte festhalten, um sie später exakt wiederholen zu können?
Antwort (Musterlösung): Benutze die Syntax. Jeder Klick lässt sich per „Paste“ in die Syntax übernehmen. Dann speicherst Du diese.sps
-Datei. Sie enthält alle Befehle, und Du musst nurEXECUTE.
ausführen. Das erleichtert Dir reproduzierbare Analysen und Dokumentation. - Frage: Was mach ich, wenn ich versehentlich
Filter On
gesetzt habe, aber wieder alle Fälle sehen möchte?
Antwort (Musterlösung): EinfachFILTER OFF
ins Syntaxfenster schreiben undEXECUTE.
eingeben – oder im Menü: Data -> Select Cases -> All cases -> OK. Dann hast Du die volle Datenmenge wieder. - Frage: Wie kann ich schnell checken, ob in einer Variablen Ausreißer oder komische Werte sind?
Antwort (Musterlösung): Ich nutze „Analyze -> Descriptive Statistics -> Explore…“ und werfe einen Blick auf Boxplots. Oder einfach Frequencies (Analyze -> Descriptive -> Frequencies). Das deckt oft auf, ob z. B. ein Wert „9999“ vorkommt, der eigentlich als Missing definiert werden müsste.
Zusammenfassung
SPSS macht es Dir leicht, per Klick an Deine Daten zu kommen, sie zu transformieren und am Ende als SPSS-Datei, CSV oder Excel auszugeben. Trotzdem kannst Du mit SPSS-Syntax eine reproduzierbare Arbeitsweise etablieren:
- Datenimport: Nutze
GET DATA
, um CSV, Excel oder andere Formate zu laden. - Aufbereiten: Compute-Befehle (bzw. Menü „Compute“), Recode, Sort Cases, Select Cases, Missing Values definieren.
- Fehlende Werte: Ob Du Listwise Deletion, Pairwise Deletion oder Imputation betreibst, hängt von Deinen Analysen ab.
- Filter & Kodierung: Mit
Select Cases
filterst Du, mitRECODE
schaffst Du neue Kategorien. - Datenexport:
SAVE OUTFILE='...'
für .sav,SAVE TRANSLATE ... TYPE=CSV
für CSV – je nach Bedarf. - Dokumentation: Syntax ist Dein Freund. Kopiere Dir alles (Paste) oder schreibe direkt hinein, damit Du Deine Schritte auch in 3 Monaten noch nachvollziehen kannst.
Vorteile von SPSS:
- Intuitive Menüführung für Einsteiger
- Einheitliche Oberfläche, die viele Studierende kennen (besonders in den Sozialwissenschaften)
- Syntax für Reproduzierbarkeit
Nachteile oder Einschränkungen:
- Komplexe Skriptlogik oft weniger flexibel als in Programmiersprachen (R, Python)
- Nicht primär auf Big Data ausgelegt
- Lizenzkosten (sofern nicht von der Uni oder Organisation getragen)
Q&A (Beispiel-Fragen von Lernenden und kurze Musterlösungen)
- F: Ich habe 20 Spalten mit Items, die alle das gleiche Antwortformat (z. B. 1 = stimme zu, 2 = stimme nicht zu) haben. Muss ich das für jede Spalte einzeln anlegen?
A: Du kannst in SPSS die „Copy-Paste-Funktion“ der Variable View nutzen oder in der SyntaxVALUE LABELS var1 var2 var3 ... 1 "Zustimmung" 2 "Ablehnung".
angeben. So definierst Du Label für mehrere Variablen in einem Rutsch. - F: Wie kann ich in SPSS verschiedene Datensätze „mergen“, z. B. wenn ich demografische Daten in einer Datei und Fragebogendaten in einer anderen Datei habe, und beide Dateien haben eine ID-Spalte?
A: Menü: „Data -> Merge Files -> Add Variables…“. Im Wizard gibst Du an, welche ID-Variable der Match-Schlüssel ist. In Syntax:MATCH FILES /FILE='C:\pfad\demografie.sav' /FILE='C:\pfad\fragebogen.sav' /BY id. SAVE OUTFILE='C:\pfad\merged.sav'. EXECUTE.
- F: Warum zeigt mir SPSS bei Summenberechnungen immer 10 Fälle weniger als gedacht?
A: Vermutlich fehlen bei 10 Fällen Werte in einer der beteiligten Variablen und Du hast Listwise Deletion oderMISSING=EXCLUDE
aktiviert. Ggf. solltest Du Pairwise Deletion einstellen oder Imputation vornehmen. - F: Ich möchte meine SPSS-Daten in R einlesen. Gibt’s da eine Empfehlung?
A: Ja, in R kannst Du das Pakethaven
benutzen:library(haven)
und dannread_sav("deinedatei.sav")
. Damit bleiben Value Labels sogar als Factor-Levels weitgehend erhalten. - F: Gibt es in SPSS so etwas wie Schleifen oder bedingte Ausführungen, wenn ich z. B. Syntax generieren will?
A: Theoretisch ja, über das Syntax-Feature „DO IF… ELSE IF… END IF“ sowie „DO REPEAT“. Das ist aber nicht so ausgereift wie in klassischen Programmiersprachen. Für aufwendigere Datenmanagement-Skripte sind R, Python oder Stata flexibler.
Alles klar?
Ich hoffe, der Beitrag war für dich soweit verständlich. Wenn du weitere Fragen hast, nutze bitte hier die Möglichkeit, eine Frage an mich zu stellen!