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

Embed Size (px)

Citation preview

  • Folie 1
  • 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!!
  • Folie 12
  • 12 Zweiter Schritt: Unterteilungen vornehmen, Bewertungen vornehmen
  • Folie 13
  • 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
  • Folie 18
  • 18 Fisher (1936) Irisdaten: Lnge und Breite von Blttern und Kelchen fr 3 Iristypen KelchlngeKelchbreiteBlattlngeBlattbreiteIristyp 153,31,40,2Setosa 26,42,85,62,2Virginic 36,52,84,61,5Versicol 46,73,15,62,4Virginic 56,32,85,11,5Virginic 64,63,41,40,3Setosa 76,93,15,12,3Virginic 86,22,24,51,5Versicol 95,93,24,81,8Versicol 104,63,610,2Setosa 116,134,61,4Versicol 1262,75,11,6Versicol 136,535,22Virginic 145,62,53,91,1Versicol 156,535,51,8Virginic 165,82,75,11,9Virginic 176,83,25,92,3Virginic 185,13,31,70,5Setosa 195,72,84,51,3Versicol 206,23,45,42,3Virginic 217,73,86,72,2Virginic 226,33,34,71,6Versicol 236,73,35,72,5Virginic 247,636,62,1Virginic 254,92,54,51,7Virginic
  • Folie 19
  • 19 Kategoriale Werte (gut/schlecht) Metrische Werte (1, 2, 3, 4,..) [Nominale, Ordinale Werte] Split: Welche Variable trennt am besten bei welchem Wert? CART (classification and regression trees)
  • Folie 20
  • 20
  • Folie 21
  • 21
  • Folie 22
  • 22
  • Folie 23
  • 23
  • Folie 24
  • 24
  • Folie 25
  • 25
  • Folie 26
  • 26
  • Folie 27
  • 27
  • Folie 28
  • 28
  • Folie 29
  • 29
  • Folie 30
  • 30
  • Folie 31
  • 31 Fehlklassifikationsmatrix Lernstichprobe (Irisdat) Matrix progn. (Zeile) x beob. (Spalte) Lernstichprobe N = 150 Klasse - SetosaKlasse - VersicolKlasse - Virginic Setosa00 Versicol04 Virginic02 Prognost. Klasse x Beob. Klasse n's (Irisdat) Matrix progn. (Zeile) x beob. (Spalte) Lernstichprobe N = 150 Klasse - SetosaKlasse - VersicolKlasse - Virginic Setosa5000 Versicol0484 Virginic0246
  • Folie 32
  • 32 Split-Bedingung (Irisdat) Split-Bedingung je Knoten Split - Konst.Split - Variable 1-2,09578Blattlnge 2 3-1,64421Blattbreite
  • Folie 33
  • 33
  • Folie 34
  • 34
  • Folie 35
  • 35
  • Folie 36
  • 36
  • Folie 37
  • 37
  • Folie 38
  • 38 Daten teilen Trainings- daten Validierungs- daten Modell- bewertung
  • Folie 39
  • 39 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 40
  • 40
  • Folie 41
  • 41
  • Folie 42
  • 42 Eine Alternative: ROC Kurven (Receiver Operating Characteristic) Sensitivitt t = Richtig Positive Richtig Positive + Falsch Negative Spezifitt = Richtig Negative Richtig Negative + Falsch Positive
  • Folie 43
  • 43 Prediktor Kriterium richtig positiven falsch positiven falsch negative richtig negative angenommenabgelehnt erfolgreich nicht-erfolgreich 50
  • Folie 44
  • 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.
  • Folie 138
  • 138
  • Folie 139
  • 139
  • Folie 140
  • 140
  • Folie 141
  • 141
  • Folie 142
  • 142
  • Folie 143
  • 143
  • Folie 144
  • 144 Variablen: Marker = M: Outermarker = 2; Middlemarker = 3 Hhe = MSL (Mean Sea Level) oder AGL = (Above Ground Level)
  • Folie 145
  • 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!!
  • Folie 154
  • 154 - Fortsetzung - 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. MATCH FILES /FILE=* /FILE= 'SPEICHER01.sav' /DROP = Fall, SUMFall, SUMMSL, M, AGL, MSL, LAT, LON. EXECUTE. SAVE OUTFILE = 'SPEICHER01.sav'. EXECUTE. !DOEND. ADD FILES /FILE=* /FILE= 'SPEICHER02.sav'. EXECUTE. SAVE OUTFILE = 'SPEICHER02.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 = 3 2 LISTE2 = OUTERMARKER MIDDLEMARKER .
  • Folie 155
  • 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
  • Folie 160
  • 160 Fisher (1936) Irisdaten: Lnge und Breite von Blttern und Kelchen fr 3 Iristypen KelchlngeKelchbreiteBlattlngeBlattbreiteIristyp 153,31,40,2Setosa 26,42,85,62,2Virginic 36,52,84,61,5Versicol 46,73,15,62,4Virginic 56,32,85,11,5Virginic 64,63,41,40,3Setosa 76,93,15,12,3Virginic 86,22,24,51,5Versicol 95,93,24,81,8Versicol 104,63,610,2Setosa 116,134,61,4Versicol 1262,75,11,6Versicol 136,535,22Virginic 145,62,53,91,1Versicol 156,535,51,8Virginic 165,82,75,11,9Virginic 176,83,25,92,3Virginic 185,13,31,70,5Setosa 195,72,84,51,3Versicol 206,23,45,42,3Virginic 217,73,86,72,2Virginic 226,33,34,71,6Versicol 236,73,35,72,5Virginic 247,636,62,1Virginic 254,92,54,51,7Virginic
  • Folie 161
  • 161 Kategoriale Werte (gut/schlecht) Metrische Werte (1, 2, 3, 4,..) [Nominale, Ordinale Werte] Split: Welche Variable trennt am besten bei welchem Wert? CART (classification and regression trees)
  • Folie 162
  • 162
  • Folie 163
  • 163
  • Folie 164
  • 164
  • Folie 165
  • 165
  • Folie 166
  • 166
  • Folie 167
  • 167
  • Folie 168
  • 168
  • Folie 169
  • 169
  • Folie 170
  • 170
  • Folie 171
  • 171
  • Folie 172
  • 172 Fehlklassifikationsmatrix Lernstichprobe (Irisdat) Matrix progn. (Zeile) x beob. (Spalte) Lernstichprobe N = 150 Klasse - SetosaKlasse - VersicolKlasse - Virginic Setosa00 Versicol04 Virginic02 Prognost. Klasse x Beob. Klasse n's (Irisdat) Matrix progn. (Zeile) x beob. (Spalte) Lernstichprobe N = 150 Klasse - SetosaKlasse - VersicolKlasse - Virginic Setosa5000 Versicol0484 Virginic0246
  • Folie 173
  • 173 Split-Bedingung (Irisdat) Split-Bedingung je Knoten Split - Konst.Split - Variable 1-2,09578Blattlnge 2 3-1,64421Blattbreite
  • Folie 174
  • 174
  • Folie 175
  • 175
  • Folie 176
  • 176
  • Folie 177
  • 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
  • Folie 183
  • 183
  • Folie 184
  • 184
  • Folie 185
  • 185 Daten teilen Trainings- daten Validierungs- daten Modell- bewertung
  • Folie 186
  • 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!!
  • Folie 200
  • 200
  • Folie 201
  • 201
  • Folie 202
  • 202
  • Folie 203
  • 203
  • Folie 204
  • 204
  • Folie 205
  • 205
  • Folie 206
  • 206 Hinweise, Verweise, Datenquellen: http://www.diw.de/deutsch/sop/index.html (daten des socio-economic panel)http://www.diw.de/deutsch/sop/index.html http://stats.oecd.org/wbos (Bildungsdaten, bspw. PISA Daten)http://stats.oecd.org/wbos StatSoft.deStatSoft.com SPSS.deSPSS.com