Sie sind auf Seite 1von 68

Institut fr Soziologie Professur fr empirische Sozialforschung Prof. Dr. Johannes Kopp pp Dr.

Daniel Lois

Datenhandling in SPSS

Stand: Mai 2010

Inhaltsverzeichnis
1. Flle auswhlen 2. Datensatz aufteilen 3 Flle sortieren 3. 4. Flle gewichten 5. Vorbemerkungen zur Datenaufbereitung 6 Variable 6. V i bl umkodieren: k di RECODE 7. Variable berechnen: COMPUTE 8. Variable berechnen: IF / DO IF 9 Variable 9. V i bl berechnen: b h COUNT 10. Z-Transformation 11. Aggregieren von Daten 12 Datenstze 12. D t t verschmelzen: h l Variable V i bl hi hinzufgen f 13. Datensatz ins Long-Format umstrukturieren 14. Datensatz per Syntax laden und abspeichern 3 7 10 12 20 23 29 34 43 45 47 55 63 68

Datenhandling

Flle auswhlen

Datenhandling

Flle auswhlen
Ein hufig vorkommender Anwendungsfall besteht darin, fr bestimmte Berechnungen nur eine ausgewhlte Gruppe von Fllen zuzulassen. Zum Beispiel knnen nur die Flle ausgewhlt werden, die eine bestimmte Bedingung erfllen. Wie solche Bedingungen formuliert werden zeigt die nchste Folie werden, Fallauswahl in SPSS im Men Daten Flle auswhlen Falls Bedingung zutrifft oder mit dem Syntax-Befehl SELECT IF Sollen z.B. nur ber 30jhrige Frauen bercksichtigt werden, lautet die Bedingung:

Datenhandling

Flle auswhlen
Vergleichsoperator Bedeutung

= ~= < <= > >=

gleich ungleich kleiner kleiner oder gleich grer grer oder g gleich

Bei den Bedingungen handelt es sich um logische Ausdrcke, bei denen verschiedene Vergleichsoperatoren verwendet werden (siehe Tabelle). Zwei (oder auch mehr) Vergleiche knnen durch die logischen Operatoren AND bzw. OR verknpft werden (z.B. IF var1=1 AND var2=1). Ein logischer Ausdruck, der aus einer ANDVerbindung zweier Vergleiche besteht, ist genau dann wahr, wenn beide Vergleiche wahr sind. Wenn z.B. var1=1 ist, var2 dagegen ungleich 1, i t die ist di f formulierte li t B Bedingung di nicht i ht gegeben b (wahr). Ein logischer g Ausdruck, der aus einer ORVerbindung zweier Vergleiche besteht (z.B. IF var1=1 OR var2=1) ist genau dann wahr, wenn mindestens einer der Vergleiche wahr ist.
Datenhandling 5

Flle auswhlen
Prozedur
Flle filtern: Frauen (sex = 2) Ostdeutsche (v5 = 2), die eine Konfession haben (konf ( f = 1) ) Ostdeutsche (v5 = 2) im Alter von 18-40 Jahren Ostdeutsche (v5 = 2) oder Westdeutsche lter als 40 Jahre Filter deaktivieren Nicht Ni ht ausgewhlte hlt Fll Flle (hi (hier: M Mnner) ) aus Datensatz lschen

Syntax
COMPUTE filter_$ = (sex = 2). FILTER BY filter_$. COMPUTE filter_$ = (v5 = 2 AND konf = 1). FILTER BY filter_$. f $ COMPUTE filter_$ = (v5 = 2 AND RANGE (alter,18,40)). FILTER BY filter_$. filt $ COMPUTE filter_$ = (v5 = 2 OR (v5=1 AND alter > 40)). FILTER BY filter_$. filter $ FILTER OFF. USE ALL. SELECT IF sex = 2. 2

Datenhandling

Datei aufteilen
Auerdem besteht im Men Daten Flle auswhlen noch die Mglichkeit, eine Zufallsstichprobe aus den vorhandenen Fllen zu ziehen (z.B. 10% der Flle auszuwhlen) oder die Auswahl nach einer Filtervariablen zu richten, wobei alle Flle ausgewhlt werden werden, die bei dieser Filtervariablen einen anderen Wert als 0 oder fehlend haben Eine weitere Mglichkeit besteht darin, die Datendatei fr Auswertungen in ein oder mehrere Fallgruppen aufzuteilen (Daten Datei aufteilen) Im Folgenden Beispiel wurde die Datei z.B. nach dem Erhebungsgebiet (Ost und Westdeutschland) aufgeteilt und die Option Gruppen (OstGruppen vergleichen gewhlt Auswertungen g wie z.B. Hufigkeitstabellen g werden nun zu Vergleichszwecken stets zusammen angezeigt:

Datenhandling

Datei aufteilen

Prozedur Datei aufteilen Aufteilung wieder rckgngig machen

Syntax SORT CASES BY X . SPLIT FILE LAYERED BY X X. SPLIT FILE OFF.

Datenhandling

Datei aufteilen

Datenhandling

Flle sortieren
Der Datensatz kann nicht nur nach bestimmten Kriterien aufgeteilt, sondern auch in einer bestimmten Reihenfolge sortiert werden (Daten Flle sortieren oder Syntax-Befehl S nta Befehl SORT CASES BY) Bei der auf der nchsten Folie abgebildeten Einstellung wird der Datensatz z.B. aufsteigend g nach dem Alter der Befragten g sortiert. In der ersten Zeile des Dateneditors steht also der jngste, in der letzten Zeile der lteste Befragte Die Di S Syntax t sieht i ht so aus:
Prozedur Flle aufsteigend nach X sortieren Syntax y SORT CASES BY X (A).

Fll aufsteigend Flle f t i d nach h X und d Y sortieren ti SORT CASES BY X (A) Y (A) (A).

Datenhandling

10

Flle sortieren

Datenhandling

11

Flle gewichten
Je nach Stichprobe kann es darber hinaus vorkommen, dass die Flle gewichtet, d.h. mit einem bestimmten Faktor < 1 oder > 1 multipliziert werden mssen In SPSS steht nur eine Hufigkeitsgewichtung zur Verfgung Mit der Gewichtung einer Stichprobe kann z.B. erreicht werden, dass das Stichprobenprofil der Untersuchung einem gewnschten Profil wie bspw. der zugrundeliegenden Grundgesamtheit angenhert wird (sog. Redressmentgewichtung, siehe das weiter unten folgende Beispiel)

Datenhandling

12

Flle gewichten
Von der Redressmentgewichtung unterscheidet man die Design- oder Transformationsgewichtung, die dann notwendig wird, wenn nicht alle Elemente der Grundgesamtheit die gleiche Chance hatten, in die Stichprobe zu gelangen Beispiel: Es werden Haushalte zufllig ausgewhlt und pro Haushalt nur eine Person befragt In diesem Fall haben Personen in Mehrpersonenhaushalten eine geringere Auswahlchance als Personen in Einpersonenhaushalten; dies kann durch Gewichtung korrigiert werden

Datenhandling

13

Flle gewichten

Datenhandling

14

Flle gewichten

Datenhandling

15

Flle gewichten
Eine Redressmentgewichtung ist nur unter bestimmten Bedingungen sinnvoll: Erstens dann, wenn die blichen Gewichtungsvariablen (z.B. Bildung) mit den anderen erhobenen Merkmalen (z.B. Parteiprferenz, Lebenszufriedenheit) eng korrelieren Wenn in diesem Fall der Bildungsbias durch Gewichtung beseitigt wird, werden auch Verzerrungen bei den anderen Merkmalen korrigiert Leider korrelieren in der Praxis die Gewichtungsvariablen nicht eng genug mit anderen Variablen, was den Sinn der Redressmentgewichtung in Frage stellt

Datenhandling

16

Flle gewichten
Zweitens kann eine Redressmentgewichtung dann sinnvoll sein, wenn die Wahrscheinlichkeit einer Nichtteilnahme an der Befragung (Nonresponse) eng mit den Gewichtungsvariablen zusammenhngt Auch in diesem Fall wrde der Nonresponse-Bias durch Gewichtung beseitigt Leider hngen die typischen soziodemografischen Gewichtungsvariablen wie Alter, Bildung usw. in der Praxis auch mit der Nonresponse-Wahrscheinlichkeit hufig nicht eng genug zusammen Gewichte werden oft mit dem Datensatz geliefert (z.B. im ALLBUS) und entsprechend in der Dokumentation des Datensatzes erlutert Die Eigenkonstruktion von Gewichten empfiehlt sich darber hinaus in der Regel g nicht ( (wenn, dann nur unter Anleitung g einschlgiger g g Literatur!) )

Datenhandling

17

Flle gewichten
Die jeweilige Gewichtungsvariable, die im Datensatz bzw. der Datensatzdokumentation ate sat do u e tat o in der de Regel ege beschrieben besc ebe ist, st, kann a u unter te Daten ate Flle gewichten angegeben werden (siehe nchste Folie) Alle statistischen Analysen werden dann nach der jeweiligen Variablen gewichtet, i ht t bis bi sie i di die G Gewichtung i ht ausschalten h lt oder d eine i andere d Gewichtungsvariable angeben Die Syntax sieht so aus:
Prozedur Flle mit Variable X gewichten Gewichtung g ausschalten WEIGHT BY X. WEIGHT OFF. Syntax

Datenhandling

18

Flle gewichten

Datenhandling

19

Datenaufbereitung: Vorbemerkungen
Im Rahmen eines empirischen Projektes mit quantitativen Daten nimmt die Datenaufbereitung mit Abstand die meiste Zeit in Anspruch, wird oft unterschtzt und stellt unerfahrene Anwender hufig vor Probleme Die meisten Aufgaben lassen sich jedoch mit einfachem logischen Denken und einigen wenigen Syntaxbefehlen (in SPSS vor allem RECODE, COMPUTE und IF) bewerkstelligen Es wird dringend empfohlen, sich diese relativ einfachen Syntaxbefehle (und vor allem: die dahinter stehende Logik) einzuprgen und ihre Anwendung einzuben Von einer Datenaufbereitung per Men bzw bzw. klicken klicken wird aus mehreren Grnden dringend abgeraten

Datenhandling

20

Datenaufbereitung: Vorbemerkungen
Empirische Forschung sollte nachvollziehbar und replizierbar sein; dies ist nur gewhrleistet, wenn insbesondere die Datenaufbereitung in der Form eines Syntaxfiles dokumentiert wird Fehler in der Datenaufbereitung knnen, wenn man nur mit Men arbeitet im Nachhinein nicht mehr nachvollzogen werden arbeitet, Nur mit Hilfe von Syntax kann man einfach und schnell Modifikationen, z.B. bei der Operationalisierung von Variablen, vornehmen (das Basteln an den Daten ist an der Tagesordnung; in den seltensten Fllen steht sofort die endgltige Lsung)

Datenhandling

21

Datenaufbereitung: Vorbemerkungen
Nur mit Hilfe von Syntax kann man vorlufige Datenstze auswerten und diese Aufbereitungen und Auswertungen dann auf den vollstndigen Datensatz bertragen (arbeitet man nur mit Men, muss man alles doppelt und dreifach machen, was unter Umstnden Wochen dauern kann, mit Syntax dagegen Sekunden) Im Folgenden werden daher die Prozeduren zur Datenaufbereitung ausschlielich syntaxbasiert vorgestellt Bei der Datenauswertung empfiehlt es sich zwar ebenfalls, Syntaxfiles anzulegen Eine Hufigkeitstabelle oder Korrelation kann man jedoch durchaus auch mal kurz klicken, zumal die SPSS-Syntax hier hufig uneinheitlich bzw. umstndlich und daher wenig einprgsam ist

Datenhandling

22

Variable umkodieren
Das Umkodieren von Variablen wird sehr hufig im Rahmen der Datenaufbereitung notwendig Zum Beispiel dann, wenn man bei metrischen Variablen wie Einkommen Klassen bilden will, wenn bei kategorialen Variablen verschiedene Kategorien zusammengefasst werden sollen (z.B. verschiedene nicht-christliche Konfessionen zur Sammelkategorie sonstige Konfession) wenn Wertelabels so umkodiert werden sollen, dass z.B. bei der Variablen Konflikte, die 5-fach abgestuft erfragt wurde, die Codierung umgepolt werden soll soll, so dass der Wert 5 fr hohes hohes Konfliktniveau Konfliktniveau steht

Datenhandling

23

Variable umkodieren
Grundstzlich zu unterscheiden ist zwischen dem Umkodieren in dieselbe Variable und in eine andere Variable Wird in dieselbe Variable umkodiert, wird die Variable X berschrieben. Man sollte vor Anwendung dieses Befehls genau berlegen, ob man die Originalversion von X noch braucht Wenn das der Fall ist, sollte X besser in eine andere Variable Y umkodiert werden (die Ursprungsvariable bleibt hierbei erhalten und eine neue Variable wird erstellt) Im Folgenden wird der RECODE-Befehl anhand von zwei Beispielen erlutert

Datenhandling

24

Variable umkodieren
Beispiel 1: Die ordinale CASMIN-Bildungsklassifikation soll in Bildungsjahre (metrisches Skalenniveau) umgerechnet werden und zwar nach folgendem Schema:
Code CASMIN-Abschluss
0 1 2 3 4 5 6 7 8 9 In school Inadequately completed General elementary school Basic vocational qualification Intermediate general qualification Intermediate vocational General maturity certificate Vocational maturity certificat Lower tertiary education Higher tertiary education
Datenhandling

Bildungsjahre
12 8 9 11 10 12 13 15 16 18
25

Variable umkodieren
Prozedur
Umkodierung g der Variable casmin in dieselbe Variable

Syntax
RECODE casmin ( (0 = 12) ) (1 ( = 8) ) (2 ( = 9) ) (3 = 11) (4 = 10) (5 = 12) (6 = 13) (7 = 15) (8 = 16) (9 = 18). EXECUTE. RECODE casmin (0 = 12) (1 = 8) (2 = 9) (3 = 11) (4 = 10) (5 = 12) (6 = 13) (7 = 15) (8 = 16) (9 = 18) INTO bildungj. EXECUTE. EXECUTE

Umkodierung von casmin in die neue Variable bildungj

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

26

Variable umkodieren
Beispiel 2: Die metrische Variable Alter soll in vier Altersgruppen (18-25, 26-35, 36-45, 46-55 Jahre) umkodiert werden (Variable alter_kat); alle anderen Alterswerte sollen auf System-Missing gesetzt werden
Prozedur
Umkodierung der Variable Alter in die neue Variable alter_kat

Syntax
RECODE alter (18 thru 25 = 1) (26 thru 35 = 2) (36 thru 45 = 3) (46 thru 55 = 4) (ELSE = SYSMIS) INTO alter_kat. EXECUTE. EXECUTE

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung g erfolgt g erst durch EXECUTE.

Datenhandling

27

Variable umkodieren
Bei der neu erstellten Variablen alter_kat ist nun in der Variablenansicht nicht ersichtlich, was die Codes 1-4 zu bedeuten haben. Es empfiehlt sich daher, per Syntax neue Variablen- und Wertelabels zu vergeben:
Prozedur
Vergeben eines Variablenlabels Alter kategorisiert fr alter_kat Vergeben von Wertelabeln fr alter_kat

Syntax
VARIABLE LABELS alter_kat Alter kategorisiert. EXECUTE. VALUE LABELS alter_kat 1 18-25 Jahre 2 26-35 Jahre 3 36-45 Jahre 4 46-55 Jahre. EXECUTE. EXECUTE

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

28

Variable berechnen
Hufig mssen Variablen durch bestimmte Berechnungsprozeduren (Addition Multiplikation (Addition, Multiplikation, Division) transformiert werden; dies erfolgt mit dem Syntax-Befehl COMPUTE. Auf der nchsten Folie finden sich zwei einfache Beispiele Beim ersten wird aus dem Geburtsjahr des Befragten (Variable gebjahr) und dem Erhebungsjahr (2007) das Alter des Befragten im Eh b Erhebungsjahr j h gebildet; bild t i im zweiten it B Beispiel i i l auf f di dieser B Basis i d das Alter im Jahr 1998 Beim dritten Beispiel wird auf der Basis der Partnerschaftsdauer (Variable pdauer), die monatsgenau gemessen ist, die Partnerschaftsdauer in Jahren berechnet

Datenhandling

29

Variable berechnen
Prozedur
Berechnung B h d Alt des Alters d des Befragten im Jahr 2007 Berechnung des Alters im Jahr 2008 auf der Basis vom oben berechneten Alter im Jahr 2007 Umrechnung der monatsgenauen Partnerschaftsdauer in Jahre

Syntax
COMPUTE alter lt = 2007 - gebjahr. bj h EXECUTE. COMPUTE alter98 = alter + 1. EXECUTE EXECUTE. COMPUTE pdauer_jahr = pdauer / 12. EXECUTE EXECUTE.

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

30

Variable berechnen
Beim Beispiel unten wird dargestellt, wie man die metrische Variable Alter so umformt, dass man einen nichtlinearen (u-frmigen oder glockenfrmigen) Effekt des Alters auf a f eine metrische abhngige Variable (in einer linearen Regression) abbilden kann Es ist notwendig, g, a) ) das Alter zu zentrieren, , indem man den arithmetischen Mittelwert (20 Jahre) abzieht und b) wird dieses zentrierte Alter dann quadriert (beide Terme gehen gemeinsam in die Regression ein):
Prozedur
Zentrierung der Variable Alter (Mittelwert = 20 Jahre) Quadrieren des zentrierten Alters

Syntax
COMPUTE alterz = alter - 20. EXECUTE. COMPUTE alterquad q = alterz * alterz. EXECUTE.

Datenhandling

31

Variable berechnen
Der Compute-Befehl wird auch hufig eingesetzt, um eine Skala, die als Mittelwert von verschiedenen einzelnen Items gebildet wird, zu b berechnen h Auf der nchsten Folie sind als Beispiel verschiedene Items zur subjektiven hnlichkeit von Partnern dargestellt (jeweils 5-fach abgestuftes Antwortformat) Wenn diese Items zur Zusammenfassung g in eine Skala g geeignet g sind (vgl. das Skript Faktorenanalyse und Skalierung), kann man aus diesen Variablen die neue Variable matching als Mittelwert der Einzelitems berechnen

Datenhandling

32

Variable berechnen
Variablenname
matching1 matching2 matching3

Item
Mein Partner und ich haben die gleichen A i ht ber Ansichten b d den U Umfang f mit it G Geld ld Mein Partner und ich haben berwiegend die gleichen Freizeitinteressen Mein Partner und ich haben die gleiche sexuelle Wellenlnge

Prozedur
Berechnung der Skala matching (mindestens 1 Item hat einen gltigen Wert) Berechnung der Skala matching (mindestens 2 Items haben gltige Werte)

Syntax
COMPUTE matching = MEAN (matching1, matching2 matching3) matching2, matching3). EXECUTE. COMPUTE matching = MEAN.2 (matching1, matching2 matching3) matching2, matching3). EXECUTE.

Datenhandling

33

Variable berechnen
Noch hufiger als der Compute-Befehl wird im Rahmen der Datenaufbereitung der IF-Befehl angewendet, einem Spezialfall von C Compute t Mit dem If-Befehl kann eine Berechnung unter eine oder mehrere Bedingungen gestellt werden; nur wenn diese erfllt sind sind, wird die Berechnung durchgefhrt Verdeutlichen wir dies an zwei Beispielen. p Beim ersten Beispiel p auf der nchsten Folie soll aus den Variablen zp_sex (Geschlecht der Zielperson, 1 = Mann, 2 = Frau) und p_sex (Geschlecht des Partners der Zielperson Zielperson, genauso codiert) die neue Variable hetero hetero gebildet werden (1 = heterosexuell, 0 = homosexuell)

Datenhandling

34

Variable berechnen
Prozedur
Berechnung B h d V der Variable i bl hetero mit Hilfe der Variablen zp_sex und p sex p_ Vergeben eines Variablenlabels

Syntax
IF (zp_sex ( = 1 AND p_sex = 1) OR ( (zp_sex = 2 AND p_sex = 2) hetero = 0. IF (zp_sex = 1 AND p_sex = 2) OR (zp_sex = 2 AND p sex = 1) p_ ) hetero = 1. EXECUTE. VARIABLE LABELS hetero "Homo- versus Heterosexuell". EXECUTE.

Vergeben von Wertelabels VALUE LABELS hetero 0 'homosexuell' 1 'heterosexuell'. EXECUTE. Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

35

Variable berechnen
Das nchste Beispiel betrifft die Berechnung des sog. Inglehart-Index auf der Basis von 4 Items Ruhe und Ordnung (siehe nchste Folie) sowie Bekmpfung Preisanstieg sind Items, die Materialismus messen sollen; mit den Items Brgereinfluss g und freie Meinungsuerung g g soll Postmaterialismus gemessen werden Inglehart hat diese vier Items zu einem 4-er Index kombiniert. Je nach A t Antwortmuster t t wird i d zwischen i h vier i Typen T unterschieden: t hi d reine i Materialisten, reine Postmaterialisten, materialistischer sowie postmaterialistischer Mischtyp Nachfolgend finden sich eine bersicht ber die Typen und ein mglicher Syntaxbefehl zur Bildung des Index

Datenhandling

36

Variable berechnen
WICHTIGKEIT VON RUHE UND ORDNUNG Hufigkeit 1377 820 620 353 3170 52 12 64 3234 Prozent 42,6 25,4 19,2 10,9 98,0 16 1,6 ,4 2,0 100,0 , Gltige Prozente 43,4 25,9 19,6 11,1 100,0 Kumulierte Prozente 43,4 69,3 88,9 100,0

Gltig

Fehlend

AM WICHTIGSTEN AM ZWEITWICHTIGSTEN AM DRITTWICHTIGSTEN AM VIERTWICHTIGSTEN Gesamt WEISS NICHT KA Gesamt

Gesamt

Datenhandling

37

Variable berechnen
Wichtigstes Ziel Ruhe und Ordnung (ro) Bekmpfung Inflation (bi) Brgereinfluss (be) Meinungsuerung (me) Ruhe und Ordnung (ro) Ruhe und Ordnung (ro) Bekmpfung Inflation (bi) p g Inflation ( (bi) ) Bekmpfung Meinungsuerung (me) Meinungsuerung (me) Brgereinfluss (be) Brgereinfluss (be) Zweitwichtigstes Ziel Bekmpfung Inflation (bi) Ruhe und Ordnung (ro) Meinungsuerung (me) Brgereinfluss (be) Meinungsuerung (me) Brgereinfluss (be) Meinungsuerung (me) Brgereinfluss g ( (be) ) Ruhe und Ordnung (ro) Bekmpfung Inflation (bi) Ruhe und Ordnung (ro) Bekmpfung Inflation (bi) Inglehart-Index Reiner Materialist (Code 1) Reiner Materialist (1) Reiner Postmaterialist (4) Reiner Postmaterialist (4) Materialistischer Mischtyp (2) Materialistischer Mischtyp (2) Materialistischer Mischtyp (2) Materialistischer Mischtyp yp ( (2) ) Postmaterialistischer Mischtyp (3) Postmaterialistischer Mischtyp (3) Postmaterialistischer Mischtyp (3) Postmaterialistischer Mischtyp (3)

Datenhandling

38

Variable berechnen
Prozedur
Berechnung B h d des Inglehart-Index nach dem zuvor dargestellten g Schema

Syntax
IF (ro ( = 1 AND bi = 2) OR (bi = 1 AND ro = 2) i ingle l =1 1. IF (be = 1 AND me = 2) OR (me = 1 AND be = 2) ingle = 4. IF (ro = 1 AND me = 2) OR (ro = 1 AND be = 2) ingle = 2. IF ( (bi = 1 AND me = 2) ) OR (bi ( = 1 AND be = 2) ) ingle g = 2. IF (me = 1 AND ro = 2) OR (me = 1 AND bi=2) ingle = 3. IF (be = 1 AND ro = 2) OR (be = 1 AND bi = 2) ingle = 3. EXECUTE.

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

39

Variable berechnen
Whrend man mit dem IF-Befehl immer nur eine Berechnung unter eine Bedingung stellen kann, kann man mit DO IF mehrere Berechnungen unter nter dieselbe Bedingung Beding ng stellen oder fr verschiedene erschiedene Bedingungen Beding ngen verschiedene Berechnungen anfordern Letzteres wird nun anhand eines Beispiels p demonstriert: In der Tabelle auf der nchsten Folie sind fnf Ereignisse dargestellt, die eine zunehmende Instabilitt der Ehe anzeigen Di Die E Ereignisse i i sind i d Sk Skalenniveaus l i zugeordnet; d t wir i nehmen h also l z.B. B an, dass die Scheidungsberatung (Stufe 5) ein gravierenderes Anzeichen fr Instabilitt ist als Gedanken ber Schwierigkeiten in der Partnerschaft (St f 1) (Stufe

Datenhandling

40

Variable berechnen
Variable (1=ja)
ps1 1 ps2 ps3 ps4 ps5 p

Ereignis
Gedanken, G d k d dass P Partnerschaft t h ft in i Schwierigkeiten ist Ernsthafte Gedanken an eine Trennung Mit Freund/in ber Trennung gesprochen Partner eine Trennung vorgeschlagen Scheidungsberatung g g aufgesucht g

Stufe
1 2 3 4 5

Die nachfolgend dargestellte Syntax produziert eine Guttman-Skala (mit 6 Ausprgungen) und ist wie folgt zu lesen: Wenn man schon eine Scheidungsberatung aufgesucht hat (ps5 = 1), dann ist die Partnerschaft sehr instabil (instabil = 5); wenn dies nicht der Fall ist, man dem Partner aber eine Trennung vorgeschlagen hat (ps4 = 1) 1), dann ist die Partnerschaft instabil (instabil = 4) usw

Datenhandling

41

Variable berechnen
Prozedur
Berechnung einer I t bilitt k l Instabilittsskala nach dem zuvor dargestellten Schema

Syntax
DO IF ps5 = 1. COMPUTE instabil i t bil = 5. 5 ELSE IF ps4 = 1. COMPUTE instabil = 4. ELSE IF ps3 = 1. COMPUTE instabil = 3. ELSE IF ps2 = 1. COMPUTE instabil = 2. ELSE IF ps1 1 = 1. 1 COMPUTE instabil = 1. ELSE IF (ps 5 = 0 AND ps4 = 0 AND ps3 = 0 AND ps2 = 0 AND ps1 = 0). COMPUTE instabil = 0. END IF. EXECUTE.

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

42

Variable berechnen
Ein weiterer ntzlicher Befehl ist COUNT, mit dem man fr eine Untersuchungseinheit (Zeile im Datensatz) die Anzahl von spezifischen Werten ber verschiedene erschiedene Variablen hin hinweg eg zhlen hlen kann Auf der nchsten Folie sind zwei sinnvolle Anwendungsmglichkeiten dargestellt g Im ersten Beispiel wird gezhlt, wie viele systemdefiniert fehlende Werte eine Person (Zeile im Datensatz) bei den Variablen 1-5 aufweist; die entsprechende t h d A Anzahl hl wird i d als l neue V Variable i bl nmissing i i i im D Datensatz t t abgespeichert (man kann mit ihrer Hilfe z.B. nur Personen auswhlen, die nmissing = 0 haben) Im zweiten Beispiel zhlen wir die Anzahl der Kinder einer Person; zugrunde liegen 5 Dummy-Variablen (kind1 kind5), die jeweils erfassen ob ein erstes Kind geboren wurde (kind1 = 1), erfassen, 1) ein zweites usw. usw

Datenhandling

43

Variable berechnen
Prozedur
Berechnung B h einer i Variablen nmissing, die die Anzahl von SYSMIS bei den Variablen 1-5 erfasst Berechnung einer Variablen nkids, die die Anzahl von 1er-Codes bei den Variablen kind 1-5 erfasst

Syntax
COUNT nmissing i i = var1 1 var2 2 var3 3 var4 4 var5 5 (SYSMIS) (SYSMIS). EXECUTE.

COUNT nkids = kind1 kind2 kind3 kind4 kind5 (1). EXECUTE.

Nicht vergessen: Jede Befehlszeile mit einem Punkt abschlieen. Ausfhrung erfolgt erst durch EXECUTE.

Datenhandling

44

Z-Transformation
Zu den hufig angewendeten Variablentransformationen gehrt auch die Z-Standardisierung von Variablenwerten Man erzeugt Z-transformierte Werte, indem man von jedem Messwert (xi) das arithmetische Mittel ( x) subtrahiert und die Differenz (xi- x) durch die Standartabweichung (s) dividiert:

xi x zi = s
Die Z-Transformation ermglicht es auch, zwei Variablen, die in unterschiedlicher Metrik gemessen sind (z.B. Alter und Einkommen), direkt miteinander zu vergleichen g

Datenhandling

45

Z-Transformation
Prozedur
Z-Standardisierung Z St d di i einer Variablen X

Syntax
DESCRIPTIVES VARIABLES = X /SAVE /STATISTICS = MEAN STDDEV MIN MAX . EXECUTE.

Seltsamerweise findet sich die Z-Transformation in SPSS im Rahmen der Auswertungsprozedur deskriptive Statistiken; der entsprechende zustzliche Befehl lautet /SAVE SPSS fhrt dann die Z-Transformation durch und speichert eine entsprechende neue Variable im Datensatz ab (der alte Name wird bernommen und ein Z davor gesetzt)

Datenhandling

46

Aggregieren von Daten


Manchmal wird es erforderlich, basierend auf den Werten von einer oder mehreren Gruppenvariablen (Break-Variablen) Flle zusammenzufassen bzw. zu aggreggieren; die neue Datendatei enthlt dann fr jede BreakGruppe einen Fall Verstehen tut man das nur anhand eines Beispiels: Betrachten wir den frei erfundenen Datensatz auf der nchsten Folie, der 15 Personen und 4 Variablen enthlt Anhand der Personen- und Haushalts-ID erkennen wir, dass einige Personen zusammen in einem Haushalt wohnen, z.B. die Personen mit der ID 2, 3 und 4 im Haushalt 2

Datenhandling

47

Aggregieren von Daten

Datenhandling

48

Aggregieren von Daten


Die Variable stellunghv (Stellung zum Haushaltsvorstand) sagt uns, bei welcher Person es sich um den Haushaltsvorstand handelt (Code 0), um den Partner des Haushaltsvorstandes (Code 1) und um Kinder des Haushaltsvorstandes oder dessen Partner (Code 3) Auerdem wissen wir fr jede Person das Alter Wir wollen nun folgendes wissen: Wie viele Kinder leben im Haushalt des jeweiligen Haushaltsvorstandes? Wir knnen das im Datensatz zwar sehen, wie aber knnen wir eine entsprechende Variable im Datensatz abspeichern? Hier knnen wir uns mit der Aggregierung der Daten helfen; ein entsprechendes Syntaxbeispiel ist weiter unten dargestellt (hier macht es auch Sinn, das Men anzuschauen: Daten aggregieren)

Datenhandling

49

Aggregieren von Daten


Wir haben folgende Idee: Wir aggregieren unseren Datensatz auf Haushaltsebene und speichern fr jeden Haushalt ab, wie viele Kinder darin leben Anschlieend spielen wir diese Kinderzahl wieder dem Individualdatensatz zu Der erste Schritt besteht darin, eine Dummy-Variable zu erstellen die fr jede Person angibt, um es sich um ein Kind handelt (1 = ja, 0 = nein) Syntax: RECODE stellunghv (3 = 1) (ELSE = 0) INTO kind. EXECUTE. Der Datensatz sieht dann so aus:

Datenhandling

50

Aggregieren von Daten

Datenhandling

51

Aggregieren von Daten


Nun geben wir (per Men oder Syntax, siehe die nchsten Folien) an, dass wir den Individualdatensatz auf Haushaltsebene aggregieren wollen (/BREAK = haushaltsid) Dies bedeutet, dass in dem neu abgespeicherten Datensatz haushaltskinder.sav haushaltskinder sav die Zeilen nicht mehr Personen entsprechen, entsprechen sondern Haushalten Wir aggregieren die Variable kind, wobei hier verschiedene Aggregierungsfunktionen zur Verfgung stehen (Summe, Mittelwert, usw., siehe das Men) In unserem Fall brauchen wir die Summen Summen-Funktionen, Funktionen da wir ja die Anzahl von Kindern pro Haushalt wissen wollen

Datenhandling

52

Aggregieren von Daten

Datenhandling

53

Aggregieren von Daten


Prozedur
Aggregierung A i d der Summe der Kinder auf Haushaltsebene

Syntax
AGGREGATE /OUTFILE= 'C:\haushaltskinder.sav' /BREAK= haushaltid /kind_sum = SUM(kind). ( ) EXECUTE.

Rechts sehen wir das Ergebnis der Aggregierung: Der neue Datensatz hat 7Z Zeilen, il di die 7 H Haushalten h lt entsprechen t h Fr jeden Haushalt ist die Anzahl der Kinder in kind kind_sum sum abgespeichert

Datenhandling

54

Verschmelzen von Datenstzen


Nun stehen wir vor dem nchsten Problem: Wie bekommen wir die Anzahl der Kinder (kind_sum) zurck in unseren Individualdatensatz? Nun geht es also um die Verschmelzung von Datenstzen Man kann in einen Arbeitsdatensatz andere Variablen aus anderen Datenstzen einfgen oder neue Flle Im Folgenden wird demonstriert, wie man eine Variable aus einer externen Datei in einen Arbeitsdatensatz zuspielt Zunchst muss man sich klar machen, in welcher Beziehung die beiden Quelldateien stehen. Es gibt drei Mglichkeiten:

Datenhandling

55

Verschmelzen von Datenstzen


Quelldatei 1 ID 1 2 3 Tier Hund Katze Maus Zieldatei ID 1 2 3 Tier Hund Katze Maus Farbe grn grau schwarz Quelldatei 2 ID 1 2 3 Farbe grn grau schwarz

1:1-Beziehung: Jedem Fall der einen Datei entspricht genau ein

Fall der anderen Datei. Die Werte sind also lediglich auf zwei Dateien aufgeteilt und knnen ohne weiteres in einer Datei nebeneinander stehen

Datenhandling

56

Verschmelzen von Datenstzen


Quelldatei 1 ID 1 2 3 Tier Hund Katze Maus Zieldatei ID 1 2 3 4 Tier Hund Katze Maus schwarz Farbe grn grau Quelldatei 2 ID 1 2 4 Farbe grn grau schwarz

Lose Beziehung: Jedem Fall der einen Datei entspricht hchstens

ein Fall der anderen. Im Gegensatz zu einer 1 zu 1 Beziehung ist es hier mglich, dass bei einzelnen Fllen kein quivalent in der jeweils anderen Datei existiert
Datenhandling 57

Verschmelzen von Datenstzen


Schlsseltabelle ID 1 2 3 6 Tier Hund Katze Maus Esel Zieldatei ID 1 2 3 4 Tier Hund Katze Maus Farbe grn grau schwarz rot abhngige Tabelle ID 1 2 3 4 Farbe grn grau schwarz rot

1:n-Beziehung: Eine der beiden Dateien ist bergeordnet und

damit die Schlsseltabelle. Schlsseltabelle Jedem Fall der Schlsseltabelle knnen mehrere Flle der anderen (abhngigen) Tabelle entsprechen. Jedem Fall der abhngigen Tabelle entspricht jedoch hchstens ein Fall der Schlsseltabelle. Schlsseltabelle
Datenhandling 58

Verschmelzen von Datenstzen


In unserem Beispiel handelt es sich um eine 1:n-Beziehung. Wir wollen unserer Arbeitsdatei auf Personenebene eine Haushaltsinformation (Anzahl der Kinder) zuspielen Die nchste Folie zeigt, wie die entsprechenden Einstellungen im Men Daten Dateien zusammenfgen Variablen hinzufgen vorzunehmen sind (die Syntax ist wenig eingngig und wir hier unterschlagen; siehe das Log-File) Als Schlsselvariable kommt nur die Haushalts-ID in Frage, die in beiden Datenstzen vorhanden sein muss; auerdem mssen beide Datenstze aufsteigend nach der Schlsselvariable sortiert sein Unter Neue Arbeitsdatei symbolisiert das + hinter kind_sum, dass es sich hier um die Variable handelt, die neu hinzukommt. Die bernchste Folie zeigt das Ergebnis

Datenhandling

59

Verschmelzen von Datenstzen

Datenhandling

60

Verschmelzen von Datenstzen

Datenhandling

61

Verschmelzen von Datenstzen


Zum Verschmelzen von Datenstzen (Variablen hinzufgen) hier eine bersicht zu den Meneinstellungen:
Verhltnis der Quelldateien
1:1-Beziehung

Meneinstellungen
Es muss lediglich die andere Quelldatei angegeben werden und beide Datenstze mssen aufsteigend nach der ID sortiert sein (keine weiteren Meneinstellungen notwendig) Es muss eine Schlsselvariable angegeben und zustzlich die Option Beide Dateien liefern Flle angewhlt werden Es s muss uss e eine e Sc Schlsselvariable sse a ab e a angegeben gegebe werden; e de ; zustzlich ist festzulegen, welche Datei abhngig ist (deren Fallzahl wird nicht verndert) und welche die Schlsseltabelle

Lose Beziehung 1:n Beziehung e e u g

Datenhandling

62

Umstrukturierung ins Long-Format


Insbesondere fr jede Form der Panel-Analyse ist es notwendig, die Daten vom sog. Wide- ins Long-Format umzustrukturieren (siehe auch die Skripte zur Panel- und Ereignisdatenanalyse) Die nchste Folie zeigt das wide-Format. Die Zeilen im Datensatz stehen hier wie gewohnt fr Personen; zeitvernderliche Variablen werden in separaten Spalten nebeneinander abgespeichert Dargestellt ist hier u.a. die abhngige Variable (heirat1-heirat4). Hier ist fr insgesamt 4 Jahre erfasst, ob die entsprechende Person entweder unverheiratet ist (= 0) oder geheiratet hat (= 1)

Zeitdiskrete EDA

63

Umstrukturierung ins Long-Format

Zeitdiskrete EDA

64

Umstrukturierung ins Long-Format


Die nchste Folie zeigt den SPSS-Syntax-Befehl zur Umstrukturierung des Datensatzes ins long-Format (Men: Daten Umstrukturieren ausgewhlte Variablen in Flle) Es ist ersichtlich, dass, z.B. bei der abhngigen Variablen, die Informationen aus den 4 einzelnen Spalten (heirat1-heirat4 ( heirat1-heirat4) ) zu einer Variablen (einer Spalte) im long-Format zusammengefasst werden Damit SPSS wei, welche personenspezifischen Beobachtungen zusammengehren, wird unter KEEP die Personen-ID angegeben; zeitkonstante Variablen (im Men: mit festem Format) knnen ebenfalls hier angegeben werden Index = Index1(4) bedeutet, dass SPSS eine neue Variable Index1 erstellt, die hier der laufenden Nummer der Panelwelle entspricht

Zeitdiskrete EDA

65

Umstrukturierung ins Long-Format


Prozedur
Umstrukturierung U t kt i vom Wide- ins LongFormat

Syntax
VARSTOCASES /MAKE heirat FROM heirat1 heirat2 heirat3 heirat4 /MAKE kdau FROM kdau1 kdau2 kdau3 kdau4 /MAKE alter FROM alter1 alter2 alter3 alter4 /INDEX = Index1(4) /KEEP = id /NULL = KEEP. EXECUTE. EXECUTE

Datenhandling

66

Umstrukturierung ins Long-Format


Das Ergebnis der Umstrukturierung: Personen fli i flieen im long-Format l F t nun in i der Form von Zeilen mehrfach in den Datensatz ein (hier j jeweils il 4 4-mal) l) Pro Variable gibt es im longFormat jedoch nur noch eine Spalte Die ID identifiziert die personenspezifischen Beobachtungen

Zeitdiskrete EDA

67

Datensatz per Syntax laden und abspeichern


Prozedur
ffnen eines ff i D Datensatzes t t ber Syntax Abspeichern eines Datensatzes ber Syntax

Syntax
GET FILE = C:\Eigene C \Ei D Dateien\Beispiel.sav. t i \B i i l EXECUTE. SAVE OUTFILE = C:\Eigene Dateien\Beispiel.sav /KEEP = var1 var2 var3 var4 var4. EXECUTE.

Die letzte Folie zeigt zeigt, wie man einen Datensatz in SPSS per Syntax laden und abspeichern kann Der Save-Outfile-Befehl ist sehr ntzlich, , um einen neuen reduzierten Datensatz abzuspeichern, in dem nicht alle Variable des ursprnglichen Datensatzes enthalten sind; auerdem kann die Reihenfolge der Variablen verndert werden

Datenhandling

68