These sample files and code examples are provided by CFG Schendera c/o Method Consult „as is“ without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. Recipients acknowledge and agree that CFG Schendera c/o Method Consult shall not be liable for any damages whatsoever arising out of their use of this material. In addition, CFG Schendera c/o Method Consult will provide no support for the materials contained herein.
Kunde: | IT.NRW, Statistisches Landesamt (IT.NRW), Düsseldorf, Bundesregierung |
Rolle: |
SAS Statistical Programer, Statistical Analyst. |
Zeitraum: | November 2012 – Januar 2013 |
Umgebung: | Komplex. Front-End: Enterprise Guide v4, Back-End: SAS 9.2 über CITRIX bzw. Server direkt. Details unten. |
Daten-volumen: | Datasets: SAS Datasets (z.T. ORACLE, z.T Teradata), N: 100.000+. Größe: z.B. 250+ GB. Datenvolumen: 5,5+ Milliarden Datenzeilen (Hauptanwendung). |
Sprachen: | SAS Macro Facility, SAS Base, PROC IML, SAS Hash Programming, PROC SQL, sowie die SAS PROCs MEANS, TABULATE und GRAPH. |
Aufgabe und Erfolge
Anpassung der Zellen an hochgerechnete Ränder für 1.440 Gemeinden in 65 Modellvarianten (Volumen: 5,5 Milliarden Datenzeilen), Visualisierung von insgesamt 93.600 Modellen und dem Mehrfachen an Goodness of Fit-Parametern. Das weitere Vorgehen folgt Bishop, Fienberg und Holland (2007): Modell-Vorauswahl durch Abgleich der geschätzten Tabelle mit Referenztabelle anhand AIC, Pearson Chi2 und Log-Likelihood für die log-linearen Modelle 1 bis 65. Modell-Feinauswahl anhand minimaler Abweichung (Devianz) der vor-ausgewählten Modelle von den Zellbesetzungen der Referenztabelle (Kombinatorik aus Alter, Nationalität, Familienstand und Geschlecht), zusätzlich unter Berücksichtigung der Gemeindegröße zum Ausschluss von Schätzfehlern und ggf. disproportionale Zellhäufigkeiten. Eine Besonderheit dieser Anwendung ist, dass sie zahlreiche Funktionalitäten in ein einzelnes ETL Modul zusammenfasst, das als SAS Makro unüberwacht als Stored Process ausgeführt werden kann. Die SAS Admins der IT.NRW beurteilten dieses Makro gerade angesichts der hohen Datenlast als sehr performant. Dieses ETL Modul ist in der Tiefe ausgesprochen komplex und besteht im Wesentlichen aus zwei inhaltlich funktional disparaten Phasen: Die erste Phase liefert u.a. iterativ über PROC IML (CALL IPF) für jede Gemeinde für jedes der 65 Modelle die Datentabellen, die zweite Phase berechnet dafür gleichermaßen iterativ u.a. Goodness of Fit-Tests, deren essentiellen Parameter formatiert und als zentrale SAS Datasets aggregiert werden. Darüber hinaus legt dieses Makro u.a. Kriterien zur (nicht) erfolgreichen Konvergenz (u.a. Chi2, maximale Differenz, N Iterationen), sowie voreingestellte Stoppkriterien (maximale Differenz, maximale Iterationen) in eine separate SAS Datei ab. Das Modul mit dem Schwerpunkt Analyse führt neben den Goodness of Fit- auch Devianz-Werte in intuitiv interpretierbare Visualisierungen über. Ein „Cockpit“ mit diversen „Schaltern“ erlaubt dabei die gewünschte Visualisierung festzulegen, wie auch den Input (Gemeinden, Bundesländer, alle) unterschiedlich fein einzustellen.
Details
Programmiersprachen: SAS Macro Facility, darin SAS Base, PROC IML, SAS Hash Programming, PROC SQL, sowie die SAS Prozeduren MEANS, TABULATE und GRAPH. Länge der beiden SAS Programme für die Hauptanwendung in DIN A4 Seiten: 60 (ETL: 40, Analyse: 20); darin u.a. mehrfach genestete Loops. Programmausführung: Hauptanwendung als SAS Stored Process direkt auf dem Server, Entwicklung und Test auf CITRIX. Laufzeiten: z.B. 96 (sechsundneunzig) Stunden (Hauptanwendung), auf 4 Kerne verteilt. Referenz ausweisbar.