1 Seminar, Übung, Schulung: Umgang mit komplexen und umfangreichen Datensätzen Stichworte: Zu...
206
1 r, Übung, Schulung: mit komplexen und umfangreichen Datensätzen orte: ahlreichen Fragestellungen und Forschungsthemen tieren umfangreiche Datenbestände piel: PISA, SOEP (Socio-Economic-Panel), Daten über Studienverlauf/die Benotungen, Statistisches Bundes edarf besonderer Techniken, um mit derartig umfangr nbeständen angemessen umzugehen, nicht in den Menge ersinken: yntax acros ata-Mining matisierung von Abläufen, Erzeugung von Routinen
1 Seminar, Übung, Schulung: Umgang mit komplexen und umfangreichen Datensätzen Stichworte: Zu zahlreichen Fragestellungen und Forschungsthemen existieren
1 Seminar, bung, Schulung: Umgang mit komplexen und
umfangreichen Datenstzen Stichworte: Zu zahlreichen Fragestellungen
und Forschungsthemen existieren umfangreiche Datenbestnde Beispiel:
PISA, SOEP (Socio-Economic-Panel), Daten ber den Studienverlauf/die
Benotungen, Statistisches Bundesamt Es bedarf besonderer Techniken,
um mit derartig umfangreichen Datenbestnden angemessen umzugehen,
nicht in den Mengen zu versinken: Syntax Macros Data-Mining
Automatisierung von Ablufen, Erzeugung von Routinen
Folie 2
2 Eine bekannte Daumenregel im Analysegeschft lautet: Etwa 80%
der Arbeit liegt in der Datenbereinigung und -aufbereitung!
Ungeachtet dieser Erkenntnis dominieren in der Wissensvermittlung
Einfhrungen in deskriptiver Statistik und multivariaten Verfahren,
die meist saubere und entsprechend aufbereitete Daten voraussetzen.
Fragen der Datenqualitt und ihrer Auswirkung werden hingegen kaum
thematisiert. Das Seminar setzt genau an diesem Missverhltnis
an.
Folie 3
3 In diesem Seminar, bung, Schulung werden basale Techniken zu
diesem Thema vorgestellt und eingebt. Dazu sollten wir uns ber eine
dafr geeignete Form der Vermittlung verstndigen! Der geplante grobe
inhaltliche Ablauf: Einfhrung in die Thematik Einlesen von
verschiedenen Datenstzen Syntax und Macro-Prozeduren zum Einlesen
Zusammenstellen unterschiedlichster Variablenstze Generieren neuer
Variablen Makroskopischen Analysen Techniken der EDA (Explorative
Daten Analyse), Data-Mining
Folie 4
4 Datenmanagement ist die Grundlage jeder Datenverarbeitung.
Datenmanagement bedeutet u.a.: Transponieren Bilden von Subsets
Bilden von Subsets ber Filter/Bedingungen Bilden neuer Variablen
oder Werte ber Umkodieren oder arithmetische Operationen
Zusammenfgen von Datenstzen Bereinigen der Datenstze (Missing
values, Ausreier, Anpassungen bei Nicht-Normalverteilung)
Folie 5
5 12.07.2010Start: Information, Planung, Abstimmung Einfhrung
in die Thematik Kurzeinfhrung SPSS Syntax und Makros in SPSS
13.07.2010Einlesen von Daten mit Syntax + Makro Schleifen
Berechnung neuer Variablen 14.07.2010Fortsetzung: Berechnung neuer
Variablen, Auswahl und Zusammenstellung spezifischer Datenstze
15.07.2010Statistika und StatSoft Data Miner: Kurzeinfhrung in die
Funktionen und die Werkzeuge Aufbau einfacher Analysen Spterer
Termin 16.07.2010Fortsetzung: Arbeiten mit dem Data MinerSpterer
Termin MoBetreute Eigenarbeit: Bearbeitung von vorgegebenen
Aufgaben Spterer Termin DiBetreute Eigenarbeit: Bearbeitung von
vorgegebenen Aufgaben Spterer Termin Zeiten, Blcke,
Inhalte!!??
Folie 6
6 Die Phasen im Data Mining Prozess Daten Selektierte Daten
Selektion Vorverarbeitung Transformation Data Mining Interpretation
Vorbereitete Daten Transformierte Daten Muster Wissen/ Modelle
Folie 7
7 Was ist die generelle Idee, das generelle hier behandelte
Konzept? Es gibt selbstverstndlich eine ganze Reihe hchst
unterschiedlicher Fragestellungen. Ich behandele mit Ihnen eine
Form wie bspw.: Was unterscheidet Schler mit hoher und mit
niedriger Leistung? Wann wird viel, wann wird wenig Kaffee verkauft
und wovon ist dies abhngig? Wie lassen sich Kunden mit einem hohen
Kreditrisiko von denen mit geringem Kreditrisiko unterscheiden? Wo
liegen die Grnde eines schnellen, erfolgreichen Studiums? Wovon ist
bei einem Schiffsuntergang das berleben abhngig? Betrachten wir
zunchst kategoriale Daten:
Folie 8
8 Ihnen liegt bspw. Ein Datensatz von 2201 Personen vor, die
auf der Titanic unterwegs waren. Sie haben Angaben zu:
Kabinenklasse Altersgruppe Geschlecht berlebt/Vermisst (siehe
Tabelle) Wie knnen Sie der eben gestellten Frage nachgehen?
Folie 9
9 Durch die Berechnung von sog. Klassifikationsbumen knnen Sie
der Frage so nach- gehen: Sie sehen, welcher Faktor der wichtigste
ist und knnen weitere Abhngigkeiten erkennen:
Folie 10
10 Was ist die generelle Idee, das generelle hier behandelte
Konzept? Erster Schritt: Verteilung anschauen, Daten inspizieren
Betrachten wir jetzt metrische Daten:
Folie 11
11 Ggf. Daten verndern, hier als ein Beispiel: alle Werte in
absolute Werte umrechnen. Sie mssen etwas sehen!!
13 Dritter Schritt: Wovon ist gut oder schlecht abhngig? Dazu
nach den Variablen suchen, die zwischen diesen beiden Kategorie
trennen
Folie 14
Folie 15
15 Vierter Schritt: Wovon ist gut oder schlecht abhngig?
Hierarchie aller gut schlecht beeinflussenden Faktoren
betrachten
Folie 16
16 Vierter Schritt: Wovon ist gut oder schlecht abhngig? Gte
der erreichten Aufklrung berprfen
Folie 17
17 Transformation Data Mining Interpretation Vorbereitete Daten
Transformierte Daten Muster Wissen/ Modelle Wie geht
Erkenntnisgewinn? Ein erster, flchtiger Blick
44 Nachdenken, was die erzielten Ergebnisse bedeuten!!
Folie 45
45 Vorbereitung: Zunchst mssen wir gemeinsam unsere Rechner
vorbereiten, um die Einstellungen des SPSS so zu konfigurieren,
dass der automatisch generierte Programmiercode auch gefunden und
genutzt werden kann. Zugleich bentigt jeder von Ihnen einen eigenen
Ordner im Verzeichnis Komplexe Daten auf dem Laufwerk N:\. Diese
beiden Einstellungen mssen wir nun vornehmen.
Folie 46
46 Der Speicherort des Syntax- Journals finden Sie unter:
Bearbeiten Optionen/Options File Locations Sie knnen alle im
Programm auf der Windows-Oberflche durchgefhrten Arbeiten in einem
Journal aufzeichnen lassen. Dazu stehen zwei Optionen zur Verfgung.
berschreiben oder Anhngen
Folie 47
47 Daten Selektierte Daten Selektion Vorverarbeitung
Vorbereitete Daten Erster Teil: Es gibt verschiedene Mglichkeiten:
Datenbanken, Abfrage und Zusammenstellung mit SQL (Structured Query
Language) Nutzung von Syntax- und Macro-Prozeduren, bspw. aus SPSS
heraus Die Vorteile/Nachteile: SQL ist oft schneller, mchtiger. Hat
aber Einschrnkungen, weniger Transparenz Syntax, Macros erlauben
mehr Operationen, geben Einblick in Zwischenresultate; sind
entsprechend aufwndiger und (etwas) langsamer, erfordern
Zwischenschritte
Folie 48
48
Folie 49
49
Folie 50
50 Daten Selektierte Daten Selektion Vorverarbeitung
Vorbereitete Daten Die hier favorisierte Alternative, Variante:
Zusammenfhren und -fgen der Arbeitsdatenstze mit Hilfe von Syntax-
und Macro-Prozeduren aus verschiedenen Datenstzen Daten Selektierte
Daten Selektion & Vorverarbeitung Vorbereitete Daten Syntax-
und Macro-Prozeduren
Folie 51
51 Einige Vorteile dieser Variante: Grere bersichtlichkeit, die
Ergebnisse der Arbeits- schritte lassen sich einfach berprfen Die
Makros knnen als eine Art von Projekt abgespeichert werden
Verschiedenste Bearbeitungen lassen sich recht einfach kopieren und
in fr andere Zwecke einfgen Der Umfang an Berechnungs- und
Editieroptionen ist in (nahezu) allen Fllen grer
Folie 52
52 Schritte im Datenmanagement: Daten integriert? Struktur
geeignet? Werte korrekt? Daten vollstndig? Verteilung passend?
Datenmenge geeignet? Doch bitte beachten: Nicht alle dieser
Schritte knnen im Rahmen dieser Veranstaltung behandelt
werden!!
Folie 53
53 Ziel fr (nahezu) alle Tabellen ist folgendes Format,
folgende Struktur: CaseVariable_01 (Prdiktor1) Variable_02
(Prdiktor2) Variable_03 (Prdiktor3) Variable_04
(Prdiktor4)..Abhngige Variable(n) Jede Zeile stellt einen Fall
dar
Folie 54
54 Aufbau der Datenmatrix, um einen Kausalbaum, eine
Kreuztabelle zu erstellen: V1V1 V2V2 V3V3 V4V4 V5V5 V6V6
Person/BedingungV gut_schlecht 345232234336767787AG 564887236454 BG
345665897454CS 789123567DS 345459456EG 234981345FS 234438341GG
657345656HS 447IS
Folie 55
55 Aufbau der Datenmatrix, um eine Korrelationsanalyse zu
erstellen: V1V1 V2V2 V 3: Gefahrene Kilometer V 4: Gartengre V 5:
Wohnraum V 6: Gehalt 345232234336767787 564887236454 345665897454
789123567 345459456 234981345 234438341 657345656 447
Folie 56
56 Ein (sehr) kurzer Blick auf einige Probleme: Probleme
aufgrund von Missing Data (MD) Viele statistische und
Data-Mining-Verfahren bentigen vollstndige Daten, etwa die
Korrelations- und Regressionsanalyse oder Neuronale Netze MD
vermindern die Datenbasis und damit die statistische Aussagekraft
der Ergebnisse Bei systematischen MD werden Ergebnisse verflscht
bzw. verzerrt Beim Einsatz von Filterfunktionen mssen die als
Filter genutzten Werte vollstndig sein
Folie 57
57 Verlauf ber die Zeit Leistungen in Klasse A und in Klasse B
A B A A A A A A A A A A A B B B B B B B B B B B B B
Folie 58
58 Verlauf ber die Zeit Leistungen in Klasse A und in Klasse B
A B A A A A A A A A A A A B B B B B B B B B B B B B
Folie 59
59 Verlauf ber die Zeit Leistungen in Klasse A und in Klasse B
A B A A A A A A A A A A A B B B B B B B B B B B B B Ausreier
Folie 60
60 Leistungen in Klasse B A A A A A A A A A A A A Bse Falle
Null: Missing Value: Fr eine Person liegen keine Angaben zu der
Leistung in Klasse B vor 0 Leistungen in Klasse A
Folie 61
61 Beachten Sie den Korrelationsquotienten!
Folie 62
62 Beachten Sie den Korrelationsquotienten!
Folie 63
63 Welche Mglichkeiten des Umgangs mit fehlenden Werten gibt
es? Y X Y X Bei kategorialen Merkmalen hufigste Ausprgung der k
nchsten Nachbarn Bei metrischen Merkmalen durchschnittlicher Wert
der k nchsten Nachbarn Aber auch: Missing Values rauswerfen!
Folie 64
64 Ein erster Schritt: Dateien ffnen: Der Befehl sieht wie
folgt aus GET FILE='N:\Daten\D_Zwei\Daten-Mi-10.sav'. Wichtig sind
die Anfhrungszeichen! Wichtig ist der Punkt am Schluss!! Wenn Sie
nicht alle Variablen des Datensatzes einlesen mchten was sehr oft
vorteilhaft ist knnen Sie folgende Zusatzbefehle einfgen: GET
FILE='N:\Daten\D_Zwei\Daten-Mi-10.sav /KEEP = var001, var002. Oder
GET FILE='N:\Daten\D_Zwei\Daten-Mi-10.sav /DROP = var009,
var010.
Folie 65
65 GET GET FILE='file' [LOCK={YES**}] {NO } [/KEEP={ALL** }]
[/DROP=varlist] {varlist} [/RENAME=(oldvarnames=newvarnames)...]
[/MAP] **Default if the subcommand is omitted. Release History
Release 17.0 LOCK keyword introduced on the FILE subcommand.
Example GET FILE='/data/empl.sav'. Ausschnitt aus: Hilfe SPSS
Command Syntax Reference GET FILE
Folie 66
66 Ausschnitt aus: Hilfe SPSS Command Syntax Reference GET
DATA
Folie 67
67 Ein Beispiel fr einen einfach unvollstndigen Datensatz: Es
wurde nur einmal am Anfang jeden Falles der Name, das Datum, die
Zeit und eine Id eingegeben
Folie 68
68 Wie lassen sich in solchen Fllen die fehlenden Werte fr
jeden Fall einfgen? Auf die dumme Art: Jede Variable in die Hand
nehmen Auf die kluge Art: ein kleines Programm schreiben Dazu
beginnen wir zunchst mit dem Einlesen der Datei Daten-Mi-10.sav Um
ohne Wissen ber die Programmiersprache diese Aufgabe lsen zu knnen,
laden wir die Datei per Maus und schauen dann in die
Journal-Aufzeichnung
Folie 69
69 Wichtig ist es jetzt, sich so genau wie nur mglich ber die
Aufgabenstellung Gedanken zu machen: In jede leere Zeile der
Variable ID soll der Wert eingetragen werden, der am Anfang eines
Falles steht. Dabei muss beachtet werden, wo und wie ein neuer
ID-Fall anfngt, bzw. wo ein alter aufhrt!
Folie 70
70 Dazu ist es wichtig, die Funktionen Lag und Lead einzufhren:
Bitte schauen Sie sich die folgende Darstellung genau an. In der
Tabelle sind Werte einer Variable X eingetragen. Daneben sehen Sie
das sog. Lag und das sog. Lead von X. Das Lag gibt immer den vor
dem Wert in der Reihe stehenden Wert wieder; das Lead den jeweils
nachfolgenden Wert. Bitte beachten Sie, dass fr den ersten Wert der
Variable X kein Lag berechnet werden kann und ein sog. Missing
Value (.) produziert wird!! XLagLead 198.220 198305 220470 305
Folie 71
71 Lassen Sie uns den Befehl einmal ausprobieren! ffnen Sie
dazu bitte eine neue Datei, geben Sie einer Variable den Namen X
und tragen Sie einfach ein paar Werte ad libitum ein. Jetzt mssen
Sie, falls nicht bereits geschehen, eine neu Syntax ffnen und dort
den folgenden Befehl eingeben: CREATE y = LAG(x, 1). EXECUTE.
Folie 72
72 Sie haben gesehen, wie der Befehl funktioniert. Um mit
diesem Befehl unsere Aufgaben zu lsen, mssen noch zwei Probleme
angegangen werden: Das Programm muss mit der ersten Zeile etwas
anfangen knnen Dem Programm muss vorgeben werden, bei einem neuen
Fall auch den dann neue ID-Wert zu nehmen Das Programm fhrt keine
Berechnungen aus, wenn in den Spalten Missing Values stehen
Folie 73
73 Erluterung: die sog. Caseummer, in der Befehlssyntax als
$casenum ansprechbar
Folie 74
74 Diese Probleme lsen wir wie folgt: RECODE ID (MISSING=0).
EXECUTE. IF ((Zeile > 0) & ($casenum > 1)) Id = Id +
Lag(Id, 1). EXECUTE. Mit dem ersten Befehl Recodieren wir alle
Werte der Variable ID, die ein Missing Value beinhalten, in den
Wert 0. Mit dem zweiten Befehl erstellen wir eine konditionale
Bedingung an die Berechnung des LAGs Id: Nur wenn der Wert der
Variable Zeile grer als Null ist und der Case (Fall) grer als
Eins.
Folie 75
75 Exkurs I
Folie 76
76 Irrtumswahrscheinlichkeit: Ein p = 0,03 bedeutet: Die
Wahrscheinlichkeit, dass unter der Annahme, die Nullhypothese sei
richtig, das gegebene Untersuchungsergebnis oder ein noch
extremeres auftritt, betrgt 0,03. Signifikanzstufen p !VAR)
CROSSTABS /TABLES= Gehalt BY Hausbesitz /FORMAT= AVALUE TABLES
/CELLS= COUNT EXPECTED ROW COLUMN TOT">
107 !DO !VAR !IN (LISTE) Select if (ALTER > !VAR) CROSSTABS
/TABLES= Gehalt BY Hausbesitz /FORMAT= AVALUE TABLES /CELLS= COUNT
EXPECTED ROW COLUMN TOTAL /COUNT ROUND CELL. !DOEND LISTE = 30 40
50 60 In dieser schematischen Darstellung wrden also alle vier
Werte aus der Liste automatisch nacheinander in die Berechnung ein-
gesetzt werden.
Folie 108
108 /* Ein fnftes Beispiel fr eine Makro-Programmierung mit
einer Schleife /* SET PRINTBACK=ON MPRINT=ON. DEFINE !Auswertung3
(LISTE1 = !CHAREND ('/')/ VAR1 = !TOKENS(1)). GET
FILE='C:\Programme\SPSS\1993 US Sozialerhebung (Teilmenge).sav'.
EXECUTE. !DO !WERT1 !IN (!LISTE1). CROSSTABS /TABLES= !WERT1 BY
!VAR1 /FORMAT= AVALUE TABLES /CELLS= COUNT EXPECTED ROW COLUMN
TOTAL /COUNT ROUND CELL. !DOEND. !ENDDEFINE. !AUSWERTUNG3 LISTE1 =
famstand beschft partei sternzei / VAR1 = todesstr. Name des
Macros: MACRO_Einfaches_Beispiel5
Folie 109
109 /* Ein fnftes Beispiel fr eine Makro-Programmierung mit
einer Schleife /* SET PRINTBACK=ON MPRINT=ON. DEFINE !Auswertung3
(LISTE1 = !CHAREND ('/')/ VAR1 = !TOKENS(1)). GET
FILE='C:\Programme\SPSS\1993 US Sozialerhebung (Teilmenge).sav'.
EXECUTE. !DO !WERT1 !IN (!LISTE1). CROSSTABS /TABLES= !WERT1 BY
!VAR1 /FORMAT= AVALUE TABLES /CELLS= COUNT EXPECTED ROW COLUMN
TOTAL /COUNT ROUND CELL. !DOEND. !ENDDEFINE. !AUSWERTUNG3 LISTE1 =
famstand beschft partei sternzei alterhei geschw kinder alter
gebmonat sternzei ausbild abschlus vaterab mutterab geschl ethgr
einkom91 einkbefr region ort einwohn partei wahl92 einstell
todesstr waffen gras religion leben kindid pille sexualkd prgel
sterbehi zeitung tvstunde bigband blugrass country blues musicals
klassik folk jazz opern rap hvymetal sport kultur tvshows tvnews
tvpbs wissen4 partner sexfreq wohnen soi gebjahr fameink schulab
altergr politik region4 verheira classic3 jazz3 rap3 blues3 /VAR1 =
todesstr. Name des Macros: MACRO_Einfaches_Beispiel5a
Folie 110
110 Was zunchst sehr kompliziert zu klingen scheint ist jedoch
in den meisten Fllen eher einfach und sehr ntzlich: Es lassen sich
(nahezu) unbegrenzt viele Schleifen miteinander verschachteln: LOOP
I LOOP II Das nchste Makro demonstriert diese Mglichkeit. Zuerst
wird das erste Zeichen der Liste1 eingesetzt, dann das erste
Zeichen der Liste2, dann das zweite Zeichen der Liste2 usw. Sind
alle Zeichen der Liste2 durch, wird das zweite Zeichen der Liste1
eingesetzt usw. usw.
Folie 111
111 /* Ein viertes Beispiel fr eine Makro-Programmierung mit
zwei ineinander /* verschachtelten Schleifen /* SET PRINTBACK=ON
MPRINT=ON. DEFINE !Auswertung3 (LISTE1 = !CHAREND ('/')/ LISTE2 =
!CHAREND ('')). GET FILE='C:\Programme\SPSS\1993 US Sozialerhebung
(Teilmenge).sav'. EXECUTE. !DO !WERT1 !IN (!LISTE1). !DO !WERT2 !IN
(!LISTE2). CROSSTABS /TABLES= !WERT1 BY !WERT2 /FORMAT= AVALUE
TABLES /CELLS= COUNT EXPECTED ROW COLUMN TOTAL /COUNT ROUND CELL.
!DOEND. !ENDDEFINE. !AUSWERTUNG3 LISTE1 = famstand beschft partei /
LISTE2 = todesstr sternzei . Name des Macros:
MACRO_Einfaches_Beispiel4
Folie 112
112 Eine weitere Mglichkeit der Schleifenkonstruktion ist die
eines sog. Index-Loop. Beim Index-Loop wird bei einem Zhler mit dem
Wert 1 gestartet und im Allgemeinen in n+1-Schritten solange
wiederholt, bis ein bestimmter (Index-) Wert erreicht ist. !DO !var
= (Anfang) !TO (Ende) [optional: !BY (Schritt)] - Befehle - !DOEND
Das folgende Makro zeigt ein Beispiel fr einen solchen Index- Loop,
mit dem sechs zustzliche Variablen mit den Namen neu1var bis
neu6var generiert werden: Im Anschluss an dieses Beispiel wird der
bislang noch nicht eingefhrte Befehl !CONCAT erlutert.
Folie 113
113 /* Ein sechstes Beispiel fr eine Makro-Programmierung mit
einer Index-Schleife /* SET PRINTBACK=ON MPRINT=ON. DEFINE !LOOP1
(key1 = !TOKENS(1)/key2 = !TOKENS(1)). !DO !i = !KEY1 !TO !KEY2.
COMPUTE !CONCAT (neu, !i, var) = normal (1). !DOEND. !ENDDEFINE.
!LOOP1 Key1 = 1 Key2 = 6. Name des Macros:
MACRO_Einfaches_Beispiel6
Folie 114
114 Stringfunktionen und einige ihrer Variationsmglichkeiten
Syntax fr StringsFunktion, Rckmeldung und Beispiel !LENGTH
(String)Lnge des angegebenen Strings. Bsp.: !LENGTH(Hello).
Ergebnis: 5 !CONCAT (String1, String2, ) Aneinanderkettung der
zusammenzu- fhrenden Strings. Bsp.: !CONCAT(hel, lo). Ergebnis:
Hello !QUOTE (String)Das Argument wird in Anfhrungs- zeichen
gesetzt. Bsp.: !QUOTE(Hello). Ergebnis: Hello !SUBSTR (String,
FROM, [Lnge]) Abschnitt des Strings, der ab FROM startet und bei
nicht festgelegter Lnge bis zum Stringende geht Bsp.:
!SUBSTR(Hello, 3) Ergebnis: LLO
Folie 115
115 Eine weitere Anwendung von Makros: Das Zusammenfhren von
ausgesuchten Variablen aus verschiedenen Dateien: Dazu mssen die
einzelnen Dateien nacheinander aufgerufen werden Dabei werden nur
die Variablen geladen, die von Interesse sind Die Auswahl der
Variablen wird in einer (Zwischen-)Datei abgelegt Der nchste
Datensatz wird aufgerufen, die Variablen ausgesucht etc. Der
Datensatz wird mit den Daten in der Zwischendatei verbunden Wenn
alle Datei durchkmmt sind, ist der Datensatz fertig Beispiel:
Folie 116
116 /* Ein siebentes Beispiel fr eine Makro-Programmierung zum
Zusammenfgen verschiedener Datenstze /* SET PRINTBACK=ON MPRINT=ON.
GET FILE='C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\SE_Komplexe_Daten\1991 US Sozialerhebung.sav' /KEEP =
kinder. EXECUTE. COMPUTE YEAR = 1991. FORMATS YEAR (F 1.0).
EXECUTE. SAVE OUTFILE='C:\Dokumente und Einstellungen\Klaus
Mehl\Eigene Dateien\Daten\SE_Komplexe_Daten\SPEICHER01.sav'.
EXECUTE. DEFINE !Zusammen1 (PFAD = !CHAREND ('/')/ WERT1 = !CHAREND
('')). GET FILE= !QUOTE(!PFAD) /KEEP = kinder. EXECUTE. COMPUTE
YEAR = !WERT1. FORMATS YEAR (F 1.0). EXECUTE. ADD FILES /FILE=* /*
Alternative: MATCH /FILE='C:\Dokumente und Einstellungen\Klaus
Mehl\Eigene Dateien\Daten\SE_Komplexe_Daten\SPEICHER01.sav'.
EXECUTE. SAVE OUTFILE='C:\Dokumente und Einstellungen\Klaus
Mehl\Eigene Dateien\Daten\SE_Komplexe_Daten\SPEICHER01.sav'.
EXECUTE. !ENDDEFINE. !Zusammen1 PFAD = C:\Dokumente und
Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\SE_Komplexe_Daten\1993 US Sozialerhebung
(Teilmenge).sav / WERT1 = 1993 . !Zusammen1 PFAD = C:\Dokumente und
Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\SE_Komplexe_Daten\Mehl Fake.sav / WERT1 = 2000 . Name
des Macros: MACRO_Einfaches_Beispiel7
Folie 117
117 /* Ein achtes Beispiel fr eine Makro-Programmierung zum
Berechnen des Mittelwertes /* SET PRINTBACK=ON MPRINT=ON. GET
FILE='C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\SE_Komplexe_Daten\SPEICHER01.sav'. EXECUTE. SELECT IF
(YEAR = 2000). EXECUTE. COMPUTE Fall = 1. EXECUTE. CREATE SUMFall =
CSUM(Fall). EXECUTE. CREATE SUMChild = CSUM(Kinder). EXECUTE. SORT
CASES BY SUMfall (D). SELECT IF ($casenum = 1). COMPUTE MEANChild =
SUMChild/SUMFall. EXECUTE. RENAME VARIABLES (MEANChild =
MEANChild2000). EXECUTE. SAVE OUTFILE='C:\Dokumente und
Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\SE_Komplexe_Daten\SPEICHER02.sav' / KEEP=
MEANChild2000. EXECUTE. /* HIER BEGINNT DAS MAKRO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Name des Macros: MACRO_Einfaches_Beispiel8; Fortsetzung nchste
Seite
Folie 118 0) & ($casenum > 1)) Id = Id + Lag(Id, 1).
EXECUTE. ADD FILES /FILE=* /FILE='SPEICHER01.sav'. EXECUTE. SAVE
OUTFILE= 'SPEICHER01.sav'. EXECUTE. !DOEND. !ENDDEFINE.
!Vervollstaendigen Liste = 'Daten-Mi-10.sav' 'Daten-Mi-11.sav'
'Daten-Mi-12.sav' 'Daten-Mi-13.sav' 'Daten-Mi-14.sav'
'Daten-Mi-15.sav' 'Daten-Mi-16.sav' 'Daten-Mi-17.sav'
'Daten-Mi-18.sav' 'Daten-Mo-01.sav' 'Daten-Mo-02.sav' /.">
131 /* Makro zum Ersetzen/Ausfllen der Id-Nummern /* SET
PRINTBACK=ON MPRINT=ON. CD 'C:\Dokumente und Einstellungen\Klaus
Mehl\Eigene Dateien\Daten\D_Zwei'. ERASE FILE = 'SPEICHER01.sav'.
DEFINE !Vervollstaendigen (LISTE = !CHAREND ('/')). !DO !Datei !IN
(!LISTE). GET FILE= !Datei. EXECUTE. RECODE ID (MISSING=0).
EXECUTE. IF ((Zeile > 0) & ($casenum > 1)) Id = Id +
Lag(Id, 1). EXECUTE. ADD FILES /FILE=* /FILE='SPEICHER01.sav'.
EXECUTE. SAVE OUTFILE= 'SPEICHER01.sav'. EXECUTE. !DOEND.
!ENDDEFINE. !Vervollstaendigen Liste = 'Daten-Mi-10.sav'
'Daten-Mi-11.sav' 'Daten-Mi-12.sav' 'Daten-Mi-13.sav'
'Daten-Mi-14.sav' 'Daten-Mi-15.sav' 'Daten-Mi-16.sav'
'Daten-Mi-17.sav' 'Daten-Mi-18.sav' 'Daten-Mo-01.sav'
'Daten-Mo-02.sav' /.
Folie 132
132 Anhand dieser Datei aller Bearbeitungen gilt es jetzt eine
Struktur wie die folgende zu erstellen: Spalte S_01, Zeile 1 des
ersten Testteilnehmers Spalte S_01, Zeile 1 des zweiten
Testteilnehmers Spalte S_01, Zeile 1 des letzten Testteilnehmers
Datei der Daten aller Bearbeitungen
Folie 133
133 Sind auf diese Art und Weise die Werte Zeile 1, Spalte S_01
zusammengestellt, gilt es die Werte 1 und 2 zu erfassen und
zusammenzuzhlen, etwa auf diesem Weg: S_01F_SR_SO_S 0..1 1.1. 0..1
21.. COUNT F_S = S_01 (2). EXECUTE. COUNT R_S = S_01 (1). EXECUTE.
COUNT O_S = S_01 (0). EXECUTE.
Folie 134
134 Um die Summe der F_S, R_S und O_S zusammenzuaddieren gibt
es wie immer verschiedene Wege. Zunchst mssen die Missing Values in
die Werte 0 umkodiert werden: RECODE F_S R_S O_S (MISSING=0).
EXECUTE. Dann kann mit dem Befehl: CREATE Fall = CSUM(Fall). CREATE
F_S = CSUM(F_S). CREATE R_S = CSUM(R_S). CREATE O_S = CSUM(O_S).
EXECUTE. oder
Folie 135
135 S_01F_SR_SO_S 0..1 1.1. 0..1 21.. Mit der Anweisung: IF
($casenum > 1) F_S = LAG(F_S, 1) + F_S. EXECUTE. gearbeitet
werden. Ihnen ist sicher das Aufaddieren einer Variablen Fall
aufgefallen die zuvor auf den Wert 1 gesetzt wurde. Diese Variable
dient dazu, die letzte Zeile in der Datei zu bestimmen, um den
Sortierbefehl richtig anwenden zu knnen. Dieser Befehl lautet:
Folie 136
136 SORT CASES BY Fall (D). SELECT IF ($casenum = 1). EXECUTE.
Mit der ersten Zeile werden die Werte von Fall absteigend (D)
sortiert, so dass die hchsten Werte alle in der ersten Zeile
stehen. Dann wird die erste Zeile ausgewhlt die anderen sind in
diesem Moment verschwunden! Die gewnschte Berechnung erfolgt durch
diesen Befehl: COMPUTE Proz_F = (100 * F_S) / (F_S + R_S). EXECUTE.
Damit haben wir den Prozentanteil der Fehler beim Bearbeiten der
ersten Zeile der Spalte S_01 berechnet.
Folie 137
137 Damit ist aber noch nicht das Ende erreicht. Um zu
markieren, welchen Wert wir jetzt berechnet haben, nennen wir die
Variable Proz_F um in die Variable ProzF_S_01 die Variable Proz_F
ist damit nicht mehr im Bestand der Datei!! Schlielich speichern
wir in einer Zwischendatei den berechneten Wert und werfen mit DROP
alle Variablen raus, die wir nicht bentigen: RENAME VARIABLES
(Proz_F = !CONCAT(ProzF_, !Spalte)). EXECUTE. MATCH FILES /FILE=*
/FILE='SPEICHER02.sav' /DROP = Id, Fall, R_S, O_S, F_S, !Spalte.
EXECUTE. SAVE OUTFILE='SPEICHER02.sav'. EXECUTE.
145 Aufgabe: Einlesen von *.log resp. *.txt Dateien Abspeichern
in *.sav Dateien Berechnung der Mittelwerte Hhe (MSL) bei berflug
eines Markers (Outer-Marker und Middle-Marker) Vergleich der
Mittelwerte bei Vpn. und Flgen [Vergleich Kaffee an bestimmten
Tagen, zu bestimmten Zeiten, zwischen bestimmten Zeiten] und dann:
Berechnung des hchsten MSL-Wertes und des niedrigsten MSL-Wertes
beim berflug OM + MM
Folie 146
146 Vorsicht! Es gibt auch Marker beim Abflug aus
Hamburg-Finkenwerder, die registriert werden. Also: Abschnitte
bestimmen, der relevant ist, bspw. mit Hilfe LAT/LON
(Positionsangaben), siehe Scatterplott.
Folie 147
147 CD 'C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\Komplexe Daten'. GET FILE =
'MEHL---EDHI23-EDDH15---90001.sav' /KEEP = M, MSL, AGL, LAT, LON,
vp, flug. EXECUTE. SELECT IF (M = 2 & LON > 9.87). EXECUTE.
Eine von vielen Vereinfachungsmglichkeiten: Da ein Dateibezug beim
Einlesen der Dateien oft sehr lang und umstndlich ist (siehe unsere
bisherigen Dateien), kann ein Programm sehr schnell unber-
sichtlich werden. Abhilfe (1): CD legt das aktuelle
Arbeitsverzeichnis fest, mit dem in allen weiteren Schritten
gearbeitet wird. Bei allen nachfolgenden Befehlen wird direkt auf
dieses Verzeichnis zugegriffen.
Folie 148
148 Eine weitere Mglichkeit (2): FILE HANDLE quelle01 /NAME =
'C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\Komplexe Daten\MEHL---EDHI23-EDDH15---90001.sav '.
GET FILE = quelle01 /KEEP = M, MSL, AGL, LAT, LON, vp, flug.
EXECUTE. SELECT IF (M = 2 & LON > 9.87). EXECUTE. . Mit dem
Befehl FILE HANDLE wird ein frei whlbarer Kurzname festgelegt, der
in allen folgenden Befehlen als Ersatzbezeichnung fr die
ursprngliche, vollstndige, lngere Angabe des Arbeits-
verzeichnisses und des Dateinamens genutzt werden kann.
Folie 149
149 Die folgenden Seiten zeigen zur bersicht und zum Vergleich
drei Berechnungsvarianten:
Folie 150
150 /* MACRO Berechnen_01_Einfach Berechnen von Mittel-Werten
innerhalb bestimmter Abschnitte mit Vereinfachungen CD
'C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\Komplexe Daten'. GET FILE =
'MEHL---EDHI23-EDDH15---90001.sav' /KEEP = M, MSL, AGL, LAT, LON,
vp, flug. EXECUTE. SELECT IF (M = 2 & LON > 9.87). EXECUTE.
COMPUTE Fall = 1. EXECUTE. CREATE SUMFall = CSUM(Fall). EXECUTE.
CREATE SUMMSL = CSUM(MSL). EXECUTE. SORT CASES BY SUMfall (D).
SELECT IF ($casenum = 1). COMPUTE MeanMSL = SUMMSL/SUMFall.
EXECUTE. SAVE OUTFILE='SPEICHER01.sav' /DROP = Fall, SUMFall,
SUMMSL, M, AGL, MSL, LAT, LON. EXECUTE. DEFINE !Berechnen1 (PLATZ =
!charend ('') ). GET FILE = !QUOTE(!PLATZ) /KEEP = M, MSL, AGL,
LAT, LON, vp, flug. EXECUTE. SELECT IF (M = 2 & LON > 9.87).
EXECUTE. - Nchste Seite - Variante Save: Daten werden zunchst
abgespeichert (erster Durchgang) um die Datei sicher nur mit den
errechneten Daten zu fllen. Erst danach beginnt das MACRO
Folie 151
151 - Fortsetzung - COMPUTE Fall = 1. EXECUTE. CREATE SUMFall =
CSUM(Fall). EXECUTE. CREATE SUMMSL = CSUM(MSL). EXECUTE. SORT CASES
BY SUMfall (D). SELECT IF ($casenum = 1). COMPUTE MeanMSL =
SUMMSL/SUMFall. EXECUTE. ADD FILES /FILE=* /FILE= 'SPEICHER01.sav'
/DROP = Fall, SUMFall, SUMMSL, M, AGL, MSL, LAT, LON. EXECUTE. SAVE
OUTFILE='SPEICHER01.sav'. EXECUTE. !ENDDEFINE. !Berechnen1 PLATZ =
MEHL---EDHI23-EDDH15---90002.sav . !Berechnen1 PLATZ =
MEHL---EDHI23-EDDH15---90003.sav . !Berechnen1 PLATZ =
GPEL---EDHI23-EDDH15---01.sav . !Berechnen1 PLATZ =
GPEL---EDHI23-EDDH15---02.sav . !Berechnen1 PLATZ =
GRN---EDHI23-EDDH15---01.sav .
Folie 152
152 /* MACRO Berechnen_02_ mit Fehler!!!! Berechnen von
Mittel-Werten innerhalb bestimmter Abschnitte mit Vereinfachungen
SET PRINTBACK=ON MPRINT=ON. DEFINE !Berechnen1 (PLATZ = !CHAREND
('')/ LISTE1 = !charend ('')/LISTE2 = !charend ('') ). CD
'C:\Dokumente und Einstellungen\Klaus Mehl\Eigene
Dateien\Daten\Komplexe Daten'. !DO !ORT !IN (!PLATZ). !DO !MARKER
!IN (!LISTE1). GET FILE = !ORT /KEEP = M, MSL, AGL, LAT, LON, vp,
flug. EXECUTE. SELECT IF (M = !MARKER & LON > 9.87).
EXECUTE. COMPUTE Fall = 1. EXECUTE. CREATE SUMFall = CSUM(Fall).
EXECUTE. CREATE SUMMSL = CSUM(MSL). EXECUTE. SORT CASES BY SUMFall
(D). SELECT IF ($casenum = 1). COMPUTE MeanMSL = SUMMSL/SUMFall.
EXECUTE. RENAME VARIABLES (MeanMSL = !CONCAT(MEAN_, !MARKER)).
EXECUTE. ADD FILES /FILE=* /FILE= 'SPEICHER01.sav' /DROP = Fall,
SUMFall, SUMMSL, M, AGL, MSL, LAT, LON. EXECUTE. SAVE OUTFILE =
'SPEICHER01.sav'. EXECUTE. !DOEND. !ENDDEFINE. !Berechnen1 PLATZ =
'MEHL---EDHI23-EDDH15---90001.sav'
'MEHL---EDHI23-EDDH15---90002.sav'
'MEHL---EDHI23-EDDH15---90003.sav' 'GPEL---EDHI23-EDDH15---01.sav'
'GPEL---EDHI23-EDDH15---02.sav' 'GRN---EDHI23-EDDH15---01.sav'
LISTE1 = 2 3 LISTE2 = OUTERMARKER MIDDLEMARKER . Variante Unsave
(zudem mit Fehler): MACRO beginnt sofort, Probleme entstehen, wenn
Datei fr Speicher bereits besteht und mglicherweise Daten enthlt,
da dann diese dort noch vorhandenen Daten mit aufgenommen werden.
Also Vorsicht!!! Zuvor Dateien lschen!!
Folie 153
153 /* MACRO Berechnen_02_Ohne Fehler von Mittel-Werten
innerhalb bestimmter Abschnitte mit Vereinfachungen /* ACHTUNG!
ACHTUNG! ACHTUNG! /* (1) Die Dateien Speicher01 und Speicher02
drfen zu Beginn nicht vorhanden sein!!! /* (2) Die ausgewhlten
Bereiche mssen vorhanden sein, sonst doppelte Werte!!! /*SET
PRINTBACK=ON MPRINT=ON. DEFINE !Berechnen1 (PLATZ = !CHAREND ('')/
LISTE1 = !charend ('')/LISTE2 = !charend ('') ). CD 'C:\Dokumente
und Einstellungen\Klaus Mehl\Eigene Dateien\Daten\Komplexe Daten'.
!DO !ORT !IN (!PLATZ). !DO !MARKER !IN (!LISTE1). GET FILE = !ORT
/KEEP = M, MSL, AGL, LAT, LON, vp, flug. EXECUTE. SELECT IF (M =
!MARKER & LON > 9.87). EXECUTE. COMPUTE Fall = 1. EXECUTE. -
Nchste Seite - Variante Unsave (diesmal ohne Fehler): MACRO beginnt
sofort, Probleme entstehen, wenn Datei fr Speicher bereits besteht
und mglicherweise Daten enthlt, da dann diese dort noch vorhandenen
Daten mit aufgenommen werden. Also Vorsicht!!! Zuvor Dateien
lschen!!
155 Ein wichtiges Problem, dass unbedingt Beachtung bentigt,
kann entstehen, wenn aufgrund nicht vorhandener Daten keine
Berechnungen durchgefhrt werden knnen, zugleich durch den
MATCH-Befehl, in Kombination mit den SAVE-Befehl die
Zwischenspeicherdatei aber belegt werden soll. Es wird dann a)
keine Berechnung durchgefhrt, weil keine Daten vorhanden sind b)
die in der Speicherdatei gelisteten Werte werden erneut gespeichert
und schlielich c) durch den ADD-Befehl als vermeintliche Berechnung
des neuen Falles abgespeichert. Was ist zu tun? Wichtig ist die
Prfung auf vorhandene Daten in der jeweiligen Datei, bspw. durch
den Befehl: FREQUENCIES VARIABLES=M /STATISTICS=SUM /ORDER=
ANALYSIS. der zuverlssig die Anzahl der Werte (hier die der
Variable M) zhlt.
Folie 156
156 Eine andere Option ist die folgende: COMPUTE Fall = 0.
EXECUTE. IF (M = 2) Fall = 1. EXECUTE. CREATE SUMFall = CSUM(Fall).
SORT CASES BY SUMFall (D). SELECT IF ($casenum = 1). EXECUTE. Hier
passiert folgendes: Die Variable FALL, mit der die Anzahl
vorhandener Werte gezhlt werden soll, wird zunchst auf 0 gesetzt.
D.h. wenn die aufgerufene Datei berhaupt vorhanden ist, gibt es so
immer eine Variable mit den Werten 0. Jetzt wird durch IF (M=2)
FALL = 1. fr die Flle, bei denen die zu zhlende Variable den Wert 2
aufweist, der Wert der Variable FALL auf 1 gesetzt und kann dann im
nchsten Schritt gezhlt werden. Wenn kein Wert 2 der Variablen M
vorhanden ist, ergibt sich beim Zusammenzhlen 0. Wrde man hier mit
SELECT IF (M=2). arbeiten, konnten keine Berechnungen vorgenommen
werden, wenn der Wert M=2 im Datensatz nicht vorhanden ist.
Folie 157
157 Was den Ort des COMPUTE Fall = 0. angeht, so muss er
unbedingt vor jedem SELECT IF eingefgt werden, um seine eben
beschriebene Funktionalitt erfllen zu knnen. Ersichtlich ist die
eben besprochene Gefahr dadurch, dass in hintereinander liegenden
Fllen exakt die selben Werte stehen. Wenn Sie so etwas bemerken:
Kontrollieren!
Folie 158
158 Bitte beherzigen Sie den zentralen Leit- und Merksatz:
Garbage in, Garbage out
Folie 159
159 Transformation Data Mining Interpretation Vorbereitete
Daten Transformierte Daten Muster Wissen/ Modelle Wie geht
Erkenntnisgewinn? Ein erster, flchtiger Blick
177 Aufbau der Datenmatrix, um einen Kausalbaum, eine
Kreuztabelle zu erstellen: V1V1 V2V2 V3V3 V4V4 V5V5 V6V6
Person/BedingungV gut_schlecht 345232234336767787AG 564887236454 BG
345665897454CS 789123567DS 345459456EG 234981345FS 234438341GG
657345656HS 447IS
Folie 178
178 Aufbau der Datenmatrix, um eine Korrelationsanalyse zu
erstellen: V1V1 V2V2 V 3: Gefahrene Kilometer V 4: Gartengre V 5:
Wohnraum V 6: Gehalt 345232234336767787 564887236454 345665897454
789123567 345459456 234981345 234438341 657345656 447
Folie 179
179 Zwei, von vielen Problemen: Feature Choise Overfitting,
Underfitting
Folie 180
180 Zwei, von vielen Problemen: Feature Choise Overfitting,
Underfitting
Folie 181
181 a b Kategoriale Splits < 0,5 > 0,5 < 0,5> 0,5,
< 1,8> 1,8 Bivariate Splits Multivariate Splits
Folie 182
182 Datenauf- bereitung Analyse und Modellbildung
EvaluationAnwendung berwachung Definition der Aufgabenstellung
Phasen des Data Mining
186 Disagreement table for observed variable (Compute Best
Predicted Classification from all Models) Observed variable:
Kreditwrdigkeit PMML_GDA3 Pred for Kreditwrdig- keit - % Incorrect
PMML_CTree s4Pred for Kreditwrdig- keit - % Incorrect PMML_CCHA
ID5Pred for Kreditwrdig- keit - % Incorrect VotedPredicti on for
Kreditwrdig- keit - % Incorrect Nein 8,4040115,111809,1750211,71935
Ja21,5035011,8007024,8251717,91958
Folie 187
187
Folie 188
188
Folie 189
189 Disagreement table for observed variable (Compute Best
Predicted Classification from all Models) Observed variable:
Kreditwrdigkeit PMML_GDA3 Pred for Kreditwrdig- keit - % Incorrect
PMML_CTree s4Pred for Kreditwrdig- keit - % Incorrect PMML_CCHA
ID5Pred for Kreditwrdig- keit - % Incorrect VotedPredicti on for
Kreditwrdig- keit - % Incorrect Nein 8,4040115,111809,1750211,71935
Ja21,5035011,8007024,8251717,91958
Folie 190
190
Folie 191
191
Folie 192
192 Auf den folgenden Folien wird exemplarisch (bitte nicht
blind als Rezept fr alle anderen Vorgehensweisen benutzen!!) eine
Analyse anhand der Daten Speicher02.por Schritt fr Schritt in einer
von vielen mglichen Varianten vorgefhrt. Dabei werden die (relativ)
wenigen Daten durch ein sog. Stratified Random Sampling auf jeweils
annhrend 50 Flle fr die Variable gut/schlecht durch mehrfaches
Ziehen aus dem Datensatz aufgestockt. Danach wird der Datensatz zu
jeweils 50% in einen Teil fr das Training der Modelle und in einen
zur Validierung unter- teilt. Nach der Berechnung eines
Klassifikationsbaumes (es knnten in derselben Manier x-weitere
berechnet werden) erfolgt eine Bewertung des (hier nur einen)
Modells.
Folie 193
193 So sieht als ein Beispiel die zu generierende
Workflow-Oberflche aus. Die Daten sind im Knoten ganz links und
mssen hinsichtlich abhngiger und unabhngiger (numerischer oder
kategorialer) Variablen zugeordnet werden. Teilergebnis auf Folien
162 und 164 Teilergebnis auf Folien 163
Folie 194
194 In diesem Knoten werden fr das Sampling jeweils 50 Flle
festgelegt.
Folie 195
195 Wollen Sie sich das Resultat an dem Daten-Zwischen-Knoten
anschauen, so mssen Sie bspw. wie hier gezeigt ein Balkendiagramm
mit Hilfe des entsprechenden Knotens aus dem Node Browser
einfgen.
Folie 196
196
Folie 197
197
Folie 198
198 Mit Hilfe dieses Knotens wird der Sampling-Datensatz zu
jeweils 50%/50% in einen Datensatz fr das Training des
Klassifikators und in einen fr die Validierung unterteilt.
Alternativ lsst sich auch die Anzahl der Flle angeben.
Folie 199
199 Wichtig ist hier, die bereits durch den
Training/Testing-Knoten festgelegte, Spezifikation dieses
Datensatzes als for deployed project!!!!. Sollte Sie in anderen
Fllen, unter einem anderen Projektaufbau keinen Knoten
Test/Training verwenden, dann mssen Sie vor einer Aktivierung einer
Bewertung diese kleine Box markieren!!