Datenanalyse mit SAS
Walter Kråmer Olaf Schoffer Lars Tschiersch
Datenanalyse mit SAS Statistische Verfahren und ihre grafischen Aspekte
Mit 128 Abbildungen und 68 Tabellen
12
Prof. Dr. Walter Kråmer Dr. Olaf Schoffer Dr. Lars Tschiersch Fachbereich Statistik Universitåt Dortmund Vogelpothsweg 87 44221 Dortmund
[email protected] [email protected] [email protected] ISBN 3-540-20787-2 Springer Berlin Heidelberg New York Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet çber abrufbar. Dieses Werk ist urheberrechtlich geschçtzt. Die dadurch begrçndeten Rechte, insbesondere die der Ûbersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfåltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfåltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulåssig. Sie ist grundsåtzlich vergçtungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. Springer. Ein Unternehmen von Springer Science+Business Media springer.de ° Springer-Verlag Berlin Heidelberg 2005 Printed in Germany Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wåren und daher von jedermann benutzt werden dçrften. SPIN 10980422
42/3130/DK-5 4 3 2 1 0 ± Gedruckt auf såurefreiem Papier
Vorwort
Dieses Buch entstand aus der Vorlesung Statistik mit SAS“, die zwei von ” uns – Lars Tschiersch und Olaf Schoffer – mehrfach am Fachbereich Statistik der Universit¨ at Dortmund gehalten haben. Anders als die Vorlesung wendet sich dieses Buch aber vor allem an Praktiker, die mittels des Programmpakets SAS selbst umfangreiche Datenbest¨ ande analysieren wollen und setzt nur die wichtigsten statistischen Verfahren und Begriffe als bekannt voraus. Wir stellen die Datenanalyse vom Einlesen der Rohdaten bis hin zur Interpretation der Ergebnisse vor und betten die dabei verwendeten Verfahren in ihren statistischen Hintergrund ein. Dies soll Ihnen helfen, bekannte Fallstricke zu umgehen und das jeweils geeignete Verfahren anzuwenden. Die Datenaufbereitung als Grundlage einer jeden Datenanalyse nimmt oft den Großteil der Arbeit von Datenanalytikern ein. So legen wir großen Wert darauf, das Einlesen, Zusammenf¨ ugen, Bearbeiten usw. von Daten ausf¨ uhrlich anhand von vielen Beispielen zu erl¨ autern. Ein weiterer Schwerpunkt ist der Einsatz von Grafiken zur bildlichen Erfassung statistischer Zusammenh¨ange und als Interpretationshilfe. SAS hat einen beeindruckenden Funktionsumfang. Die Originaldokumentation der wichtigsten Module umfasst u ¨ber 30 000 gedruckte DIN-A4-Seiten. Bei der Auswahl der im Detail vorgestellten Verfahren ber¨ ucksichtigen wir sowohl etablierte als auch moderne Methoden, k¨onnen aber nat¨ urlich nicht die ganze Bandbreite der modernen Statistik abdecken. Jedoch sollte jeder Anwender, der die in Teil I vorgestellten Syntax-Regeln und das SAS-Hilfesystem beherrscht, auch mit solchen Verfahren arbeiten k¨onnen, die nicht explizit vorgestellt werden. Aufbauend auf der Text- und Grafikausgabe in Teil II sowie den Grundlagen der Statistik in Teil III stellt der Teil IV eine breites Spektrum statistischer Verfahren vor. Daneben erm¨ oglichen die in Teil V vorgestellten Werkzeuge fortgeschrittenen Anwendern, auch eigene Verfahren selbst zu programmieren. Mit diesem Buch lernen Sie interessante Winkel des SAS-Programmpakets kennen und k¨ onnen diese anschließend f¨ ur Ihre Zwecke nutzen. Eine Viel-
VI
Vorwort
¨ zahl von Beispielen und Ubungsaufgaben mit L¨osungshinweisen im Anhang laden zum Ausprobieren der zuvor vorgestellten statistischen Verfahren ein. Die dabei ben¨ otigten Datens¨ atze und SAS-Programme finden Sie unter http://www.statistik.uni-dortmund.de/˜sas/ . Bei der Entstehung dieses Buches haben zahlreiche weitere Personen mitgewirkt: Matthias Arnold bei der Texterstellung, Claudia Reimpell und Michaela Schoffer beim Korrekturlesen, Joachim Gerß und Andreas Christmann bei der Konzeption unserer Vorlesung, aus der dieses Buch entstand, die vielen H¨orer der Vorlesung, die uns durch ihre Kritik und Anregungen sehr geholfen haben, Michael Barowski mit seiner Spezialkenntnis des DATA-Step sowie Uwe Ligges und Karsten Webel mit technischen und logistischen Hilfestellungen vielf¨altiger Art. Wir danken allen diesen Helfern herzlich f¨ ur die Unterst¨ utzung und nehmen die Verantwortung f¨ ur verbleibende Fehler und Unklarheiten gern auf uns.
Dortmund, Juni 2004
Walter Kr¨amer Olaf Schoffer Lars Tschiersch
Inhaltsverzeichnis
Teil I Einf¨ uhrung in die Benutzung von SAS 1
Grundlagen des Umgangs mit SAS . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Der modulare Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Die SAS-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Tastenkombinationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Struktur und Syntax von SAS-Programmen . . . . . . . . . . . . . . . . .
2
Das Hilfesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1 SAS System Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 SAS OnlineDoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3
Der 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11
DATA-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struktur im DATA-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein Datensatz in SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erzeugen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erzeugen von Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einlesen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einlesen externer Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtern und Transformieren von Daten . . . . . . . . . . . . . . . . . . . . . Das Verkn¨ upfen von Datens¨ atzen . . . . . . . . . . . . . . . . . . . . . . . . . . Prozeduren zum Datenimport und -export . . . . . . . . . . . . . . . . . . Datenbankzugriffe mit PROC SQL . . . . . . . . . . . . . . . . . . . . . . . . ¨ Ubungsaufgaben ........................................
3 3 4 6 7
13 13 14 17 20 22 26 30 43 53 56 58
VIII
4
Inhaltsverzeichnis
Der 4.1 4.2 4.3 4.4 4.5
PROC-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struktur im PROC-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optionen im PROC-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anweisungen im PROC-Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hilfsprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anweisungen außerhalb von DATA- und PROC-Step . . . . . . . . .
61 61 62 63 65 75
Teil II Pr¨ asentation und Aufbereitung von Ergebnissen Aufbereiten von Textausgaben . . . . . . . . . . . . . . . . . . . . . . . . Textausgabeoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Prozeduren TABULATE und REPORT . . . . . . . . . . . . . . . . . Das Output-Delivery-System (ODS) . . . . . . . . . . . . . . . . . . . . . . . ¨ Ubungsaufgaben ........................................
79 79 80 86 92
5
Das 5.1 5.2 5.3 5.4
6
Grafiken in SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.1 Zweidimensionale Darstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.2 Dreidimensionale Darstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.3 Kartogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.4 Individuelles Anpassen von Grafiken . . . . . . . . . . . . . . . . . . . . . . . 112 6.5 Hinweise zur besseren Grafikgestaltung . . . . . . . . . . . . . . . . . . . . . 123 6.6 Allgemeine Grafikoptionen und der Grafikexport . . . . . . . . . . . . 124 ¨ 6.7 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Teil III Grundlagen der Statistik 7
Standardverfahren der beschreibenden Statistik . . . . . . . . . . . 131 7.1 Mittelwerte und Streuungsmaße . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.2 Zusammenhangsmaße und Kontingenztafeln . . . . . . . . . . . . . . . . 136 7.3 Diagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7.4 Berechnung von Quantilen und der Box-Plot . . . . . . . . . . . . . . . . 143 7.5 Die empirische Verteilungsfunktion und QQ-Plots . . . . . . . . . . . 147 ¨ 7.6 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
8
Standardverfahren der schließenden Statistik . . . . . . . . . . . . . . 155 8.1 Grundbegriffe der mathematischen Statistik . . . . . . . . . . . . . . . . . 155 8.2 Punkt- und Intervallsch¨ atzungen . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Inhaltsverzeichnis
IX
8.3 Signifikanztests f¨ ur einzelne Parameter . . . . . . . . . . . . . . . . . . . . . 164 ¨ 8.4 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9
Regressionsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.1 Das lineare Regressionsmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.2 Residualanalyse und ihre Veranschaulichung . . . . . . . . . . . . . . . . 186 ¨ 9.3 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Teil IV Spezialgebiete und Anwendungen 10 Varianzanalyse und Versuchsplanung . . . . . . . . . . . . . . . . . . . . . . 195 10.1 Varianzanalyse - Einfachklassifikation . . . . . . . . . . . . . . . . . . . . . . 195 10.2 Varianzanalyse - Zweifachklassifikation . . . . . . . . . . . . . . . . . . . . . 205 10.3 Planung des Stichprobenumfangs . . . . . . . . . . . . . . . . . . . . . . . . . . 211 10.4 Ausgew¨ ahlte Versuchspl¨ ane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 ¨ 10.5 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 11 Nichtparametrische Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 11.1 Ordnungsstatistiken und R¨ ange . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 11.2 Verteilungsfreie Signifikanztests . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 11.3 Nichtparametrische Dichtesch¨ atzung . . . . . . . . . . . . . . . . . . . . . . . 235 ¨ 11.4 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 12 Multivariate Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 12.1 Multivariate Kennzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 12.2 Faktoren- und Hauptkomponentenanalyse . . . . . . . . . . . . . . . . . . 246 12.3 Clusteranalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 ¨ 12.4 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 13 Zeitreihenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 13.1 Trend- und Saisonbereinigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 13.2 Naive Prognoseverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 13.3 Modellgest¨ utzte Prognoseverfahren . . . . . . . . . . . . . . . . . . . . . . . . 271 13.4 Analyse im Frequenzbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 13.5 ARCH- und GARCH-Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 ¨ 13.6 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
X
Inhaltsverzeichnis
¨ 14 Okonometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 14.1 Simultane Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 14.2 Nichtlineare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 14.3 Regression mit qualitativen abh¨ angigen Variablen . . . . . . . . . . . 297 ¨ 14.4 Ubungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Teil V Besonderheiten von SAS 15 Interactive Matrix Language – IML . . . . . . . . . . . . . . . . . . . . . . . 305 15.1 Erzeugen von Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 15.2 Rechnen mit Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 15.3 Funktionen in IML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 15.4 Verwendung von SAS-Datens¨ atzen . . . . . . . . . . . . . . . . . . . . . . . . . 314 15.5 Grafik in IML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 16 Makroprogrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 16.1 Struktur von Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 16.2 Makrovariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 16.3 Makrobefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 16.4 Verwalten von Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 17 Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 17.1 Interactive Data Analysis (Insight) . . . . . . . . . . . . . . . . . . . . . . . . 335 17.2 Analyst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 17.3 Enterprise Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 17.4 ASSIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 17.5 Full Screen Processing (FSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Anhang A
L¨ osungshinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
B
Spezielle Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
C
Formate und Informate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 Sachverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Teil I
Einfu ¨hrung in die Benutzung von SAS
1 Grundlagen des Umgangs mit SAS
Das SAS-System ist ein umfangreiches, eigenst¨andiges, statistisches Programmpaket. Es arbeitet auf Großrechnern und PCs unter Betriebssystemen wie UNIX, LINUX, MAC OS oder Windows. Dieses Buch legt die WindowsVersion zugrunde, aber der Großteil der hier vorgestellten Syntax ist auch unter anderen Betriebssystemen anwendbar. Entwickelt wurde SAS als Statistical Analysis System“ vor u ¨ ber 30 Jah” ren an der North Carolina State University in den USA unter dem geistigen Vater James H. Goodnight, der dort Professor f¨ ur Statistik war. 1976 gr¨ undete Goodnight das SAS Institute Inc. in Cary, N.C. Mit u ber 7000 Mitarbeitern ¨ weltweit, davon 2500 in Europa und mehr als drei Millionen Nutzern geh¨ort es zu den f¨ unf gr¨ oßten unabh¨ angigen Softwareherstellern der Welt. Zun¨ achst als reines Statistik-Paket in Assembler und PL/I f¨ ur Großrechner konzipiert, hat sich SAS heute zu einem umfassenden Data Warehousing“ ” und Business Intelligence“ System ausgeweitet. F¨ ur Windows ist inzwischen ” die Version 9 verf¨ ugbar. Gebr¨ auchlicher ist aber immer noch die Version 8.2, die auch diesem Buch zugrunde liegt. Notwendig zum Verst¨andnis sind dabei Grundkenntnisse des Betriebssystems sowie die Grundlagen der Datenspeicherung und elementare Statistik-Kenntnisse.
1.1 Der modulare Aufbau Das Programmpaket SAS ist modular. Neben einem unverzichtbaren, minimalen Grundsystem gibt es weitere Module, die das Grundsystem erg¨anzen. Dieses umfasst die Module SAS/BASE, SAS/CORE und SAS/STAT und erlaubt das Einlesen, Ver¨ andern und Analysieren von Dateien. Alle Module haben eine gemeinsame Befehlssyntax, abgesehen von der in SAS/BASE enthaltenen Makro-Programmiersprache sowie der MatrixProgrammiersprache aus SAS/IML.
4
1 Grundlagen des Umgangs mit SAS
Tabelle 1.1 zeigt die wichtigsten Module von SAS.
Tabelle 1.1: Die wichtigsten Module und ihre Funktion Modul Beschreibung ACCESS Schnittstelle zu Datenbanksystemen AF Interaktive Anwendungsprogrammierung zur automatisierten Datenanalyse ASSIST Interaktive, men¨ ugesteuerte Datenauswertung CONNECT Direkte SAS-zu-SAS-Verbindungen auf Client/Server-Basis Zugriff auf Daten und SAS-Software verschiedener Rechner EIS Objektorientierte Entwicklungsumgebung zum Erstellen von Managementsystemen (EIS - engl.: Executive Information System) ¨ ETS Okonometrie und Zeitreihenanalyse (ETS - engl.: Econometrics and Time Series analysis) FSP Interaktive, men¨ ugesteuerte Dateneingabe und -ver¨ anderung Erstellung eigener Bildschirmmasken f¨ ur diesen Sachverhalt (FSP engl.: Full Screen Processing) GRAPH Erstellung von Grafiken IML Eigenst¨ andige Programmiersprache; behandelt Daten als Matrizen (IML - engl.: Interactive Matrix Language) INSIGHT Interaktive explorative Datenanalyse OR Operations Research QC Statistische Qualit¨ atskontrolle
1.2 Die SAS-Fenster Nach dem Aufruf in Windows zeigt SAS die in Abbildung 1.1 dargestellte Arbeitsumgebung. Neben einer Men¨ u- und Symbolleiste am oberen Bildschirmrand f¨ allt die Zweiteilung des Fensters auf. Auf der linken Seite befindet sich der sogenannte Explorer“. Er listet die von SAS erzeugten Ergebnisse ” einer Datenanalyse auf. Nach dem Anklicken des Reiters Results erscheint eine Baumstruktur mit den bereits berechneten Ergebnissen. Der Reiter Explorer zeigt die in den verschiedenen Bibliotheken vorliegenden Datens¨atze. N¨aheres dazu in Kapitel 3. Der f¨ ur die Analyse von Daten entscheidende Teil der Arbeitsumgebung befindet sich auf der rechten Seite des Bildschirms: Der Enhanced Editor“ zur Ein” gabe von Programmcode sowie das Log-Fenster. Der Enhanced Editor“ heißt ” nachfolgend Programmier-Fenster“. Die Besonderheit dieses Fensters besteht ” im farbigen Hervorheben von Programmcode ( Syntax-Highlighting“), wo” bei unterschiedliche Farben bereits w¨ ahrend des Programmierens zeigen, ob die eingegebenen Befehle syntaktisch fehlerfrei sind. Im Programmier-Fenster kann der Anwender interaktiv Daten und Programmzeilen eingeben. Diese Art der Programmierung und Programmausf¨ uhrung heißt interaktiver Mo-
1.2 Die SAS-Fenster
5
dus. Alternativ dazu sind bereits fertige SAS-Programme außerhalb der SASUmgebung im Batch-Modus aufzurufen. Dieses Buch besch¨aftigt sich ausschließlich mit dem interaktiven Modus.
Abbildung 1.1: Die Arbeitsumgebung von SAS unter Windows
Das Log-Fenster protokolliert s¨ amtliche von SAS erzeugten Ausgaben wie Fehlermeldungen (engl.: Error-Messages) oder Warnungen (engl.: WarningMessages). Alle unkritischen Protokolleintr¨ age beginnen mit Note:. Der Inhalt des Log-Fensters heißt fortan SAS-Log. Zu Beginn einer SAS-Sitzung erscheint im Log-Fenster ein Copyright-Hinweis sowie Informationen zur vorliegenden SAS-Lizenz. Zun¨ achst nicht sichtbar, ist unter dem Log- und dem Programmier-Fenster ein weiteres, das sogenannte Output“ bzw. Textausgabe-Fenster, ge¨off” net. Zus¨ atzlich l¨ asst sich ein weiteres Fenster f¨ ur grafische Prozeduren, das Grafikausgabe-Fenster, ¨ offnen. Neben den Fenstern der Arbeitsumgebung befindet sich am oberen Bild¨ schirmrand noch eine Men¨ u- und Symbolleiste. Uber die Men¨ ueintr¨age und Symbole kann man Einstellungen vornehmen, zwischen den Fenstern wechseln, interaktive SAS-Assistenten aufrufen, SAS-Programme starten sowie Daten in SAS einlesen. Die Symbolleiste enth¨ alt gr¨ oßtenteils Symbole, die in anderen
6
1 Grundlagen des Umgangs mit SAS
Windows-Anwendungen ebenfalls vorkommen. Nur die in Tabelle 1.2 dargestellten Symbole sind neu.
Tabelle 1.2: SAS-spezifische Symbole Symbol Beschreibung Startet ein SAS-Programm L¨ oscht den Inhalt des aktivierten Programmieroder Textausgabe-Fensters Unterbricht ein laufendes SAS-Programm Ruft die SAS-Hilfe auf
1.3 Tastenkombinationen Wie in vielen anderen Windows-Programmen lassen sich bestimmte Abl¨aufe auch u ¨ ber Tasten steuern. Neben den allgemein unter Windows u ¨ blichen Tastaturk¨ urzeln wie STRG-A (alles markieren), STRG-C (kopieren) und STRG-V (einf¨ ugen) gibt es SAS-eigene und benutzerdefinierte Tastaturk¨ urzel. Die Taste F9 zeigt die aktuelle Tastaturbelegung an. Die Funktionstasten sind zun¨ achst wie folgt belegt:
Tabelle 1.3: SAS-spezifische Tastenbelegung Taste Funktion ¨ F1 Offnet die SAS-Hilfe F2 Erneuert die Bildschirmanzeige des aktuellen Fensters F3 Startet ein SAS-Programm F4 Stellt den zuletzt ausgef¨ uhrten Programmcode im Programmier-Fenster wieder dar F5 Setzt das Programmier-Fenster als aktives Fenster F6 Setzt das Log-Fenster als aktives Fenster F7 Setzt das Textausgabe-Fenster als aktives Fenster F8 Startet ein SAS-Programm F9 Zeigt die Tastaturbelegung an F11 Setzt den Cursor in eine Kommandozeile zum Ausf¨ uhren einzelner Befehle ¨ Umschalt-F10 Offnet das Kontextmen¨ u des aktiven Fensters
1.4 Struktur und Syntax von SAS-Programmen
7
Diese Tastaturbelegung kann man ver¨ andern. Dazu ist zun¨achst mittels F9 die Tastaturbelegung zu o ¨ffnen. In der zweiten Spalte ist der Befehl einzutragen. Soll beispielsweise die Taste F12 mit der Vollbilddarstellung von Fenstern verkn¨ upft werden, ist neben F12 der Befehl zoom einzutragen.
1.4 Struktur und Syntax von SAS-Programmen SAS unterscheidet zwei grundlegende Strukturen: den DATA- und den PROCStep. Der DATA-Step stellt Daten zur Analyse bereit. Die Analyse selbst findet im PROC-Step statt. Zur Einleitung dieser Strukturen gibt es in SAS feststehende Begriffe (Schl¨ usselw¨ orter): DATA bzw. PROC, gefolgt von weiteren Angaben. Daran schließen sich weitere Befehle (Anweisungen, engl.: statements) an, eventuell durch nachstehende Optionen an bestimmte Situationen angepasst. Im Programmcode von SAS werden Optionen oft durch einen Schr¨ agstrich (/) von den Anweisungen getrennt. Der DATA-Step dient der Datenaufbereitung als Vorstufe zu deren sp¨ateren Analyse. Die Daten bilden eine Matrix, den Datensatz, mit den Variablen als Spalten und den Merkmalswerten dieser Variablen in den Zeilen. Eine vollst¨ andige Zeile des Datensatzes, beispielsweise die i-ten Merkmalswerte aller Variablen, heißt Beobachtung oder Datenzeile. SAS unterscheidet zwei Typen von Variablen: numerische und alphanumerische. Die numerischen Variablen enthalten nur Zahlen, die alphanumerischen Variablen sowohl Zahlen als auch Buchstaben. Ein alphanumerischer Merkmalswert heißt auch Zeichenkette. Der vorgestellte Programmcode von SAS, seien es vollst¨andige Programme, -ausz¨ uge oder einzelne Anweisungen ist in diesem Buch durch das Schriftbild zu erkennen. F¨ ur die ANWEISUNGEN, OPTIONEN und alle von SAS vorgegeben SCHL¨ USSELW¨ ORTER werden ausschließlich Großbuchstaben verwendet. Variablen in einem Datensatz werden durch Groß- und Kleinschreibung gekennzeichnet. Ferner wird zwischen notwendigen und optionalen Argumenten unterschieden. Notwendige Argumente sind durch spitze Klammern (), optionale Argumente durch eckige Klammern ([...]) gekennzeichnet. Der SAS-Programmcode liest sich leichter, wenn er durch Einr¨ ucken und Absetzen von logisch zusammenh¨ angenden Programmteilen strukturiert ist. Die Beschr¨ ankung auf eine Anweisung oder einen Prozeduraufruf pro Zeile erh¨oht ebenfalls die Lesbarkeit. Sehr wichtig sind auch Kommentare. In SAS gibt es zwei Arten von Kommentaren. Ein einzeiliger Kommentar beginnt mit einem Stern (*) und wird durch ein Semikolon (;) abgeschlossen, beispielsweise * Einzeiliger Kommentar ;
8
1 Grundlagen des Umgangs mit SAS
Soll der Kommentar mehr als eine Zeile umfassen, beginnt er mit /* und endet mit */, beispielsweise /* Mehrzeiliger Kommentar */ Im Programmier-Fenster erscheinen Kommentare gr¨ un. Fehlerfrei eingegebene Prozeduren (vgl. Abschnitt 1.4 und Kapitel 4) erscheinen dunkelblau, Anweisungen und Optionen hellblau, Zeichenketten violett. Alle Anweisungen, Optionen und Schl¨ usselw¨ orter, die SAS nicht kennt, erscheinen rot. Auch das Log-Fenster ist durch Farben strukturiert. So erscheinen Warnungen gr¨ un und Fehlermeldungen rot, normale Hinweise (engl.: Note) blau. Vor dem Ausf¨ uhren von Programmen ist zu u ufen, ob jede Programm¨ berpr¨ zeile mit einem Semikolon endet. Bei der Angabe von Zeichenketten m¨ ussen diese in Anf¨ uhrungsstriche gesetzt sein. Die farbige Gestaltung innerhalb des Programmier-Fensters gibt Hinweise auf Fehler im Programm. Ist ein l¨angerer Abschnitt violett dargestellt, deutet das auf nicht geschlossene Anf¨ uhrungszeichen hin. Auch Kommentare, die sich u ussen ¨ ber mehrere Zeilen erstrecken, m¨ wieder geschlossen werden. Nach dem Programmaufruf ist im Log-Fenster unbedingt auf Warnhinweise und Fehlermeldungen zu achten.
2 Das Hilfesystem
Hilfe zu SAS auf klassische Weise bietet das Benutzerhandbuch (engl.: User’s Guide). Benutzerhandb¨ ucher gibt es zu jedem SAS-Modul. Ein Nachschlagen innerhalb der umfangreichen Benutzerhandb¨ ucher ist aber oft sehr m¨ uhsam und nur mit genauem Wissen u uhrend. Erheblich kom¨ ber das Gesuchte zielf¨ fortabler ist eine Suche u ¨ ber die SAS OnlineDoc“, eine elektronische Umset” zung dieser B¨ ucher als HTML-Hilfe. Sie ist auf einer separaten CD erh¨altlich oder im Internet unter http://v8doc.sas.com zu finden. Zus¨ atzlich sind mehrere Hilfestellungen in SAS selbst vorhanden. Neben den implementierten Assistenten, auf die Kapitel 17 noch eingeht, ist dies die CHM-Hilfe SAS System Help“. Sie ist direkt aus SAS aufrufbar und ver” gleichbar mit der Online-Hilfe in fr¨ uheren Versionen oder anderen WindowsAnwendungen.
2.1 SAS System Help Die SAS System Help erm¨ oglicht eine Schnellsuche nach Begriffen, Anweisungen, Prozeduren etc. Sie ist aktueller als die OnlineDoc, aber nicht so umfangreich. SAS System Help erfordert mindestens Microsoft Internet Explorer Version 5 und wird durch die Taste F1 gestartet (alternativ auch u ¨ber das Men¨ u oder die Symbolleiste). Sie ist jedoch nur bei Verwendung der Tastatur kontextsensitiv. Ist das Log-Fenster aktiviert, beispielsweise durch die Taste F6, und wird dann die Hilfe mittels des Tastaturk¨ urzels F1 aufgerufen, erscheinen Informationen zum Log. Ist eine Prozedur markiert, beispielsweise PROC PRINT, so erscheinen Informationen zu dieser Prozedur.
10
2 Das Hilfesystem
2.2 SAS OnlineDoc Die umfangreichere SAS OnlineDoc ist im Internet frei verf¨ ugbar und wird dort regelm¨ aßig aktualisiert. Sie enth¨ alt die elektronische Umsetzung aller SAS User’s Guides sowie der B¨ ucher Changes and Enhancements to [...]“ ” f¨ ur einige Module. F¨ ur diese Hilfe ist ein Internet-Browser notwendig. Die Verwendung des Microsoft Internet Explorers ist nicht vorgeschrieben, aber f¨ ur die volle Funktionalit¨ at muss JAVATM installiert sein. Neben der nachfolgend genauer vorgestellten Suchfunktion bietet die SAS OnlineDoc einen sogenannten Master Index“ aller Begriffe, Prozeduren und Anweisungen. ”
Abbildung 2.1: Browseransicht der SAS OnlineDoc
Der Reiter Contents erlaubt, in der vorhanden Dokumentation der elektronischen B¨ ucher zu SAS/BASE, SAS/ETS etc. zu bl¨attern. Daf¨ ur muss man wissen, in welchem der User’s Guides sich das Gesuchte befindet. Wird beispielsweise auf den Namen einer Prozedur in einem Modul geklickt, erscheinen auf der rechten Seite des Fensters die Informationen zu dieser Prozedur: Ein ¨ Uberblick, eine Zusammenfassung der Leistungsmerkmale, Beispiele f¨ ur die Funktionalit¨ at und im Abschnitt Syntax“ Aufschluss u ¨ ber die Anweisungen ” und Optionen. Die einger¨ uckt dargestellten Programmzeilen werden nicht unbedingt verlangt, m¨ ussen aber auf jeden Fall zwischen der Prozedurer¨offnung (PROC ;) und einem RUN; angegeben werden (vgl. Kapitel 4).
2.2 SAS OnlineDoc
11
Der Reiter Index erm¨ oglicht eine Suche im allgemeinen Wortindex (Master Index) oder in den Indizes der einzelnen Module, der Reiter Search ist eine Wortsuche u ¨ ber die gesamte SAS OnlineDoc hinweg. Beispiel 2.1: Suchen in der OnineDoc Mit etwas St¨ obern mittels des Contents-Reiters findet man unter dem User’s Guide SAS/BASE - SAS-Procedures Guide - Procedures“ einen Eintrag zu ” ¨ der Prozedur FREQ. Der Uberblick (Overview) zeigt, was die Prozedur leistet: H¨ aufigkeits- und Kontingenztafeln (vgl. Kapitel 7). Es stellt sich die Frage, ob andere Prozeduren ebenfalls Kontingenztafeln berechnen k¨onnen. Dazu klickt man auf den Reiter Search und gibt (auf englisch) in der Zeile Words:“ den ” gesuchten Begriff contingency“ ein. Ein Klick auf die Schaltfl¨ache Search“ ” ” ergibt 91 Treffer. Soll die Suche noch weiter verfeinert werden, ist beispielsweise neben dem Begriff contingency“ auch der Begriff table“ einzutippen. ” ” Das Ergebnis: 200 Treffer. Anstatt die Suche zu verfeinern, erh¨ alt man noch mehr Treffer, da die Begriffe nicht verkn¨ upft wurden. Es wurde stattdessen nach allen Themen gesucht, die eines der beiden Worte enth¨ alt. Zur Verfeinerung der Suche, m¨ ussen die Worte mit logischen Operatoren verkn¨ upft werden. Mittels der Auswahlliste Look ” for:“ wird der Eintrag at least one word in list“ ersetzt durch den Eintrag the ” ” phrase“. Anschließend wird die Suche neu gestartet. Man erh¨alt 62 Treffer in den folgenden User’s Guides: SAS/STAT, SAS Procedures Guide, SAS/IML, Analyst-Application. Um die Suche noch weiter einzuschr¨ anken, ist in der Auswahlliste Look for:“ ” der Eintrag the advanced query“ auszuw¨ ahlen. In der Words“-Zeile kann ” ” nun der Suchbegriff durch logische Operatoren weiter eingeschr¨ankt werden. Mit der Suche nach: ”contingency table” and not freq werden alle Treffer u ¨ber Kontingenztafeln herausgesucht, in denen FREQ age aus: SAS/IML, SAS/STAT, nicht vorkommt. Gefunden werden Eintr¨ Analyst-Application. Unter SAS/IML ist beispielsweise der Eintrag: CALL MARG(...) zu finden. Dies ist ein IML-Befehl, der aus Randh¨ aufigkeiten eine Kontingenztafel berechnet. Unter SAS/STAT ist die Trefferquote ungleich h¨oher. Mit Durchbl¨ attern und genauem Hinsehen findet man drei Prozeduren: CORRESP, CATMOD und NPAR1WAY.
3 Der DATA-Step
Dieses Kapitel bildet die Grundlage f¨ ur alle Datenanalysen. Wie werden Daten in SAS erzeugt, eingelesen, vorgehalten und ver¨andert? Das alles erfolgt innerhalb des DATA-Step. Dessen Verst¨ andnis ist also notwendig f¨ ur ein sinnvolles Herangehen an statistische Auswertungen. So f¨ uhren Auswertungen basierend auf inkorrektem Datenmaterial zu fehlerhaften Ergebnissen.
3.1 Struktur im DATA-Step In SAS haben alle Datens¨ atze einen eindeutigen Namen. Der Befehl DATA ; erzeugt einen Datensatz, welcher fortan unter dem Schl¨ usselwort ansprechbar ist. Mit jedem Aufruf von DATA ; wird ein neuer Datensatz erzeugt. Wird ein bereits bestehender Name erneut verwendet, geht der zuerst angelegte Datensatz verloren. Beispiel 3.1: Anlegen eines Datensatzes DATA A; ... RUN; Dieser DATA-Step erzeugt einen Datensatz mit dem Namen A.
In Beispiel 3.1 endet der DATA-Step mit einem RUN;. Erst diese Anweisung erzeugt den Datensatz endg¨ ultig. Grunds¨ atzlich ist jede Programmzeile in SAS mit einem Semikolon (;) abzuschließen.
14
3 Der DATA-Step
Es gibt zwei Typen von Datens¨ atzen, tempor¨ are und permanente. Datens¨atze, die am Ende der SAS-Sitzung wieder gel¨ oscht werden, heißen tempor¨ar. SAS speichert tempor¨ are Datens¨ atze f¨ ur die Dauer der Arbeitssitzung im Verzeichnis C:\Temp\SAS Temporary Files. Datens¨ atze, die auch in sp¨ ateren SAS-Sitzungen zur Verf¨ ugung stehen, heißen permanent. Permanente Datens¨ atze erzeugt man mit dem Schl¨ usselwort LIBNAME (f¨ ur Bibliotheksname, engl.: Libraryname). Dieser Bibliotheksname verweist dabei SAS-intern auf ein vom Anwender festgelegtes Verzeichnis. Dieses Verzeichnis muss existieren. Eine Ausnahme bildet der weiter unten beschriebene Bibliotheksname WORK, welcher zur tempor¨aren Speicherung dient. Beispiel 3.2: Bibliotheken mit der Anweisung LIBNAME Nachstehendes Programm legt die Bibliothek SAS-Buch an und erzeugt den permanenten Datensatz Test. LIBNAME SAS-Buch ’C:\SAS-Buch’; DATA SAS-Buch.Test; ... RUN; Der Bibliotheksname ist hier SAS-Buch und verweist auf C:\SAS-Buch. Der Datensatz heißt Test. Der zugewiesene Bibliotheksname geht nach der SAS-Sitzung verloren. Der angelegte Datensatz bleibt jedoch im Verzeichnis erhalten. Den Verweis durch LIBNAME muss der Anwender im Verlauf der n¨achsten SAS-Sitzung wieder herstellen, sofern er auf den gespeicherten Datensatz erneut zugreifen m¨ochte. Der Bibliotheksname muss nicht der gleiche sein wie zuvor. In der Standardinstallation von SAS gibt es vier stets verf¨ ugbare LIBNAMES. Diese sind SASHELP, MAPS, SASUSER sowie WORK. MAPS enth¨alt Datens¨atze zur Erzeugung von Landkarten (siehe Abschnitt 6.3), in WORK speichert SAS tempor¨ are Datens¨ atze. Es ist also ein Verweis auf das weiter oben angef¨ uhrte Verzeichnis C:\Temp\SAS Temporary Files. Ohne Angabe von Bibliotheksnamen benutzt SAS stets WORK. Jeder Datensatz, ob tempor¨ar oder permanent, bekommt von SAS die Dateiendung .sas7bdat (in Version 8). Bei ¨alteren Versionen (etwa V6.12) ist die Endung .sd2 . SASHELP enth¨ alt die Systemvoreinstellungen, wie etwa Schriftarten oder Ausgabeger¨ ate, SASUSER die Benutzereinstellungen, wie etwa Gr¨oße und Farbe der Fenster von SAS.
3.2 Ein Datensatz in SAS Ein Datensatz besteht aus Variablen und Merkmalswerten dieser Variablen. Er hat die Form einer Tabelle. Jede Spalte steht f¨ ur eine Variable. Jede
3.2 Ein Datensatz in SAS
15
Zeile enth¨ alt die an einer Beobachtungseinheit gemessenen Werte dieser Variablen (Merkmalswerte). Numerische Variablen beinhalten dabei ausschließlich Zahlen und alphanumerische Variablen dagegen Zahlen, Zeichen und Zeichenketten. Um Variablen zu benennen, gibt es das Schl¨ usselwort INPUT, gefolgt von dem eigentlichen Variablennamen. Die Namen sind innerhalb gewisser Konventionen frei w¨ ahlbar. So muss ein Variablenname mit einem Buchstaben beginnen; Leerzeichen oder in SAS benutzte Begriffe sind nicht erlaubt. G¨ ultige Namen sind: Geschlecht, Alter0 9, Rauchverhalten, a12def und Def1 Blutdruck. Ung¨ ultige Namen sind: 1a sowie Das geht so nicht. Neben den vom Anwender vergebenen Variablennamen erzeugt SAS automatisch die Variable N . Sie speichert in jeder eingelesenen Zeile die aktuelle Beobachtungsnummer. In der Textausgabe erscheint diese Variable unter dem Namen Obs. Diese Variable ist nur in DATA-Steps verf¨ ugbar, nicht in PROCSteps. Beispiel 3.3: Ein typischer DATA-Step in SAS DATA Daten1; INPUT Zahl; DATALINES; 10 20 30 40 50 ; RUN; Der Datensatz Daten1 enth¨ alt Zahl als einzige Variable. Diese wird zeilenweise eingelesen. Zuerst die 10, dann die 20 usw. Gleichzeitig wird SAS-intern die ullt. Dem Schl¨ usselwort DATALINES Variable N schrittweise mit 1, 2, . . . , 5 gef¨ folgen ab der n¨ achsten Zeile die eigentlichen Daten. Der Block mit den Daten ¨ schließt durch ein einzelnes Semikolon in einer separaten Zeile ab. Altere SASVersionen verwenden statt DATALINES das Schl¨ usselwort CARDS, was noch auf die fr¨ uher zur Dateneingabe verwendeten Lochkarten hinweist. Eine Besonderheit bildet das freistehende Semikolon, das Zeichen, das die Dateneingabe nach DATALINES; beendet. Bei der Ausgabe erscheint der Datensatz im Textausgabe-Fenster in nachstehender Form: Obs 1 2 3 4 5
Zahl 10 20 30 40 50
16
3 Der DATA-Step
Im Beispiel 3.3 wird in der INPUT-Anweisung die numerische Variable Zahl erzeugt. Bei alphanumerischen Variablen ist an den Variablennamen durch Leerzeichen getrennt ein $ anzuf¨ ugen. Alphanumerische Variablen k¨onnen beliebige Zeichen aufnehmen. Ist jedoch ein Leerzeichen in einem Merkmalswert enthalten, der mit einer alphanumerischen Variablen eingelesen werden soll, wird nur der Wert bis zum Leerzeichen gelesen. Das Leerzeichen dient als Trennzeichen zwischen den Merkmalswerten. Das $-Symbol legt die Variable als alphanumerisch fest. Es geh¨ort zu den Informaten. Daneben gibt es viele weitere Informate. Eine Liste gebr¨auchlicher Informate ist im Anhang C, die vollst¨ andige Liste in der OnlineDoc zu finden (vgl. Abschnitt 2.2). Auch numerischen Variablen kann ein Informat zugewiesen werden, welches die L¨ ange und Form der einzulesenden Zahl beschreibt. Standardm¨aßig hat eine Zahl in SAS maximal zw¨ olf Ziffern, und zwar ausschließlich vor dem Dezimalpunkt (das BEST12. Informat). Sollen auch Nachkommastellen angegeben werden, erh¨ alt eine numerische Variable das Informat <x>. . Beispielsweise wird durch Einnahme 5.2 eine numerische Variable namens Einnahme mit f¨ unf Stellen (inkl. Dezimalpunkt und Vorzeichen) davon zwei Nachkommastellen erzeugt, beispielsweise 54.32 . Beispiel 3.4: Verwendung von Informaten im DATA-Step DATA Daten; INPUT Name $ DATALINES; Meier 56 M Schmidt 50 Lehmann 45 ; RUN;
Alter 2. Geschlecht $ 2. Monatsbeitrag 5.2; 99.10 F 2102 F 23.20
In der INPUT-Anweisung wird Name als alphanumerische Variable festgelegt. Beim Einlesen erwartet SAS alphanumerische Merkmalswerte unterschiedlicher L¨ ange. Alter ist eine numerische Variable der L¨ange 2. Auch f¨ ur die Variable Geschlecht werden Merkmalswerte der L¨ange 2 eingelesen. Da als alphanumerisch deklariert, k¨ onnen beliebige Zeichen verwendet werden. Da eine feste L¨ ange der Merkmalswerte vorgegeben ist, wird auch das Leerzeichen vor dem Zeichen f¨ ur Geschlecht mit eingelesen und nicht als Trennzeichen behandelt. F¨ ur die Variable Monatsbeitrag wird das Informat 5.2 gew¨ahlt. Der Dezimalpunkt muss hierbei nicht mit eingetragen werden. Neben dem Informat gibt es auch eine Format-Angabe. Diese gibt an, wie SAS die Merkmalswerte ausgeben soll (vgl. Anhang C). Die PUT-Anweisung gibt die eingelesenen Datenwerte in das LOG-Fenster aus. Dies dient beispielsweise zur Kontrolle eines korrekten Einlesevorgangs.
3.3 Erzeugen von Daten
17
Beispiel 3.5: Ausgabe von Datenwerten mit der Anweisung PUT Nachstehendes Programm gibt die eingelesenen Werte der Variablen Zahl im LOG-Fenster aus. DATA Daten1; INPUT zahl; PUT zahl; DATALINES; 10 20 30 40 50 ; RUN;
3.3 Erzeugen von Daten Zum Erzeugen von Daten verwendet man in SAS Schleifen. In einer Schleife werden Befehle wiederholt ausgef¨ uhrt. SAS unterscheidet drei Varianten: DO...TO, DO...UNTIL und DO...WHILE. Allen gemeinsam sind die Schl¨ usselw¨ orter DO und END. DO markiert den Schleifenbeginn und END das Schleifenende. Dazwischen sind die zu wiederholenden Befehle anzugeben. Der erste Schleifentyp hat den Aufbau DO...TO...END und heißt Z¨ahlschleife. Hierbei ist die Schrittweite fest auf eins gesetzt, andernfalls ist zus¨atzlich noch das Schl¨ usselwort BY <Schrittweite> anzugeben. Beispiel 3.6: Z¨ ahlschleife mit der Anweisung DO...TO Nachstehendes Programm addiert die Zahlen 1 bis 10. DATA Zaehlen; x=0; DO i=1 TO 10; x=x+i; END; RUN; Zun¨ achst wird die Variable x auf Null gesetzt. Innerhalb der DO-Schleife wird der Wert von x jeweils um den Wert der Schleifenvariablen i erh¨oht. Der Datensatz Zaehlen enth¨ alt zwei Variablen mit jeweils einem Wert: x und i mit den Werten 55 bzw. 11 (nicht 10! ). Das Abarbeiten der Zeilen DO... bis END; ist ein sogenannter Schleifendurch” lauf“. Soll in Beispiel 3.6 nur jede zweite Zahl addiert werden, ver¨andert die Angabe von BY 2 die Schrittweite entsprechend.
18
3 Der DATA-Step
Beispiel 3.7: Z¨ ahlschleife mit der Anweisung DO...TO...BY Nachstehendes Programm addiert die ungeraden Zahlen zwischen 1 und 10. DATA Zaehlen2; x=0; DO i=1 TO 10 BY 2; x=x+i; END; RUN; BY 2 erh¨ oht die Schrittweite der Z¨ ahlschleife auf zwei. Der Datensatz Zaehlen2 enth¨ alt zwei Variablen mit jeweils einem Wert: x und i mit den Werten 25 bzw. 11. Die Z¨ ahlschleifen in den Beispielen 3.6 und 3.7 werden stets vollst¨andig durchlaufen. Die zweite Schleifenvariante, die DO UNTIL-Schleife ist zu verwenden, falls eine Schleife beim Eintreten einer Bedingung abbrechen soll. Der dritte Schleifentyp ist die DO WHILE-Schleife. Dabei wird der Schleifendurchlauf abgebrochen, wenn die Bedingung verletzt ist. Die Z¨ahlschleife aus Beispiel 3.6 als DO WHILE-Schleife l¨ asst sich wie folgt darstellen: Beispiel 3.8: Z¨ ahlschleife mit der Anweisung DO WHILE Nachstehendes Programm addiert die nat¨ urlichen Zahlen sukzessive, bis die Abbruchbedingung i > a gt 14 GE oder >= ≥ a >= 14 LE oder 5 THEN DELETE l¨ oscht alle Beobachtungen, f¨ ur die a > 5 gilt. Gleiches l¨asst sich mit Hilfe der selektiven IF-Anweisung realisieren. Hier lautet die Anweisung: IF a > 5 Beispiel 3.28: Verwenden der IF-Anweisung Befehl
Beschreibung
IF a=1 THEN b=2
Zuweisen der Variablen b in Abh¨angigkeit von a
IF a lt 500
Einlesen der Daten, solange a < 500
IF a>=100 THEN OUTPUT Schreiben der Daten, solange a ≥ 100 Variablenindizierung mit ARRAY Bei großen Datens¨ atzen ist es hilfreich, Variablen zu indizieren. Dies erleichtert beispielsweise den Variablenzugriff innerhalb von Schleifen. Die normalen“ ” Variablennamen k¨ onnen zwar Zahlen enthalten (z. B. var1, var2, var3 usw.), diese Zahlen lassen sich aber nicht variabel ansprechen. ARRAY ordnet Variablen zeitweilig Indexvariablen zu, welche durch ihren Index angesprochen werden. Angenommen, es sind die Zufallsvariablen Z1 , ..., Z100 zu addieren. Dazu ist zun¨ achst f¨ ur jede Zufallsvariable ein Variablenname zu vergeben. Gegeben seien hier die Variablen z1, z2, . . . , z100. Eine Addition ist dann mit z1 + z2 + ... + z100 100 m¨ oglich. Eine abk¨ urzende Schreibweise wie i=1 z(i) ist hier nicht anwendbar. Die Anweisung ARRAY erlaubt die bequeme Summierung der Variablen z1 bis z100 durch zeitweilige Zuweisung der Indexvariablen y(1)=z1 bis y(100)=z100.
34
3 Der DATA-Step
Beispiel 3.29: Summieren mit Arrays Nachstehendes Programm summiert die Merkmalswerte der Variablen z1 bis z100 f¨ ur jede Beobachtung und speichert diese Summe in der Variablen a. DATA Test; SET A; ARRAY y {*} z1-z100; a=SUM(OF y(*)); RUN;
Nach dem DATA-Step kann auf die Indexvariablen eines ARRAY nicht mehr zugegriffen werden. In dieser Hinsicht unterscheidet sich das in SAS verwendete ARRAY von Arrays anderer Programmiersprachen. Es ist lediglich ein Alias f¨ ur ein einfaches Indizieren einer Gruppe von Variablen. Ein ARRAY-Name ist deshalb auch kein Variablenname. Die dabei zu verwendende Syntax lautet: DATA ; ARRAY {} ; ... RUN; Die Variable ist innerhalb dieses DATA-Step sowohl durch die Indexvariablen als auch durch ihren eigentlichen Namen ansprechbar. Die Variable wird modifiziert, wenn die zugeh¨ orige Indexvariable modifiziert wird. Die Gr¨ oße (Dimension) eines ARRAY wird mit {} angegeben. Der Anwender kann das ARRAY selbst dimensionieren (Angabe einer Zahl f¨ ur die Dimension) oder SAS diese vornehmen lassen. F¨ ur letzteres ist {*} zu verwenden. Innerhalb des DATA-Step kann die Arraygr¨oße mit der Funktion DIM() abgefragt werden. Die Funktion ist jedoch nur als obere Grenze in einer DO-Schleife zu verwenden. DIM ist auch dann anwendbar, wenn die Dimension des Arrays durch die Angabe von {*} festgelegt wurde. Beispiel 3.30: Erstellen eines eindimensionalen Arrays Nachstehendes Programm erzeugt 20 Variablen mit jeweils zehn Realisationen einer normalverteilten Zufallsvariablen. Der Erwartungswert der Zufallsvariablen variiert zwischen den Variablen. DATA A(DROP=i j); ARRAY v {*} variable1-variable20; DO j=1 TO 10; DO i=1 TO 20; v(i)=NORMAL(0)+i; END; OUTPUT; END; RUN;
3.7 Filtern und Transformieren von Daten
35
Die bislang betrachteten Arrays sind eindimensional. In bestimmten Situationen, beispielsweise Temperaturmessung um 12 Uhr Mittags in drei verschiedenen St¨ adten A, B und C, ist ein mehrdimensionales ARRAY notwendig. Beispiel 3.31: Erstellen eines zweidimensionalen Arrays Nachstehendes Programm listet f¨ ur drei St¨ adte die Temperaturen auf und rechnet zudem f¨ ur die Stadt B diese von Fahrenheit in Grad Celsius um. DATA TEMP (DROP=i j); ARRAY tempmess {3,4} t_A1-t_A4 t_B1-t_B4 t_C1-t_C4; INPUT t_A1-t_A4 t_B1-t_B4 t_C1-t_C4; DO i=1 TO 3; DO j=1 TO 4; IF i=2 THEN tempmess(i,j)=(tempmess(i,j)-32)*(5/9); tempmess{i,j}= ROUND(tempmess{i,j}); END; END; DATALINES; 22.1 23.4 18.7 19.1 48.0 52.3 48.5 39.9 35.1 33.8 34.2 34.0 ; RUN; Als Textausgabe ergibt sich: Obs 1
t_A1 t_A2 t_A3 t_A4 t_B1 t_B2 t_B3 t_B4 t_C1 t_C2 t_C3 t_C4 22
23
19
19
9
11
9
4
35
34
34
34
Die ARRAY-Anweisung erzeugt ein zweidimensionales Array mit drei Zeilen und vier Spalten. Um die 12 Elemente des Arrays anzusprechen, sind zwei Indizes notwendig. Wenn die Elemente des Arrays nur f¨ ur die Dauer des DATA-Step zur Verf¨ ugung stehen sollen, werden die Variablennamen hinter ARRAY durch _TEMPORARY_ ersetzt. Die Dimension ist in runden Klammern anzugeben. Die Elemente eines solchen tempor¨ aren Arrays sind durch den Namen der Indexvariablen sowie den Index anzusprechen. Tempor¨are Arrays sind immer dann notwendig, wenn nur das Endergebnis von Berechnungen interessiert. Das Endergebnis muss dann aber in einer normalen Variablen gespeichert werden.
36
3 Der DATA-Step
Beispiel 3.32: Tempor¨ ares Array mit der Option TEMPORARY Nachstehendes Programm erzeugt ein tempor¨ares Array. DATA A; ARRAY b(20) _TEMPORARY_; DO i=1 TO 20; ... END; RUN;
Neben rein tempor¨ aren Arrays sind auch numerische bzw. alphanumerische Arrays m¨ oglich. Auch diese ben¨ otigen keine Variablennamen, sondern, analog zur Option _TEMPORARY_, die Option _NUMERIC_ bzw. _CHARACTER_. Funktionen und Operatoren zur Transformation von Variablen Viele Datenanalysen erfordern zuvor eine Transformation der Originaldaten. Zu diesem Zweck steht im DATA-Step eine Reihe von Funktionen zur Verf¨ ugung. Eine Transformation erzeugt aus einer bestehenden Variablen eine neue Variable, welche die ver¨ anderten Werte enth¨alt. Dieses erfolgt unter Vergabe eines neuen Variablennamens, gefolgt vom Gleichheitszeichen und dem zuzuweisenden Wert (x=0) oder einem mathematischen Ausdruck (x=sqrt(y)). Ein Variablenname darf auch auf beiden Seiten des Gleichheitszeichens verwendet werden (z. B. x=x+1). Im Gegensatz zu anderen Programmiersprachen verwendet SAS das Gleichheitszeichen sowohl f¨ ur Zuweisungen als auch f¨ ur Vergleiche.
Tabelle 3.5: Mathematische Operatoren und Funktionen in SAS Befehl Funktion Beispiel + Addition a = 1 + 3 Subtraktion a = 3 - 1 * Multiplikation a = 2 * 4 / Division a = 4 / 2 ** Potenzierung a = 2 ** 2 (= 22 ) ABS Absolutbetrag a = ABS(-2) (= | − 2|) MIN Minimum a = MIN(0,2,3,-2) (ergibt: -2) MAX Maximum a = MAX(-2,-3,0,0.2) (ergibt: 0.2) LOG nat¨ urlicher Logarithmus a = LOG(3) LOG2 Logarithmus zur Basis 2 a = LOG2(2) LOG10 Logarithmus zur Basis 10 a = LOG10(2)
Die Ausf¨ uhrungsreihenfolge f¨ ur mathematische Operatoren in komplexen Ausdr¨ ucken entspricht den allgemeinen Rechenregeln.
3.7 Filtern und Transformieren von Daten
37
Weiterhin stehen logische Operatoren f¨ ur Vergleiche zwischen Variablen zur Verf¨ ugung. Diese sind AND und OR, abgek¨ urzt & f¨ ur AND bzw. | f¨ ur OR. Beispiel 3.33: Logische Operatoren Nachstehendes Programm wendet die Operatoren AND und OR an. DATA Operator; DO i=0,1; DO j=0,1; Und=i & j; Oder=i | j; OUTPUT; END; END; RUN; Die Textausgabe lautet: Obs
i
j
Und
Oder
1 2 3 4
0 0 1 1
0 1 0 1
0 0 0 1
0 1 1 1
Neben diesen mathematischen Funktionen und Operatoren stehen ROUND, FLOOR, CEIL und INT zum Beschr¨ anken“ von Nachkommastellen zur ” Verf¨ ugung. ROUND() rundet das Argument kaufm¨annisch. FLOOR() rundet das Argument ab. CEIL() rundet das Argument auf. INT() liefert den ganzzahligen Anteil des Arguments. Beispiel 3.34: Beschr¨ anken von Nachkommastellen Eingabe Ergebnis ROUND(-2.1) -2 ROUND(2.1) 2 ROUND(2.7) 3 FLOOR(-2.1) -3 FLOOR(2.1) 2 CEIL(-2.1) -2 CEIL(2.1) 3 INT(-2.1) -2 INT(2.1) 2
38
3 Der DATA-Step
Die Funktion MOD(, ) liefert den Divisionsrest von Argument1 und Argument2. Beide Argumente m¨ ussen numerisch, das zweite außerdem von Null verschieden sein. Die Angabe von x = MOD(28,3) liefert beispielsweise den Divisionsrest 1. Eine Anwendung dieser Funktion ist die Auswahl von Beobachtungen im Datensatz. So w¨ ahlt IF MOD(_N_,2)=0 jede zweite Beobachtung des Datensatzes aus. Auch statistische Funktionen sind im DATA-Step integriert. Die Funktion MEAN([, ,...,]) n berechnet das arithmetische Mittel x = n1 i=1 xi . Anstatt Variablennamen durch Leerzeichen getrennt anzugeben, kann man auch gleichlautende Variablennamen, welche sich nur durch eine nachgestellte Zahl unterscheiden, mit der Bindestrich-Schreibweise sowie einem vorangestellten OF ansprechen. Sollen beispielsweise Variable1, Variable2 bis Variable5 gemittelt werden, erreicht man das mit MEAN(OF Variable1-Variable5) Die Standardabweichung berechnet man mit: STD(, [,...,]) Eine Verwendung von Variablenlisten zusammen mit OF ist auch hier m¨oglich. Beispiel 3.35: Kennzahlberechnung mit den Funktionen MEAN und STD Nachstehendes Programm berechnet das arithmetische Mittel und die Standardabweichung der Zahlen 1 bis 7. DATA Mittelwert; m=MEAN(1,2,3,4,5,6,7); s=STD(1,2,3,4,5,6,7); RUN; Das Ergebnis lautet: m = 4 und s = 2.1602.
3.7 Filtern und Transformieren von Daten
39
Weitere Kennziffern sind die Spannweite (engl.: Range), d. h. die Differenz zwischen Maximum und Minimum RANGE(,[,...,]) oder die Summe SUM(,[,...,]) Mit LAG[n]() greift man auf die vorherige Beobachtung zur¨ uck. n ist dabei optional. Ohne diese Angabe geht SAS genau einen Wert zur¨ uck. Mit der Angabe einer Zahl n ≥ 2 kann entsprechend n Beobachtungen zur¨ uckgegangen werden. Im Datensatz entspricht dies einem Verschieben der Merkmalswerte um n Zeilen nach ” unten“. Zu Beginn des Datensatzes wird die Variable, der die Funktion LAG zugewiesen wird, mit fehlenden Werten initialisiert. Die u ¨ber den Rand hinaus“ ” geschobenen Werte entfallen. Beispiel 3.36: Verz¨ ogern mit der Funktion LAG Nachstehendes Programm erzeugt die Variablen x und y die um eine bzw. zwei Beobachtungen gegen¨ uber der Variablen i verschoben sind. DATA Verzoegerung; DO i=1 TO 10; x=LAG(i); y=LAG2(i); OUTPUT; END; RUN; Die Textausgabe lautet: Obs
i
x
y
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
. 1 2 3 4 5 6 7 8 9
. . 1 2 3 4 5 6 7 8
40
3 Der DATA-Step
Die Funktion DIF[n] berechnet die Differenz zwischen dem aktuellen Merkmalswert einer Variablen und der n-ten Verz¨ ogerung (LAG[n]): DIF[n]() Offensichtlich gilt: DIF(x)=x - LAG(x) Anmerkung: Die Spezifizierung der Zahl n in der DIF-Funktion bewirkt nicht das n-fache Hintereinanderausf¨ uhren von DIF. Beispiel 3.37: Differenzberechnung mit der Anweisung DIF Nachstehendes Programm berechnet die Differenz von Beobachtungen und ihrem Vorg¨ anger mit der Funktion DIF. DATA A; DO i=1 TO 10; x=DIF(i); y=DIF2(i); z=DIF(DIF(i)); OUTPUT; END; DROP i; RUN; Das Programm liefert die Textausgabe: Obs
x
y
z
1 2 3 4 5 6 7 8 9 10
. 1 1 1 1 1 1 1 1 1
. . 2 2 2 2 2 2 2 2
. . 0 0 0 0 0 0 0 0
Die bisher in diesem Abschnitt betrachteten Funktionen verlangen numerische Argumente. Die folgenden Funktionen sind auf alphanumerische Variablen und Zeichenketten anwendbar. Die Funktion LENGTH() bestimmt die Anzahl der Zeichen des Arguments.
3.7 Filtern und Transformieren von Daten
41
Beispiel 3.38: Bestimmen der Zeichenkettenl¨ange mit der Funktion LENGTH Nachstehendes Programm bestimmt die L¨ ange der Zeichenkette Statistik. DATA A; x=LENGTH(’Statistik’); RUN; Die numerische Variable x erh¨ alt den Wert 9.
Die Funktion SUBSTR schneidet einen Teilbereich aus einer alphanumerischen Variablen heraus. Dies dient zur Zuweisung zu weiteren Variablen oder zur Ver¨ anderung von Teilbereichen. Beispiel 3.39: Ver¨ andern von Zeichenketten mit der Funktion SUBSTR Nachstehendes Programm beschneidet und ver¨andert die Zeichenkette Statistik zu axis. DATA A; x=SUBSTR(’Statistik’,3,4); PUT x; SUBSTR(x,2,1)=’x’; PUT x; RUN; Die erste SUBSTR-Funktion weist der Variablen x einen Teilbereich der L¨ange vier ab dem dritten Buchstaben aus dem Wort Statistik“ zu. Die Variable ” hat somit den Wert atis“. ” Die zweite SUBSTR-Funktion ersetzt den aktuellen Wert der Variablen x ( atis“) an Position zwei durch ein anderes Zeichen (Buchstabe x“). Die ” ” Variable x hat jetzt den Wert axis“. ” Die allgemeine Syntax der SUBSTR-Funktion zum Ausw¨ahlen eines Teilbereichs aus einer Zeichenkette lautet: SUBSTR(,<Startposition>[,L¨ ange]) Hierbei wird ab der Startposition der als Argument angegebenen Zeichenkette ein Teilbereich herausgeschnitten. Durch zus¨atzliche Angabe der L¨ ange wird festgelegt, wie viele Zeichen der Teilbereich umfassen soll. Ohne L¨angenangabe wird die gesamte Zeichenkette ab der Startposition herausgeschnitten. Sind die Werte einer alphanumerischen Variablen durch Trennzeichen in verschiedene Bereiche unterteilt, lassen sich diese Bereiche bequem mit der SCANFunktion ausw¨ ahlen oder ver¨ andern. Zum Herausschneiden eines Teilbereichs aus einer als Argument gegebenen Zeichenkette, welcher durch Trennzeichen begrenzt wird (z. B. durch Leerzeichen), ist die Funktion
42
3 Der DATA-Step
SCAN(,[,]) zu verwenden. Dabei kann n positive und negative Werte umfassen. Wird eine positive nat¨ urliche Zahl angegeben, wird der Merkmalswert von links durchlaufen und der n-te durch Trennzeichen begrenzte Teilbereich ausgew¨ahlt. Mit einer negativen ganzen Zahl wird die Zeichenkette von rechts durchlaufen. Als Trennzeichen sind folgende Zeichen zugelassen: Leerzeichen . < ( + & ! $ * ) ; ^ - / , % | Beispiel 3.40: Bestimmen eines Teilbereichs einer Zeichenkette mit der Funktion SCAN Nachstehendes Programm schneidet aus der alphanumerischen Variablen x den ersten, durch ein Leerzeichen abgetrennten, Bereich von rechts aus. DATA A; x=’Dies ist ein Text’; y=SCAN(x,-1); PUT y; RUN; Die SCAN-Funktion liefert als Wert von y das Wort Text“. Wird statt der -1 ” eine 2 eingegeben, erh¨ alt y den Wert ist“. ” Die Funktion INDEX(,) gibt an, ob und an welcher Position eine vorgegebene Zeichenkette in einem Merkmalswert vorkommt. Die Funktion liefert also die Startposition des zu suchenden Ausdrucks zur¨ uck. Hierbei bezeichnet Argument1 den zu durchsuchenden Ausdruck und Argument2 denjenigen Ausdruck, der gesucht werden soll. Beispiel 3.41: Positionsbestimmung von Texten mit der Funktion INDEX Nachstehendes Programm bestimmt die Position der Zeichenkette ein in den Merkmalswerten der Variablen x1 und x2. DATA A; x1=’DiesisteinText’; x2=’Dies ist ein Text’; y1=INDEX(x1,’ein’); y2=INDEX(x2,’ein’); PUT y1 y2; RUN; Die Variablen y1 und y2 erhalten die Werte 8 bzw. 10.
3.8 Das Verkn¨ upfen von Datens¨ atzen
43
Die Funktionen TODAY() bzw. DATE() weisen ein Datum zu. Beispiel 3.42: Bestimmen des Datums mit der Funktion TODAY() Nachstehendes Programm bestimmt das aktuelle Systemdatum mit der Funktion TODAY() und formatiert dieses mit der FORMAT-Anweisung auf eine deutschsprachige Datumsangabe. DATA A; x=TODAY(); FORMAT x DEUDFWKX30.; PUT x; RUN; Ohne die FORMAT-Anweisung wird das Datum als Zahl dargestellt, entsprechend dem Format, in dem das Datum SAS-intern vorgehalten wird. Dabei wird jedem Tag eine Zahl zugeordnet, die der Anzahl von Tagen beginnend mit dem 1. Januar 1960 (=1) entspricht. Die Funktion DATE() kann ¨aquivalent zu TODAY() verwendet werden. Zu Formaten siehe Anhang C.
TIME() liest die aktuelle Uhrzeit aus. Ohne eine entsprechende FORMAT-Angabe liefert TIME() die Zahl der Sekunden zwischen 0.00 Uhr und der aktuellen Uhrzeit.
3.8 Das Verknu atzen ¨pfen von Datens¨ Zur Fehlerminimierung sollten einmal erzeugte Datens¨atze bei Programmausf¨ uhrungen weitestgehend unver¨ andert bleiben. Zur Ver¨anderung von Variablen eines Datensatzes wird dieser deshalb zun¨achst vererbt“. Vererben ” ¨ meint dabei das Ubernehmen aller Variablen und ihrer Merkmalswerte in den neuen Datensatz. Beim Vererben ist es dann m¨oglich, die Variablen mit den vorgestellten Zuweisungen und bedingten Anweisungen zu ver¨andern. Der urspr¨ ungliche (vererbende) Datensatz bleibt unver¨andert erhalten, nur der neue Datensatz wird ver¨ andert. ur den neuen Datensatz der Name des vererbenden DaAnmerkung: Wird f¨ tensatzes verwendet, wird der Inhalt des urspr¨ unglichen Datensatzes mit dem des neuen Datensatzes u ¨berschrieben. Das Vererben selbst erfolgt mit den Anweisungen SET, MERGE bzw. MERGE BY und UPDATE.
44
3 Der DATA-Step
Beispiel 3.43: Vererben von Datens¨ atzen mit der Anweisung SET Nachstehendes Programm vererbt den Datensatz A an Datensatz B. DATA A; x=1; RUN; DATA B; SET A; y=x+1; RUN; Der erste DATA-Step erzeugt einen Datensatz mit der Variablen x. Diese hat den Merkmalswert 1 . Mit SET A wird der komplette Datensatz A an den Datensatz B vererbt. In DATA-Step B wird die auf x basierende Variable y erzeugt. Der zugeh¨ orige Wert wird um eins erh¨oht. Der Datensatz A ver¨andert sich nicht und hat folgende Gestalt: Obs
x
1
1
Der Datensatz B hingegen sieht aus wie folgt: Obs
x
y
1
1
2
Sollen nur Beobachtungen, welche eine bestimmte Bedingung erf¨ ullen, in einen neuen Datensatz u ¨ bernommen werden, ist die WHERE-Anweisung zu verwenden. Beispiel 3.44: Beobachtungsauswahl mit der Anweisung WHERE Nachstehendes Programm w¨ ahlt Beobachtungen gem¨aß der Bedingung (i>20) & (i20) & (i; SELECT <SAS-Datensatz>; Die Anweisungen EXCLUDE und SELECT selektieren Daten zum Herausschreiben. Mit der Option LIBRARY= werden alle Datens¨atze einer Bibliothek exportiert, w¨ ahrend DATA= nur den angegebenen Datensatz exportiert. Beispiel 3.56: Datenexport mit der Prozedur CPORT Nachstehendes Programm exportiert einen SAS-Datensatz zum Austausch mit einem anderen SAS-System. PROC CPORT DATA=a FILE=’D:\Test.dat’; RUN;
Die Option FILE= gibt das Verzeichnis und den Dateinamen der Exportdatei an. Die exportierte Datei kann in SAS-Systeme mit anderer Versionsnummer oder anderen Betriebssystemen eingelesen werden. Wird in Beispiel 3.56 statt DATA=a die Option LIBRARY= verwendet, werden alle Datens¨ atze der angegebenen Bibliothek exportiert. Sind beispielsweise die Datens¨ atze a, b und c in der Bibliothek WORK gespeichert, so werden mit PROC CPORT LIBRARY=WORK FILE=’D:\Test.dat’; RUN; die Datens¨ atze a bis c exportiert. Die Prozedur CIMPORT liest mit CPORT exportierte Datens¨atze ein. Beispielsweise speichert PROC CIMPORT LIBRARY=NEU INFILE=’D:\Test.dat’; RUN; die in der Datei Test.dat enthaltenen Datens¨ atze in die existierende Bibliothek NEU.
3.10 Datenbankzugriffe mit PROC SQL Die Prozedur SQL erm¨ oglicht in SAS den flexiblen Zugriff auf Datenbanken unter Verwendung der Programmiersprache SQL. Das K¨ urzel SQL steht f¨ ur
3.10 Datenbankzugriffe mit PROC SQL
57
Structured Query Language“. In Datenbanken sind die Daten in Tabellen ” abgelegt. PROC SQL greift auf diese Tabellen zu und erm¨oglicht u. a., die dort enthaltenen Daten in SAS-Datens¨ atzen zu speichern. Beispiel 3.57: Datenbankzugriff mit der Prozedur SQL Nachstehendes Programm liest aus einer MS Access-Datenbank die Tabelle daten ein. PROC SQL; CONNECT TO ODBC(DSN=Buch); CREATE VIEW a AS SELECT * FROM CONNECTION TO ODBC (SELECT * FROM daten); DISCONNECT FROM ODBC; QUIT; Die Anweisung CONNECT TO erm¨ oglicht die Verbindung zu einer Datenbank u ur MS ACCESS-Datenbanken ¨ ber ODBC (Open DataBase Connectivity). F¨ muss zuvor eine ODBC-Verbindung aufgebaut werden. Die hier verwendete ODBC-Verbindung wurde Buch genannt. Dies erfolgt durch den Anwender außerhalb des SAS-Systems. Die Option DSN= legt den Datenbanktyp fest. Nach dem Verbindungsaufbau durch CONNECT TO legt die Anweisung CREATE VIEW a den SAS-Datensatz a an. Dieser bezieht seine Daten aus der Verbindung zu der Access-Datenbank. Die SELECT-Anweisung liest die Daten in den SAS-Datensatz ein. SELECT * w¨ ahlt alle Daten der Tabelle daten aus. Die DISCONNECT-Anweisung trennt die Verbindung zu der Datenbank. Anschließend kann der Datensatz a weiter verarbeitet werden. Der sonst u ¨ bliche Abschluss einer Prozedur durch RUN; ist bei PROC SQL nicht notwendig. Stattdessen muss ein QUIT; verwendet werden. Erst so wird die Prozedur wieder verlassen. Alle Anweisungen zwischen PROC SQL; und QUIT; werden als SQL-Anweisungen interpretiert. Beispiel 3.58: Datenbankzugriff mit der Prozedur SQL Nachstehendes Programm schreibt Werte aus SAS in eine Datenbanktabelle. PROC SQL; CONNECT TO ODBC (DSN=Buch); EXECUTE (CREATE TABLE test (strasse CHAR)) BY ODBC ; EXECUTE (INSERT INTO test VALUES (’Bahnhofstr.’) BY ODBC; DISCONNECT FROM ODBC; QUIT; Hierbei wird in der Datenbank eine neue Tabelle test mit der alphanumerischen Variablen strasse erstellt. Die EXECUTE-Anweisung f¨ uhrt alle folgenden Befehle in der Datenbank selbst aus. Die zweite EXECUTE-Anweisung f¨ ugt der neuen Tabelle test den Merkmalswert Bahnhofstr. hinzu.
58
3 Der DATA-Step
Soll hingegen eine bestehende Tabelle in der Datenbank gel¨oscht werden, ist folgende Anweisung zu verwenden: EXECUTE (DROP TABLE ) Mit PROC SQL k¨ onnen nicht nur Verbindungen zu Datenbanken hergestellt, sondern auch SAS-Datens¨ atze erzeugt werden. PROC SQL; CREATE VIEW c AS SELECT * FROM WORK.a; QUIT; erzeugt den SAS-Datensatz c bestehend aus allen Variablen und Merkmalswerten des bereits vorhandenen Datensatzes a.
¨ 3.11 Ubungsaufgaben Aufgabe 3.1: Schreiben Sie das Programm aus Beispiel 3.7 zu einer DO UNTIL-Schleife um. Aufgabe 3.2: Sie interessieren sich f¨ ur internationalen Fußball und m¨ochten insbesondere die Ergebnisse der 1. Lettischen Liga ( Virsliga“) verfolgen. Die Datei ” Lettland.html enth¨ alt die Tabelle (nach 2 Spieltagen). Statt die einzelnen Eintr¨ age von Hand abzutippen, m¨ ochten Sie nun ein SAS-Programm schreiben, welches Ihnen diese Arbeit abnimmt. Lesen Sie den Datensatz ein, damit er zur weiteren Verarbeitung verf¨ ugbar ist. Aufgabe 3.3: Programmieren Sie unter Verwendung von ARRAY die Bin¨ardarstellung der Zahlen 0 bis 31 in einem DATA-Step, wobei die j Stellen der Bin¨arzahlen in j Variablen vorliegen sollen. Beispiel f¨ ur j = 2: Obs Variable1 Variable2 1 0 0 2 0 1 3 1 0 4 1 1 ¨ Sie zun¨ achst, wie sich die i-te Stelle (i = 1, ..., j) einer Hinweis: Uberlegen Bin¨ arzahl aus der zugeh¨ origen Dezimalzahl errechnet.
¨ 3.11 Ubungsaufgaben
59
Aufgabe 3.4: (a) Erzeugen Sie 100 Zufallszahlen aus einer N (µ,σ 2 )-Verteilung mit µ = 5 und σ 2 = 10. (b) Erzeugen Sie 100 Zufallszahlen aus einer t-Verteilung mit 10 Freiheitsgraden, und zwar (i) mit Hilfe der Anweisung RAND und (ii) unter Verwendung des Hauptsatzes der Statistik. (c) Speichern Sie den erzeugten Datensatz als MS Excel-Tabelle. Aufgabe 3.5: Der Datensatz Gesamt.sas7bdat einer KFZ-Versicherung enth¨alt die Automarken und -farben sowie die Versicherungsscheinnummer (Variable: vsnr) von Fahrzeugen. Ein weiterer Datensatz Auswahl.sas7bdat enth¨alt zu ausgew¨ahlten Versicherungsscheinnummern die Nachnamen der Fahrzeughalter. Erstellen Sie einen Datensatz, der f¨ ur die ausgew¨ahlten Versicherungsscheinnummern sowohl die Nachnamen der Fahrzeughalter als auch die Automarken und -farben enth¨ alt.
4 Der PROC-Step
Nach dem DATA-Step ist der PROC-Step ein wesentlicher Bestandteil von SAS-Programmen. Er erm¨ oglicht unter anderem die Analyse der zuvor vorbereiteten Daten, die Ausgabe der dabei gefundenen Ergebnisse auf dem Bildschirm oder in neue Datens¨ atze sowie die Erzeugung von Grafiken.
4.1 Struktur im PROC-Step Im PROC-Step werden vorgefertigte Prozeduren aufgerufen. Der Aufruf erfolgt mittels PROC [Option(en)]; wobei die aufzurufende Prozedur durch Prozedurname eindeutig festgelegt ist. Die meisten Prozedurnamen lassen intuitiv auf ihre Verwendung schließen. So dient beispielsweise PROC SORT f¨ ur das Sortieren eines gegebenen Datensatzes. Abgeschlossen wird jeder PROC-Step genau wie jeder DATA-Step mit RUN; Die Steuerung der Prozedur erfolgt mittels Optionen und zus¨atzlichen Anweisungen (engl.: statements), die zwischen PROC... und RUN; eingef¨ ugt werden k¨onnen und jeweils mit Semikolon enden. Somit ergibt sich folgende Struktur f¨ ur einen PROC-Step PROC [Optionen]; [Anweisung1;] [Anweisung2;] ... RUN; Optionen wie Anweisungen sind in der Regel optional, was durch eckige Klammern [...] verdeutlicht wird. Die meisten Prozeduren liefern auch ohne diese
62
4 Der PROC-Step
Argumente sinnvolle Ergebnisse. Der Standard-Prozeduraufruf ergibt aber nicht f¨ ur jedes Problem zufriedenstellende Resultate. Die Beeinflussung des Prozeduraufrufs mit Optionen und Anweisungen wird in den Abschnitten 4.2 und 4.3 behandelt. PROC-Steps darf man nicht verschachteln. F¨ ur weitere Prozeduren muss zun¨ achst der jeweils aktuelle PROC-Step mit RUN; abgeschlossen werden. Die neue Prozedur wird dann innerhalb eines darauf folgenden PROC-Step mit PROC... aufgerufen. Weiterhin ist die strikte Trennung von DATA- und PROC-Step zu beachten. So ist jegliche Verschachtelung von PROC- und DATA-Steps verboten, d. h. Prozeduraufrufe innerhalb von DATA-Steps f¨ uhren zu Fehlermeldungen, Programmabbruch oder Programmabsturz. Jedoch ist die Nacheinanderausf¨ uhrung mehrerer PROC-Steps sowie von DATA-Steps nach PROC-Steps (oder umgekehrt) durchaus erlaubt.
4.2 Optionen im PROC-Step Optionen bestimmen die Art und Weise der Ausf¨ uhrung einer Prozedur. Nachfolgend werden Optionen vorgestellt, welche f¨ ur sehr viele Prozeduren gleichartig gelten. •
Die Option DATA= legt den SAS-Datensatz fest, welcher durch die Prozedur analysiert oder bearbeitet werden soll. Das kann sowohl ein tempor¨ arer als auch ein permanenter Datensatz sein, wobei f¨ ur permanente Datens¨ atze der LIBNAME wie in Abschnitt 3.1 zu spezifizieren ist. Ohne Angabe des Datensatznamens wird der zuletzt erzeugte Datensatz verwendet. Dabei ist es unerheblich, ob dieser Datensatz innerhalb eines DATA- oder PROC-Step erzeugt wurde. Beispiel 4.1 erl¨ autert einige Prozeduraufrufe zum besseren Verst¨andnis von Optionen. Beispiel 4.1: Prozeduraufrufe mit und ohne Optionen Ohne DATA=-Option gibt die PRINT-Prozedur den Inhalt des zuletzt erzeugten Datensatzes aus: PROC PRINT; Mit DATA=Daten1 wird der tempor¨ are Datensatz Daten1 ausgegeben: PROC PRINT DATA=Daten1; Mit DATA=SAS-Buch.Test wird der permanente Datensatz Test aus der Bibliothek SAS-Buch spezifiziert:
4.3 Anweisungen im PROC-Step
63
PROC PRINT DATA=SAS-Buch.Test; Zur Erinnerung: PROC-Steps sind mit RUN; abzuschließen. •
•
•
Die Option NOPRINT verhindert die Ausgabe von Ergebnissen einer Prozedur auf dem Bildschirm. Prozeduren zur Erzeugung von Grafiken sowie Prozeduren, welche keine Textausgaben erzeugen, bieten diese Option nicht. Die Optionen OUT= sowie OUT= erzeugen neue Datens¨ atze, welche Ergebnisse der Prozedur beinhalten. steht hierbei f¨ ur Schl¨ usselw¨ orter, die in Zusammenhang mit OUT verwendet werden k¨ onnen. In Kombination ergibt sich beispielsweise OUTCOV, OUTEST oder OUTSTAT. Der Inhalt des erzeugten Datensatzes ist durch die jeweilige Prozedur vorgegeben. Die Option VARDEF= legt den Divisor zur Gewichtung von Varianzen, Kovarianzen usw. fest. Voreingestellt ist VARDEF=DF, womit die Freiheitsgrade zur Gewichtung verwendet werden. VARDEF=N f¨ uhrt zur Gewichtung mit der Anzahl an Beobachtungen. Weitere Schl¨ usselw¨orter im Zusammenhang mit der WEIGHT-Anweisung aus Abschnitt 4.3 f¨ ur gewichtete Varianz- und Kovarianzberechnungen sind VARDEF=WDF und VARDEF=WEIGHT.
4.3 Anweisungen im PROC-Step Außer durch Optionen kann die Prozedurausf¨ uhrung auch durch verschiedene Anweisungen zwischen Prozeduraufruf und RUN; beeinflusst werden. Die wichtigsten Anweisungen sind: •
•
BY teilt den Datensatz gem¨aß der angegebenen Variable auf und f¨ uhrt die jeweilige Analyse f¨ ur jeden Teil einzeln durch. Bei Verwendung von mehr als einer Variablen in der BY-Anweisung wird der Datensatz gem¨ aß der auftretenden Wertekombinationen aufgeteilt. Hierbei m¨ ussen die Merkmalswerte gem¨aß der BY-Variablen aufsteigend sortiert sein. Andernfalls wird diese Variable durch Voranstellen von DESCENDING als absteigend sortiert gekennzeichnet. Nachstellen von NOTSORTED kennzeichnet eine unsortierte BY-Variable. CLASS gruppiert bei klassierten Daten die Beobachtungen eines Datensatzes (auch als Zeilen der Datenmatrix bezeichnet). Die Einteilung in Gruppen bzw. Klassen erfolgt anhand der Werte f¨ ur die angegebenen Variablen. Beobachtungen mit identischen Werten der CLASS-Variablen werden derselben Gruppe bzw. Klasse zugeordnet. Prozeduren f¨ ur klassierte Daten erfordern oft die CLASS-Anweisung. Wird diese in einer Prozedur in Verbindung mit einer MODEL-Anweisung angewendet, muss sie innerhalb des PROC-Step vor der MODEL-Anweisung stehen.
64
•
•
•
•
4 Der PROC-Step
FORMAT weist einer Variablen w¨ahrend der Prozedurausf¨ uhrung das vorgegebene Format zu. Im Unterschied zur FORMAT-Anweisung im DATA-Step bleibt der Datensatz unver¨andert. Somit wirkt sich diese Anweisung auf nachfolgende PROC-Steps nicht aus. Werden durch die Prozedur hingegen Datens¨atze erzeugt, die diese Variable enthalten, ist dort auch die verwendete Formatierung gespeichert. Sollen mehrere Variablen innerhalb dieser Anweisung mit Formaten versehen werden, sind die zuzuweisenden Formate den jeweiligen Variablennamen nachzustellen. FREQ ber¨ ucksichtigt die in einer Variablen angegebene H¨ aufigkeit von Wertekombinationen. Jede Beobachtung des Datensatzes wird dann in der Analyse so behandelt, als ob sie so oft vorhanden ist, wie in der FREQ-Variablen angegeben. LABEL =’’ ordnet einer Variablen f¨ ur die Ergebnisausgabe eine aussagekr¨ aftige Bezeichnung (engl.: label) zu. Diese Bezeichnung darf auch Leerzeichen enthalten und ist auf eine L¨ange von 256 begrenzt. Zur Verwendung dieser Bezeichnung ist in einigen Prozeduren die Option LABEL im Prozeduraufruf notwendig. OUTPUT erzeugt einen SAS-Datensatz mit Ergebnissen der zugeh¨ origen Prozedur. Name und Inhalt des Datensatzes werden mittels Optionen zwischen OUTPUT und ; beeinflusst. So kann mit der Option OUT= der Name des auszugebenden Datensatzes festgelegt werden. Der Inhalt des Datensatzes wird durch Optionen der Form <Schl¨ usselwort>= festgelegt. Die m¨oglichen Schl¨ usselw¨ orter variieren von Prozedur zu Prozedur. Beispiel 4.2: Schl¨ usselw¨ orter der OUTPUT-Anweisung Die Anweisung OUTPUT OUT=Residuen RESIDUAL=res STDR=std; der in Kapitel 9 eingef¨ uhrten REG-Prozedur erzeugt einen SAS-Datensatz mit dem Namen Residuen. Dieser Datensatz enth¨alt die Variablen res und std und diese wiederum enthalten gem¨ aß der Schl¨ usselw¨orter RESIDUAL und STDR die Residuen einer linearen Modellanpassung und deren zugeh¨ orige gesch¨ atzte Standardabweichungen. Wichtig: Diese Anweisung ist nicht zu verwechseln mit der OUTPUTAnweisung aus dem DATA-Step (vgl. Abschnitt 3.3).
•
VAR legt die durch die Prozedur zu bearbeitenden Variablen fest. Ohne VAR-Anweisung werden alle Variablen mit entsprechendem Messniveau einbezogen, bei numerischen Analysen beispielsweise alle numerischen Variablen.
4.4 Hilfsprozeduren
•
•
65
WEIGHT erlaubt die Zuordnung von Gewichten zu einzelnen Beobachtungen. Die Formeln zur Ber¨ ucksichtigung der Gewichte sind den Hilfetexten zu den einzelnen Prozeduren zu entnehmen. Werte f¨ ur die Gewichte, welche kleiner oder gleich Null sind, ordnen der Beobachtung das Gewicht Null zu. Die betreffenden Beobachtungen z¨ahlen aber bei der Beobachtungsanzahl mit. Fehlende Werte als Gewichte entfernen die Beobachtungen g¨ anzlich aus der Berechnung. WHERE legt fest, welcher Teil eines Datensatzes einbezogen wird. Ber¨ ucksichtigt werden alle Beobachtungen, welche die Bedingung erf¨ ullen. Bedingungen sind logische Ausdr¨ ucke, welche auf Vergleichen beruhen.
4.4 Hilfsprozeduren Die Kapitel 5 bis 14 stellen Prozeduren zur Darstellung von Ergebnissen in Form von Tabellen, Text oder Grafiken sowie statistische Prozeduren detailliert vor. In SAS gibt es jedoch Prozeduren, die sich keinem bestimmten Bereich zuordnen lassen, etwa Hilfsprozeduren aus dem Modul SAS/BASE. Diese im vorliegenden Abschnitt behandelten Prozeduren erlauben beispiels¨ weise die Aufbereitung von Datens¨ atzen vor Analysen, geben einen Uberblick u atze oder beeinflussen die Ausf¨ uhrung von SAS¨ ber den Inhalt der Datens¨ Programmen allgemein. Die Kenntnis zumindest einiger dieser Prozeduren erleichtert den sp¨ ateren Umgang mit SAS erheblich. Als wichtigste Hilfsprozedur wird zun¨ achst DATASETS ausf¨ uhrlich vorgestellt. Die DATASETS-Prozedur Die DATASETS-Prozedur verwaltet SAS-Dateien, insbesondere SAS-Datens¨ atze. Sie erlaubt das Umbenennen und L¨ oschen sowie das Kopieren dieser Dateien zwischen verschiedenen Bibliotheken oder das Auflisten aller Dateien in einer Bibliothek. Tabelle 4.1: Optionen der Prozedur DATASETS Option Bedeutung DETAILS oder Legt fest, ob Angaben u ¨ ber die Anzahl von Beobachtungen und NODETAILS Variablen sowie zus¨ atzliche Bezeichnungen von SAS-Datens¨ atzen ausgegeben werden (als Variablen Obs, Vars bzw. Label) FORCE Erzwingt je nach Kontext das Anh¨ angen von Datens¨ atzen in der APPEND-Anweisung oder die Prozedurausf¨ uhrung trotz Fehlermeldungen KILL L¨ oscht alle oder die mittels der MEMTYPE=-Option ausgew¨ ahlten SAS-Dateien innerhalb einer Bibliothek (Fortsetzung n¨ achste Seite)
66
4 Der PROC-Step Tabelle 4.1 (Fortsetzung)
Option
Bedeutung
LIBRARY=
Legt die Bibliothek fest, auf die sich die Prozedurausf¨ uhrung bezieht Beschr¨ ankt die Prozedurausf¨ uhrung auf bestimmte Typen von SAS-Dateien (SAS-Datens¨ atze sind beispielsweise vom Typ DATA) Unterdr¨ uckt im SAS-Log die Angabe des Verzeichnisses, auf das sich die Prozedurausf¨ uhrung bezieht Erm¨ oglicht die weitere Prozedurausf¨ uhrung, auch wenn in den AGE-, CHANGE-, COPY-, EXCHANGE- oder SAVE-Anweisungen spezifizierte SAS-Dateien nicht existieren (andernfalls werden die anschließenden Anweisungen nicht mehr ausgef¨ uhrt) Gibt das Passwort f¨ ur den Zugriff auf passwortgesch¨ utzte SASDateien an (dient auch als Alias f¨ ur die Optionen READ=, WRITE= ¨ oder ALTER= zum Aufheben des Lese-, Schreib- bzw. Anderungsschutzes)
MEMTYPE= NOLIST NOWARN
PW=
Die DATASETS-Prozedur verwendet folgende Anweisungen: •
•
•
•
AGE [Option(en)] benennt eine Gruppe von Dateien innerhalb einer Bibliothek um. Dabei erh¨alt die Datei, deren Name in dieser Anweisung zuerst aufgelistet wird, den an zweiter Stelle aufgelisteten Namen. Die Datei welche diesen (zweitgenannten) Namen bisher besaß, erh¨ alt den an dritter Stelle aufgelisteten Namen. Nach diesem Schema wird fortgefahren, bis die in dieser Anweisung spezifizierte Liste von Dateinamen abgearbeitet ist. Die Datei mit dem an letzter Stelle aufgelisteten Namen wird gel¨ oscht. APPEND BASE= [Option(en)] h¨angt die Merkmalswerte eines SAS-Datensatzes an den unter BASE= spezifizierten Datensatz an. Mit der Option DATA= werden die Merkmalswerte des dort angegebenen Datensatzes angeh¨ angt. Andernfalls wird der zuletzt erzeugte Datensatz genutzt. CHANGE benennt eine Gruppe von Dateien innerhalb einer Bibliothek um. Dazu werden der oder die umzubenennenden Dateinamen paarweise mit den zugeh¨ origen neuen Dateinamen jeweils nach dem Schema = aufgelistet. Gem¨aß dieser Liste benennt die CHANGE-Anweisung jeweils die Datei namens Dateiname_alt in Dateiname_neu um. ¨ CONTENTS [Option(en)] zeigt eine Ubersicht u ¨ ber den Inhalt eines (Option DATA=) oder aller (Option DATA=_ALL_) SASDatens¨ atze sowie das zugeordnete Verzeichnis der entsprechenden Bibliothek an.
4.4 Hilfsprozeduren
• • •
•
• •
•
•
•
67
COPY [Option(en)] kopiert alle oder eine Auswahl von SAS-Dateien von einer Bibliothek in eine andere. Zur Auswahl von Dateien sind deren Namen in zus¨ atzlichen SELECT- oder EXCLUDE-Anweisungen anzugeben. DELETE [Option(en)] l¨oscht SAS-Dateien innerhalb einer Bibliothek. EXCHANGE vertauscht die Namen eines oder mehrerer Paare von SASDateien innerhalb einer Bibliothek. Ein Paar von Dateinamen wird in dieser Anweisung mit Gleichheitszeichen (=) verbunden und von anderen Paaren in der Liste der Dateinamen mittels Leerzeichen getrennt. FORMAT ver¨andert die Formate von Variablen eines Datensatzes. Variablenformate k¨onnen dabei dauerhaft zugewiesen, ver¨ andert oder entfernt werden. Einer Gruppe von Variablen wird ein Format durch Nachstellen einer Formatangabe zugewiesen. Es k¨ onnen weitere Gruppen von Variablennamen und Formatangaben folgen. Steht nach einer Gruppe von Variablennamen statt der Formatangabe ein Semikolon (;), wird ihr Format entfernt. Die FORMAT-Anweisung kann nur im Anschluss an die MODIFY-Anweisung verwendet werden. INFORMAT ver¨andert die Informate von Variablen eines Datensatzes. Die Syntax entspricht der FORMAT-Anweisung. LABEL weist Variablen eines Datensatzes Bezeichnungen zu oder ver¨ andert bereits zugewiesene Bezeichnungen. Die Zuordnung erfolgt mit =’’. Mehrere Zuordnungen k¨onnen mit Leerzeichen getrennt hintereinander aufgef¨ uhrt werden. Um eine bereits zugewiesene Bezeichnung zu entfernen, wird eine leere“ Bezeichnung zu” gewiesen (=’’ oder =). MODIFY [Option(en)] spezifiziert den Namen der Datei, welche in nachfolgenden FORMAT-, INFORMAT-, LABEL- oder RENAME-Anweisungen ver¨ andert werden soll. Mittels der Optionen LABEL=’’ und TYPE= kann der Datei zus¨ atzlich eine Bezeichnung oder ein Datensatztyp wie CORR oder COV zugeordnet werden. Diese Optionen m¨ ussen innerhalb einer Klammer auftreten. RENAME benennt Variablen eines SAS-Datensatzes um. Dazu werden der oder die umzubenennenden Variablennamen paarweise mit den zugeh¨ origen neuen Variablennamen jeweils nach dem Schema = aufgelistet. Die RENAMEAnweisung kann nur im Anschluss an die MODIFY-Anweisung verwendet werden. REPAIR [Option(en)] versucht, besch¨adigte SAS-Datens¨ atze zur Benutzung wiederherzustellen. Dateien k¨onnen bei-
68
•
4 Der PROC-Step
spielsweise durch einen Systemabsturz besch¨adigt und somit f¨ ur SAS unlesbar werden. SAVE l¨ oscht alle SAS-Dateien einer Bibliothek außer der oder den aufgelisteten Dateien.
Weitere, aber selten benutzte Anweisungen der DATASETS-Prozedur sind AUDIT, IC CREATE, IC DELETE, IC REACTIVATE, INDEX CENTILES, INDEX CREATE und INDEX DELETE. Beispiel 4.3: Datensatzverwaltung mit PROC DATASETS Die Prozedur PROC DATASETS LIBRARY=dax NOLIST; MODIFY basf (LABEL=’’); RENAME return=Rendite; LABEL kurs=’retrograd bereinigter Aktienkurs’; RUN; ver¨ andert den SAS-Datensatz basf aus der Bibliothek dax. Durch die Option NOLIST wird das, der Bibliothek dax zugeordnete, Verzeichnis nicht in den SAS-Log geschrieben. Die Option (LABEL=’’) der MODIFY-Anweisung entfernt eine m¨ oglicherweise zuvor vergebene Bezeichnung f¨ ur den Datensatz basf. Der Datensatzname bleibt davon aber unber¨ uhrt. Innerhalb des Datensatzes wird die Variable return umbenannt in Rendite und der Variablen kurs wird die Bezeichnung retrograd bereinigter Aktienkurs zugeordnet. Folgende Hilfsprozeduren werden ebenfalls h¨ aufig ben¨otigt: Die COMPARE-Prozedur Die Prozedur COMPARE vergleicht den Inhalt von SAS-Datens¨atzen oder bestimmter Variablen. Zu vergleichende Variablen k¨onnen dabei sowohl aus dem selben als auch aus verschiedenen Datens¨atzen stammen. Beim Vergleich zweier Datens¨ atze wird zun¨ achst die Anzahl gleicher sowie verschiedener Variablen aufgef¨ uhrt. Variablen gleichen sich, wenn sie identische Bezeichnungen und den gleichen Typ haben. Weiterhin werden f¨ ur diese Variablen alle Merkmalswerte paarweise auf Gleichheit untersucht und die Unterschiede dokumentiert. Beim Vergleich bestimmter Variablen werden ausschließlich die Unterschiede der Merkmalswerte dokumentiert. Tabelle 4.2 f¨ uhrt die wichtigsten Optionen der Prozedur COMPARE auf.
4.4 Hilfsprozeduren
69
Tabelle 4.2: wichtige Optionen der Prozedur COMPARE Option Bedeutung Listet neben unterschiedlichen auch identische Merkmalswerte auf Gibt den Basisdatensatz f¨ ur Vergleiche an (ohne diese Option wird der zuletzt angelegte Datensatz verwendet) BRIEFSUMMARY Gibt eine kurze Zusammenfassung der Resultate aus COMPARE= Gibt den mit dem Basisdatensatz zu vergleichenden Datensatz an (ohne diese Option m¨ ussen die Anweisungen WITH und VAR spezifiziert werden) LISTALL F¨ uhrt alle Variablen und Merkmalswerte auf, welche ausschließlich in einem der beiden Datens¨ atze vorhanden sind OUT= Erzeugt einen Datensatz mit identischen oder verschiedenen Merkmalswerten aus den Ursprungsdatens¨ atzen (kann durch verschiedene Schl¨ usselw¨ orter beeinflusst werden) OUTSTATS= Erzeugt einen Datensatz mit verschiedenen Kennzahlen des Vergleichs TRANSPOSE Schl¨ usselt die Unterschiede der Merkmalswerte nach Beobachtung statt nach Variable auf ALLOBS BASE=
Weiterhin k¨ onnen die Anweisungen BY, ID, VAR und WITH verwendet werden. VAR und WITH geben die Variablennamen der zu vergleichenden Variablen an. Ohne diese Anweisungen werden alle Variablen des Basisdatensatzes mit den gleichnamigen Variablen des Vergleichsdatensatzes verglichen. Die mittels der Anweisungen BY und ID spezifizierten Variablen werden hiervon ausgenommen. Der Vergleichsdatensatz ist zuvor mittels COMPARE=-Option zu bestimmen. Die VAR-Anweisung allein vergleicht die spezifizierten Variablen des Basisdatensatzes mit den gleichnamigen Variablen des Vergleichsdatensatzes. Dieser ist daher ebenfalls mittels COMPARE= zu spezifizieren. Die ausschließliche Nutzung der WITH-Anweisung ist nicht gestattet. Die VAR- und WITH-Anweisungen gemeinsam vergleichen die spezifizierten Variablen paarweise. Falls die Anzahl der in der VAR-Anweisung angegebenen Variablen die der Variablen in der WITH-Anweisung u ¨ bersteigt, so werden die u ahligen Variablen mit ihren gleichnamigen Pendants im Vergleichs¨berz¨ ¨ datensatz verglichen. Uberz¨ ahlige Variablen in der WITH-Anweisung werden ignoriert. F¨ ur multiple Vergleiche d¨ urfen Variablen in den beiden Anweisungen beliebig oft vorkommen. Die Merkmalswerte zweier zu vergleichender Variablen werden einander gem¨aß ihrer Beobachtungsnummern zugeordnet. Beispielsweise wird der elfte Merkmalswert der Variablen aus dem Basisdatensatz mit dem elften Merkmalswert der Variablen aus dem Vergleichsdatensatz verglichen. Die Anweisung
70
4 Der PROC-Step
ID erlaubt die Zuordnung auch gem¨aß einer oder mehrerer in beiden Datens¨ atzen vorkommenden Variablen. Stimmen Werte der ID-Variablen in den Datens¨ atzen u ¨ berein, werden die entsprechenden Merkmalswerte einander zugeordnet. Die in dieser Anweisung benannten Variablen m¨ ussen in der Regel sortiert vorliegen. Die FORMAT-Prozedur Die Prozedur FORMAT definiert Formate und Informate zus¨atzlich zu den bereits durch SAS vorgegebenen. So k¨ onnen beliebig formatierte Variablen mittels selbst definierter Informate eingelesen und eingelesene Variablen gem¨aß selbst definierter Formate f¨ ur die Ausgabe aufbereitet werden. Außerdem kann diese Prozedur Beschreibungen von Formaten und Informaten in Form eines SAS-Datensatzes ablegen sowie Formate und Informate aus einem SASDatensatz erstellen. Die Zuweisung von Formaten und Informaten zu bestimmten Variablen erfolgt jedoch nicht innerhalb dieser Prozedur. Tabelle 4.3 f¨ uhrt die wichtigsten Optionen der Prozedur FORMAT auf.
Tabelle 4.3: Wichtige Optionen der Prozedur FORMAT Option Bedeutung CNTLIN= CNTLOUT= NOREPLACE
Legt den SAS-Datensatz fest, anhand dessen Formate und Informate erstellt werden Erstellt einen SAS-Datensatz und speichert darin die Beschreibungen von Formaten und Informaten ¨ Verhindert das Uberschreiben vorhandener Formate und Informate durch gleichnamige selbst definierte Formate und Informate
Zus¨ atzlich sind folgende Anweisungen in der FORMAT-Prozedur m¨oglich: •
• •
INVALUE [$] [Option(en)] erstellt ein Informat zum Einlesen speziell formatierter Rohdatenwerte. F¨ ur die Zuweisung eines alphanumerischen statt eines numerischen Informates ist dem Namen (Name) ein $ voranzustellen. Als Option ist eine Liste von Wertzuweisungen m¨oglicher Merkmalswerte nach dem Schema =<Merkmalswert in SAS> m¨ oglich. PICTURE [Option(en)] erstellt ein bestimmtes numerisches Format, d. h. eine Vorlage, gem¨ aß der numerische Werte ausgegeben werden (beispielsweise f¨ ur die Ausgabe von Eur 1.00 aus dem Wert 1). VALUE [$] [Option(en)] erstellt ein Format zur Variablenausgabe. Bestimmte Merkmalswerte werden dann bei der Ausgabe durch hier definierte Zeichenketten ersetzt. Die Syntax entspricht der INVALUEAnweisung.
4.4 Hilfsprozeduren
71
Beispiel 4.4: Formatdefinition mit PROC FORMAT Die Prozedur PROC FORMAT CNTLOUT=test; INVALUE $geschl ’w’=’1’ ’m’=’2’; VALUE antwort 0=’nein’ 1=’ja’; RUN; erzeugt ein alphanumerisches Informat namens $geschl, welches beim Einlesen einer Variablen die Zeichen w und m in die Zeichen 1 bzw. 2 u uhrt ¨ berf¨ (Achtung: 1 bzw. 2 werden hier nicht als Zahlen aufgefasst). Das numerische Format antwort dient dazu, die in einer Variablen als 0 und 1 codierten Antworten nein und ja in einer Ausgabe wieder in ihrer urspr¨ unglichen Form auftauchen zu lassen, ohne die Merkmalswerte und ihr Messniveau zu ver¨andern. Die definierten Formate und Informate werden schließlich in dem Datensatz test abgelegt. Die OPTIONS-Prozedur Die Prozedur OPTIONS listet aktuell g¨ ultige Einstellungen der SASSystemoptionen im SAS-Log auf. Tabelle 4.4 f¨ uhrt die wichtigsten Optionen der Prozedur OPTIONS auf.
Tabelle 4.4: Wichtige Optionen der Prozedur OPTIONS Option Bedeutung DEFINE
LONG oder SHORT OPTION=
VALUE
Liefert zu jeder aufgelisteten Option eine kurze Beschreibung, den Variablentyp (BOOLEAN, CHARACTER usw.) und eine kurze Information zur m¨ oglichen Ver¨ anderung ihres Wertes Legt fest, ob jede Option und ihre Kurzbeschreibung in einer separaten Zeile (LONG) oder alle Optionen hintereinander und ohne Beschreibung aufgelistet werden (SHORT) Liefert zu der nach dem Gleichheitszeichen (=) spezifizierten Option eine kurze Beschreibung sowie den zugeh¨ origen Wert der Option Liefert neben dem zugeh¨ origen Wert den SAS-internen Anwendungsbereich und die Information, in welchem Kontext der Wert der Option festgelegt wurde
Die PRINT-Prozedur Die Prozedur PRINT gibt die Merkmalswerte eines SAS-Datensatzes aus. Die Ausgabe umfasst die Merkmalswerte aller bzw. ausgew¨ahlter Variablen.
72
4 Der PROC-Step
Tabelle 4.5 f¨ uhrt die wichtigsten Optionen der Prozedur PRINT auf.
Tabelle 4.5: Wichtige Optionen der Prozedur PRINT Option Bedeutung LABEL N NOOBS
ROUND WIDTH=
Verwendet die Bezeichnungen f¨ ur Variablen als Spalten¨ uberschriften anstatt der Variablennamen Gibt die L¨ ange des Datensatzes und/oder der mit BY unterteilten Gruppen aus Verhindert die Ausgabe einer Spalte, in der die Zeilennummer der betreffenden Merkmalswerte im Datensatz (engl.: observation number) angegeben ist Rundet numerische Werte auf zwei Nachkommastellen Legt die Spaltenbreite f¨ ur die Ausgabe fest, m¨ ogliche Werte sind u. a. FULL, MINIMUM und UNIFORM
Wichtige Anweisungen der PRINT-Prozedur sind: •
•
ID spezifiziert Variablen, anhand derer die Merkmalswerte eines Datensatzes identifiziert werden sollen. Die Werte der IDVariablen werden dann an Stelle der Zeilennummer in der ersten Spalte ausgegeben. Muss die Ausgabe unterteilt werden, stehen die Merkmalswerte der ID-Variablen zur vereinfachten Zuordnung in der ersten Spalte jeder Bildschirmseite. SUM gibt die Gesamtsumme und/oder die Summe innerhalb der mit BY unterteilten Gruppen f¨ ur die spezifizierten Variablen am Spaltenende an.
Weiterhin werden die Anweisungen BY und VAR wie gewohnt verwendet. Die SORT-Prozedur Die Prozedur SORT sortiert die Merkmalswerte eines SAS-Datensatzes gem¨aß einer oder mehrerer Variablen. Sie kann dabei den zu sortierenden Datensatz durch seine sortierte Version ersetzen oder einen neuen sortierten Datensatz erstellen.
4.4 Hilfsprozeduren
73
Tabelle 4.6 f¨ uhrt die wichtigsten Optionen der Prozedur SORT auf. Tabelle 4.6: Wichtige Optionen der Prozedur SORT Option Bedeutung EQUALS oder NOEQUALS
NODUPRECS
REVERSE SORTSEQ=
TAGSORT
Legt fest, ob die Reihenfolge von Merkmalswerten mit identischen Werten f¨ ur die BY-Variable erhalten bleiben soll (EQUALS) oder ob das Sortierverfahren diese Reihenfolge zugunsten eines geringeren Rechenaufwandes nicht ber¨ ucksichtigen muss (NOEQUALS) Entfernt Duplikate, indem jede Zeile im sortierten Datensatz mit der vorangehenden verglichen und im Fall der Gleichheit gel¨ oscht wird Sortiert alphanumerische Variablen in umgekehrter Reihenfolge Passt die Sortierreihenfolge alphanumerischer Variablen nationalen Besonderheiten an (Schl¨ usselw¨ orter sind beispielsweise Italian oder Spanish) Schreibt zur Rechenoptimierung w¨ ahrend des Sortiervorgangs nur BY-Variablen und Zeilennummern in die Auslagerungsdatei des Computers
Die einzige Anweisung der Prozedur SORT ist BY, welche die Variablen festlegt, gem¨ aß derer der Datensatz sortiert wird. Eine Variable wird in absteigender Reihenfolge sortiert, wenn ihrem Variablennamen die Option DESCENDING vorangestellt wird. Die BY-Anweisung ist zur Prozedurausf¨ uhrung notwendig. Die STANDARD-Prozedur Die Prozedur STANDARD standardisiert Variablen eines SAS-Datensatzes bez¨ uglich Mittelwert und Standardabweichung. Die standardisierten Variablen werden in einen neuen Datensatz geschrieben. Tabelle 4.7 f¨ uhrt die wichtigsten Optionen der Prozedur STANDARD auf.
Tabelle 4.7: Wichtige Optionen der Prozedur STANDARD Option Bedeutung MEAN= PRINT REPLACE
STD=
Standardisiert Variablen auf das spezifizierte arithmetische Mittel Gibt die Anzahl der Merkmalswerte, Mittelwert und Standardabweichung f¨ ur jede Variable des Ursprungsdatensatzes aus Ersetzt fehlende Werte (engl.: missing values) durch das arithmetische Mittel der Variable bzw. durch den mittels MEAN= spezifizierten Wert Standardisiert Variablen auf die spezifizierte Standardabweichung
74
4 Der PROC-Step
Die Anweisungen BY, FREQ, VAR und WEIGHT werden wie gewohnt angewendet. Anmerkung: Die Prozedur STDIZE aus dem SAS-Modul SAS/STAT standardisiert ebenfalls Variablen eines Datensatzes bez¨ uglich verschiedener statistischer Kenngr¨ oßen. Sie hat aber gegen¨ uber der Prozedur STANDARD einen erweiterten Funktionsumfang. Die TRANSPOSE-Prozedur Die Prozedur TRANSPOSE erzeugt aus einem SAS-Datensatz einen neuen Datensatz, indem ausgew¨ ahlte Variablen anstatt in Spalten in Zeilen dargestellt werden (Transponieren). Tabelle 4.8 f¨ uhrt die wichtigsten Optionen der Prozedur TRANSPOSE auf.
Tabelle 4.8: Wichtige Optionen der Prozedur TRANSPOSE Option
Bedeutung
LABEL=
Gibt den Namen der Variablen an, welche nach dem Transponieren die Bezeichnungen der Variablen des Ursprungsdatensatzes enth¨ alt (ohne diese Option erh¨ alt die Variable den Namen LABEL ) L¨ asst Duplikate in den Merkmalswerten der ID-Variable zu, indem nur die jeweils zuletzt im Datensatz auftretende Zeile, welche den betreffenden Merkmalswert enth¨ alt, zur Transponierung verwendet wird Gibt den Namen der Variablen an, welche nach dem Transponieren die Namen der Variablen des Ursprungsdatensatzes enth¨ alt (ohne Angabe dieser Option erh¨ alt die Variable den Namen NAME ) Spezifiziert ein Pr¨ afix zur Konstruktion der Namen f¨ ur die transponierten Variablen nach dem Muster 1, 2, . . .
LET
NAME=
PREFIX=
Wichtige Anweisungen der Prozedur TRANSPOSE sind: • • •
COPY u ¨ bernimmt die spezifizierten Variablen in den neuen Datensatz ohne sie zu transponieren. ID spezifiziert die Variable des Ursprungsdatensatzes, welche die Namen der transponierten Variablen als Merkmalswerte enth¨alt. IDLABEL spezifiziert die Variable des Ursprungsdatensatzes, welche die Bezeichnungen der transponierten Variablen als Merkmalswerte enth¨ alt. Dieser Anweisung muss eine ID-Anweisung vorangehen.
Die Anweisungen BY und VAR werden wie gewohnt verwendet.
4.5 Anweisungen außerhalb von DATA- und PROC-Step
75
Weitere Hilfsprozeduren Weniger wichtige Hilfsprozeduren sind: CALENDAR: stellt die Merkmalswerte eines SAS-Datensatzes in der Gestalt eines Monatskalenders dar, dessen Form durch die Optionen und Anweisungen der Prozedur festgelegt wird. EXPLODE: vergr¨ oßert Worte und Buchstaben in Textausgaben, stellt also Buchstaben als Matrix von Zeichen dar. FORMS: erzeugt aus SAS-Datens¨ atzen Textausgaben gem¨aß eines vorgegebenen Musters, etwa Adressetiketten f¨ ur Briefumschl¨age. FSLIST: stellt den Inhalt beliebiger Dateien in einem eigens daf¨ ur vorgesehenen SAS-Fenster dar. PRINTTO: legt fest, wohin die Text-Ausgabe von SAS-Prozeduren sowie das SAS-Log geschrieben wird, beispielsweise in externe Dateien zur Weiterverarbeitung mit anderen Programmen. REGISTRY: erlaubt das Auslesen sowie die Ver¨anderung der Registrierungsdateien von SAS (auch SAS-Registry genannt). Die Funktionalit¨at der Prozeduren APPEND, CONTENTS und COPY entspricht im Wesentlichen der gleichnamiger Anweisungen in der Prozedur DATASETS.
4.5 Anweisungen außerhalb von DATA- und PROC-Step Einige Anweisungen treten auch außerhalb von DATA- und PROC-Steps bzw. an beliebiger Stelle im Programm auf. Sie heißen globale Anweisungen und sind ebenso wie andere Anweisungen mit Semikolon (;) abzuschließen. Die wichtigsten sind: %INCLUDE: f¨ ugt Anweisungen und/oder Datenzeilen in ein SAS-Programm ein. Dabei k¨ onnen externe Dateien oder bestimmte Zeilen des aktuellen Programms (wieder-)verwendet werden. %LIST: gibt die in der aktuellen SAS-Sitzung ausgef¨ uhrten Programmzeilen aus. Zum Ansprechen der Zeilennummern von ausgef¨ uhrten SASProgrammen muss die Option SPOOL gesetzt sein. Das gilt ebenso f¨ ur die %INCLUDE-Anweisung. DISPLAY: zeigt das in der Anweisung spezifizierte und zuvor mit der WINDOWAnweisung erzeugte Fenster. DM: f¨ uhrt Befehle innerhalb eines SAS-Programms aus. Diese beeinflussen beispielsweise den Programm-Editor, das SAS-Log oder das Output-Fenster. M¨ oglich sind auch allgemeine SAS-Befehle wie das Speichern von gerade mit SAS bearbeiteten Dateien.
76
4 Der PROC-Step
ENDSAS: beendet ein SAS-Programm oder die SAS-Sitzung im Anschluss an die vollzogene Ausf¨ uhrung des aktuellen DATA- oder PROC-Step. Dies ist unabh¨ angig davon, ob anschließend weitere Programmteile folgen. FOOTNOTE: gibt bis zu zehn Zeilen Text am Fuß jeder Seite des SAS-Outputs aus. OPTIONS: setzt SAS-Systemoptionen oder ¨ andert deren Wert. PAGE: f¨ ugt einen Seitenumbruch bzw. eine entsprechende Anzahl von Leerzeilen in das SAS-Log ein. ur die endg¨ ultige Ausf¨ uhrung zuvor aufgerufener aber noch nicht QUIT: sorgt f¨ ausgef¨ uhrter Anweisungen einer Prozedur und beendet diese. SKIP: f¨ ugt eine Leerzeile in das SAS-Log ein. TITLE: spezifiziert den Text f¨ ur die Titelzeilen, die auf jeder Seite der TextAusgabe erzeugt werden. Die TITLE-Anweisung ohne Angabe von Argumenten entfernt alle zuvor vergebenen Titeltexte. WINDOW: erzeugt ein benutzerdefiniertes Fenster. X: ¨ offnet aus SAS das Fenster Eingabeaufforderung (engl.: terminal window) des Betriebssystems und f¨ uhrt gegebenenfalls ein Betriebssystemkommando aus. Eine komplette Liste globaler Anweisungen ist in der SAS OnlineDoc (vgl. Abschnitt 2.2) unter folgendem Eintrag zu finden: Base SAS Software → SAS Language Reference: Dictionary → Dictionary of Language Elements → Statements → Global Statements .
Teil II
Pr¨ asentation und Aufbereitung von Ergebnissen
5 Das Aufbereiten von Textausgaben
Die Ergebnisse einer Datenanalyse erscheinen im Textausgabe-Fenster. Ausnahmen sind die Option NOPRINT, die eine Ausgabe unterdr¨ uckt, und die Prozedur PROC SUMMARY die keine Textausgabe erzeugt. Textausgaben erscheinen im Textausgabe-Fenster im ASCII-Format. Die einzelnen Variablen eines Datensatzes (Spalten) sind auf der (Bildschirm-)Seite zentriert durch eine variable Anzahl an Leerzeichen voneinander getrennt. Es sind jedoch nie mehr als vier Leerzeichen zwischen zwei Variablen. Die Merkmalswerte (Zeilen) einer numerischen Variablen werden innerhalb der Spalte rechtsb¨ undig gesetzt, alphanumerische Variablen linksb¨ undig.
5.1 Textausgabeoptionen Die ASCII-Textausgabe ben¨ otigt nur wenig Speicherplatz, bietet daf¨ ur aber ¨ auch nur wenig Ubersicht und keine Navigationsm¨oglichkeit. Zum Betrachten eines bestimmten Teils der Textausgabe ist unter Umst¨anden durch die gesamte Textausgabe zu bl¨ attern. Systemeinstellungen beeinflussen die Textausgabe und lassen sich mit der OPTIONS-Anweisung ¨ andern. Tabelle 5.1 stellt die wichtigsten Optionen dieser Anweisung vor. Tabelle 5.1: Die wichtigsten Optionen der Anweisung OPTIONS Option Beschreibung BOTTOMMARGIN= Gibt den unteren Seitenrand in inch oder cm an LEFTMARGIN= Gibt den linken Seitenrand in inch oder cm an LINESIZE= Gibt die Zeichenzahl pro Zeile an (Standardeinstellung: 105) NOCENTER Unterdr¨ uckt die zentrierte Ausgabe (Fortsetzung n¨ achste Seite)
80
5 Das Aufbereiten von Textausgaben Tabelle 5.1 (Fortsetzung)
Option NODATE NONUMBER PAGENO=
PAGESIZE= PAPERSIZE=LETTER|A4 RIGHTMARGIN= TOPMARGIN=
Beschreibung Unterdr¨ uckt die Datumsausgabe Unterdr¨ uckt die Ausgabe der Seitenzahl Legt die Seitenzahl f¨ ur die erste Textausgabeseite fest, andernfalls nummeriert SAS die Textausgabeseiten seit Sitzungsbeginn Gibt die Zeilenzahl pro Seite an (Standardeinstellung: 49) Gibt die Papiergr¨ oße an (Standardeinstellung: Letter-Format) Gibt den rechten Seitenrand in inch oder cm an Gibt den oberen Seitenrand in inch oder cm an
¨ Beispiel 5.1: Andern der Seiteneinstellung mit der Anweisung OPTIONS Nachstehendes Programm w¨ ahlt ein DIN-A4-Blatt mit 70 Zeichen pro Zeile und 65 Zeilen pro Seite. Zudem ist die Textausgabe nicht zentriert und die Seitenzahl wird unterdr¨ uckt. OPTIONS NOCENTER NONUMBER PAPERSIZE=A4 LINESIZE=70 PAGESIZE=65; DATA Test; INPUT a b c $; DATALINES; 1 2 Dies 10 3 ist 1 22 Text ; RUN; PROC PRINT; RUN;
Weitere Textausgabeoptionen sind in der SAS-OnlineDoc unter: SAS/BASE → SAS-Language Reference: Dictionary → SAS System Options nachzulesen.
5.2 Die Prozeduren TABULATE und REPORT Die Prozeduren TABULATE und REPORT kombinieren das Auflisten eines Datensatzes mit verschiedenen deskriptiven Kennzahlen (vgl. Kapitel 7). Klassierte Daten lassen sich in Tabellenform ausgeben, u. a. auch als Kreuztabelle. Die allgemeine Syntax der Prozedur TABULATE lautet:
5.2 Die Prozeduren TABULATE und REPORT
81
PROC TABULATE [Option(en)]; BY ; CLASS [/ Option(en)]; FREQ ; TABLE [<Seiten->, ,] <Spaltenvariable> [/ Option(en)]; VAR [/ Option(en)]; WEIGHT ; Die TABLE-Anweisung erzeugt die tabellierte Textausgabe. Die Angabe von nur einer Variablen in der TABLE-Anweisung liefert f¨ ur jeden Merkmalswert dieser Variablen eine eigene Spalte. Durch Kombinieren von mehreren Variablen entstehen komplexere Tabellen. Zwei durch ein Leerzeichen getrennte Variablen erzeugen f¨ ur jeden Merkmalswert dieser Variablen eine Spalte. Zudem lassen sich Spalten- und Zeilensummen berechnen, die Spalten- und Zeilen¨ uberschriften festlegen sowie die Ausgabe der Werte formatieren. Beispiel 5.2: Erstellen einer Tabelle mit der Prozedur TABULATE Nachstehendes Programm erzeugt durch die Angabe von TABLE Alter eine Tabelle der untenstehenden Form. Die Merkmalswerte einer Variablen Alter seien 7, 8 und 12 . 7
Alter 8 12
Durch die zus¨ atzliche Angabe der Variable Geschlecht mit den Merkmalswerten 0 und 1 erzeugt TABLE Alter Geschlecht eine Tabelle der Form: 7
Alter 8 12
Geschlecht 0 1
Das Verbinden der beiden Variablen durch einen Stern (*) und vertauschen der Reihenfolge ergibt durch die Anweisung TABLE Geschlecht*Alter die folgende Tabelle:
7
Geschlecht 0 1 Alter Alter 8 12 7 8 12
Das Beispiel zeigt bereits erste Gestaltungsm¨ oglichkeiten einer Tabelle. In der TABLE-Anweisung sind die Spalten-, Zeilen- oder Seitenvariablen durch Kommata zu trennen. Wird in der TABLE-Anweisung nur eine Variable angegeben,
82
5 Das Aufbereiten von Textausgaben
legt diese die Spalteneinteilung fest. Bei zwei Variablen oder Variablenkombinationen gibt die erste die Zeilen- und die zweite die Spalteneinteilung an. Ist zus¨ atzlich eine Aufteilung u unscht, sind drei Variablen ¨ ber mehrere Seiten erw¨ oder Variablenkombinationen durch Kommata getrennt anzugeben. Hierbei gibt die erste Variable die Seitenaufteilung, die zweite die Zeilen- und die dritte die Spalteneinteilung an. Zwei oder mehr Variablen lassen sich durch einen Stern (*) verkn¨ upfen. Neben der a ußeren Gestaltung einer Tabelle berechnet PROC TABULATE auch ¨ verschiedene deskriptive Kennzahlen. Dazu ist in der TABLE-Anweisung mit der gew¨ unschten Kennzahl die in der VAR-Anweisung angegebene Variable ebenfalls durch einen Stern (*) zu verkn¨ upfen. Ohne Angabe einer Kennzahl berechnet TABULATE die Summe dieser Variablen.
Tabelle 5.2: Statistische Kennzahlberechnung mit PROC TABULATE Begriff Beschreibung MAX Berechnet das Maximum der Merkmalswerte MEAN Berechnet den Mittelwert der Merkmalswerte MIN Berechnet das Minimum der Merkmalswerte SUM Berechnet die Summe der Merkmalswerte VAR Berechnet die Varianz der Merkmalswerte
Beispiel 5.3: Kennzahlberechnung mit der Prozedur TABULATE Ein Kaufhauskonzern hat in drei L¨ andern (Deutschland, England und Portugal) je drei Filialen. Der mittlere und der Gesamtumsatz in den Warengruppen Textil, Lebensmittel, Elektroger¨ ate und Computer pro Land soll mit PROC TABULATE u ¨ bersichtlich dargestellt werden. Die Daten seien im Datensatz Kaufhaus gespeichert. Er enth¨ alt die Variablen Land, Warengruppe und Umsatz. Nachstehendes Programm erzeugt die gew¨ unschte Tabelle. PROC TABULATE DATA=Kaufhaus; CLASS Land Warengruppe; VAR Umsatz; TABLE Land*Warengruppe, Umsatz=’’*MEAN Umsatz=’’*SUM Umsatz=’’*MAX /INDENT=3 RTS=18; KEYLABEL MEAN=’Mittlerer Umsatz’ SUM=’Gesamtumsatz in Warengruppe’ MAX=’Maximaler Einzelumsatz’; RUN; Abbildung 5.1 zeigt das Ergebnis:
5.2 Die Prozeduren TABULATE und REPORT
83
Mittlerer Gesamtumsatz Maximaler Einzelumsatz Umsatz in Warengruppe Deutschland Computer
3443.33
10330.00
3833.00
Elektro
1098.33
3295.00
1212.00
Lebensmittel
1298.00
3894.00
2121.00
255.33
766.00
344.00
Computer
2711.33
8134.00
3902.00
Elektro
Textil England
Portugal
1303.67
3911.00
1502.00
Lebensmittel
900.00
2700.00
934.00
Textil
496.67
1490.00
900.00
Computer
455.33
1366.00
678.00
Elektro
563.00
1689.00
766.00
Lebensmittel
650.33
1951.00
708.00
Textil
103.33
310.00
120.00
Abbildung 5.1: Durch die Prozedur TABULATE erzeugte Tabelle f¨ ur den Datensatz Kaufhaus
Die Kennzahlen sind gem¨ aß der Variablen Land und Warengruppe klassiert dargestellt. Die Variable Land bildet die gem¨aß der Variablen Warengruppe unterteilten Zeilen dieser Tabelle. In den Spalten steht der Umsatz. Insgesamt werden drei Spalten erzeugt. Die beiden Anf¨ uhrungsstriche hinter Umsatz, z. B. Umsatz=’’*MEAN, unterdr¨ uckt die Spalten¨ uberschrift Umsatz. Stattdessen wird nur MEAN als Spalten¨ uberschrift ausgegeben. Die Anweisung ¨ KEYLABEL ersetzt auch diese Uberschriften durch die dort angegebenen Texte. Dabei wird das angegebene Schl¨ usselwort, beispielsweise MEAN, durch einen anderen Text (hier: Mittlerer Umsatz) ersetzt. Die Option INDENT= bewirkt das Einr¨ ucken der Merkmalswerte von Warengruppe um die entsprechende Anzahl an Leerzeichen (hier drei Leerzeichen). Die Option RTS= reserviert f¨ ur die Zellenbreite der Variablen Land mit der Unterteilung in die Warengruppen einen Platz von 18 Zeichen. Das Benutzerhandbuch SAS Guide to Tabulate Processing“ fasst die vielf¨alti” gen M¨ oglichkeiten zur Beeinflussung einer Tabelle mit PROC TABULATE zusammen. Auch die Prozedur REPORT dient zur Berichtserstellung. Sie vereint Eigenschaften der Prozeduren PRINT (vgl. Kapitel 4), MEANS (vgl. Kapitel 7) und TABULATE. Es lassen sich zwei Typen von Berichten unterscheiden: der Detailbericht und der zusammenfassende Bericht. Ein Detailbericht stellt jede Datenzeile in einer eigenen Zeile dar. Ein zusammenfassender Bericht fasst die Merkmalswerte gem¨ aß Vorgaben des Anwenders zusammen.
84
5 Das Aufbereiten von Textausgaben
Ein Detailbericht unterscheidet sich nicht wesentlich von einer durch PROC PRINT erzeugten Textausgabe. Die allgemeine Syntax der Prozedur REPORT ist gegeben durch: PROC REPORT [Option(en)]; BY ; COLUMN ; COMPUTE [/ Option(en)]; ... ENDCOMP; DEFINE [/ Option(en)]; FREQ ; WEIGHT ; Die Anweisung COLUMN legt die Spalten des Berichts fest. Dabei lassen sich f¨ ur die Spaltenvariablen auch statistische Kennzahlen berechnen. Diese sind in runden Klammern vor der Variablen anzugeben und durch ein Komma von dieser abzutrennen. Soll beispielsweise eine Tabelle mit den Spalten Geschlecht und Alter und dem minimalen, maximalen und mittleren Alter pro Geschlecht berechnet werden, lautet die Anweisung: COLUMN Geschlecht (MIN MAX MEAN), Alter Ist keine Berechnung dieser Kennzahlen gew¨ unscht, gen¨ ugt COLUMN Geschlecht Alter Die Anweisung COMPUTE beginnt einen Block von SAS-Anweisungen, der mit ENDCOMP abzuschließen ist. Sie werden w¨ ahrend der Prozedurausf¨ uhrung, und damit beim Erstellen der Tabelle, ausgef¨ uhrt. Dieses k¨onnen sowohl DATAStep-Anweisungen, als auch PROC REPORT spezifische Befehle sein. So erzeugt beispielsweise LINE eine neue Zeile in einem Bericht. In diese l¨asst sich sowohl frei w¨ ahlbarer Text als auch Kennzahlen eintragen. So berechnet die Anweisung LINE ’Summe Umsatz’ Umsatz.SUM die Summe u ¨ber die Variable Umsatz. Zudem wird der berechneten Summe der Text Summe Umsatz“ vorangestellt. ” Die Anweisung DEFINE gibt an, in welcher Form eine Variable innerhalb der Tabelle zu verwenden ist. Tabelle 5.3 stellt die dazu ben¨otigten Schl¨ usselw¨ orter zusammen.
5.2 Die Prozeduren TABULATE und REPORT
85
Tabelle 5.3: Ausgew¨ ahlte Schl¨ usselw¨ orter zur Berechnung von statistischen Kennzahlen in PROC REPORT Schl¨ usselwort MAX MEAN MIN STD SUM
Berechnung Berechnet das Maximum Berechnet den Mittelwert Berechnet das Minimum Berechnet die Standardabweichung Berechnet die Summe
Das Schl¨ usselwort GROUP dient zur Gruppierung gem¨aß der in der DEFINEAnweisung aufgef¨ uhrten Variablen. Ferner l¨ asst sich hinter dem Schl¨ usselwort eine Zeichenkette angeben, die als Spalten¨ uberschrift f¨ ur die in der DEFINEAnweisung angegebenen Variable erscheint. Beispiel 5.4: Erstellen eines Berichts mit der Prozedur REPORT Nachstehendes Programm erstellt f¨ ur den SAS-Datensatz SASHELP.CLASS, welcher f¨ ur 19 Sch¨ uler das Alter, Gr¨ oße und Gewicht enth¨alt, einen Bericht. Es ist die mittlere Gr¨ oße und das mittlere Gewicht nach Alter und Geschlecht in der Tabelle abzutragen und jede zweite Zeile farbig darzustellen. PROC REPORT DATA=SASHELP.CLASS NOWD; COLUMN Age Sex Height Weight; DEFINE Age /GROUP ’Alter’; DEFINE Sex /GROUP ’Geschlecht’ CENTER; DEFINE Height /MEAN ’Mittel/Gr¨ oße’; DEFINE Weight /MEAN ’Mittel/Gewicht’ F=5.1; COMPUTE Age; Count+1; IF MOD(Count,2) THEN DO; CALL DEFINE(_ROW_, "STYLE", "STYLE=[BACKGROUND=LIGHTGREY FOREGROUND=RED]"); END; ENDCOMP; RUN; Die Option NOWD unterbindet eine Besonderheit der Prozedur REPORT, n¨amlich ¨ das Offnen einer eigenen Arbeitsumgebung, in welcher die Ergebnisse ausgegeben werden. Ohne NOWD ¨ offnet sich diese Umgebung automatisch. Mit NOWD erscheint die Tabelle im Textausgabe-Fenster. Die in der zweiten DEFINE-Anweisung angegebene Option CENTER zentriert die Merkmalswerte der durch diese DEFINE-Anweisung erzeugten Spalte. In der vierten DEFINE-Anweisung gibt die Option F=5.1 ein Format f¨ ur die Zahlenausgabe an (Hier f¨ unfstellig inkl. einer Nachkommastelle). Zwischen der COMPUTE- und ENDCOMP-Anweisung sind die Anweisungen aufgef¨ uhrt, die jede zweite Zeile einf¨ arben. Jeder Prozedurdurchlauf erh¨oht die
86
5 Das Aufbereiten von Textausgaben
Variable Count um eins. Die IF-Anweisung pr¨ uft, ob es sich um eine gerade oder ungerade Zeile handelt. Handelt es sich um eine gerade Zeilenzahl, f¨arbt CALL DEFINE mit Hilfe von STYLE-Angaben die Zeilen ein. Die Schrift der entsprechenden Zeile erscheint rot und der Hintergrund hellgrau.
5.3 Das Output-Delivery-System (ODS) SAS stellt ein neues System bereit, welches erlaubt, Textausgaben ansprechend zu gestalten und in verschiedenen Formaten wie PDF oder HTML auszugeben. Dieses System heißt Output-Delivery-System oder kurz ODS. Die herk¨ ommlich erzeugte Textausgabe erscheint ausschließlich in der SASSchriftart Monospace“. Eigene Formatierungen sowie das Speichern dieser ” Ausgabe ist nur eingeschr¨ ankt m¨ oglich. Mit ODS l¨asst sich dagegen sowohl die Form und Gestalt einer Textausgabe beeinflussen, als auch deren Export veranlassen. Zudem k¨ onnen erstmals einzelne Passagen einer Textausgabe ausgegeben und in verschiedenen Dateiformaten gespeichert werden. Mit ODS lassen sich RTF-, PDF-, PS- und HTML-Dateien erstellen. Somit sind die Ergebnisse einer Datenanalyse auch außerhalb von SAS verf¨ ugbar. Tabelle 5.4 vergleicht die verschiedenen Ausgabe-Formate. Bestimmte Schl¨ usselw¨ orter veranlassen SAS, statt der herk¨ommlichen Textausgabe eine ODS-Ausgabe zu erzeugen. Die Schl¨ usselw¨orter sind um die Textausgabe erzeugenden Prozeduren zu setzen. Die ODS-Syntax lautet somit: ODS FILE=’’; [Textausgabe-erzeugende(r) PROC-Step(s)] ODS CLOSE; Tabelle 5.4: Vergleich der mit ODS erzeugbaren Ausgabe-Formate RTF HTML PDF Navigation Keine M¨ oglich Editierbarkeit Mit g¨ angigen Text- Mit HTMLverarbeitungen Editoren Portabilit¨ at Gut Sehr gut Lesbarkeit Gut Sehr gut Speicherplatz Mittel Gering
Eingeschr¨ ankt Mit Adobe Acrobat Sehr gut Gut Mittel
PS Keine Keine Gut Gut Gering
ODS leitet die Textausgabe in eine Datei um. Die oben beschriebene Syntax schreibt stets die gesamte Textausgabe in die Datei. Die ODS-Anweisungen SELECT und EXCLUDE w¨ ahlen einzelne Passagen aus. ODS SELECT
5.3 Das Output-Delivery-System (ODS)
87
w¨ ahlt die auszugebenden Passagen aus, w¨ ahrend ODS EXCLUDE Passagen ausschließt. Zur Auswahl der gesamten Ausgabe dient die Anweisung ODS SELECT ALL bzw. ODS EXCLUDE NONE Die Anweisungen ODS SELECT NONE bzw. ODS EXCLUDE ALL erzeugen eine leere Ausgabe. Eine Sonderrolle nimmt die Anweisung ODS SELECT (PERSIST) ein. Sollen beispielsweise zwei Variablen in einem Datensatz mit der selben Prozedur separat ausgewertet werden, erzeugt ODS SELECT Moments(PERSIST) BasicMeasures; PROC UNIVARIATE DATA=a; VAR a1; RUN; PROC UNIVARIATE DATA=a; VAR a2; RUN; f¨ ur den ersten PROC-Step die Ausgabe mit den Tabellen Moments und BasicMeasures. F¨ ur den zweiten PROC-Step erscheint nur die Tabelle Moments. Die Anweisung PERSIST h¨ alt die so gew¨ahlte Tabelle Moments fest, bis z. B. eine Anweisung SELECT ALL oder SELECT NONE folgt. Die Anweisung ODS SHOW zeigt die zuletzt getroffene Auswahl im Log-Fenster an. Im SAS-Log erscheint dadurch die Meldung: Current OVERALL Select is: gefolgt von der Auswahl. Ist die Textausgabe nicht durch ODS SELECT oder ODS EXCLUDE gek¨ urzt erscheint stattdessen ALL. Die nach SELECT oder EXCLUDE anzugebenen variieren f¨ ur jede Prozedur und sind in der OnlineDoc nachzulesen. Die Namen lassen sich aber auch durch den Befehl
88
5 Das Aufbereiten von Textausgaben
ODS TRACE ON; [Textausgabe erzeugende(r) PROC-Step(s)] ODS TRACE OFF; im Log-Fenster ausgeben. Die ODS Namen sind exakt mit der aufgef¨ uhrten Groß- und Kleinschreibung anzugeben. Beispiel 5.5: Erstellen einer RTF-Ausgabe mit ODS Bei einer Wahl zum Gemeindeparlament wurde das Wahlverhalten von M¨annern und Frauen verschiedenen Alters erhoben. Es ist zu untersuchen, ob das Alter der W¨ahler einen Einfluss auf die gew¨ahlte Partei hat. Die W¨ahler lassen sich in drei Klassen einteilen: bis 20 Jahre, zwischen 21 und 60, ab 60 Jahre. Das Ergebnis der Wahl ist als RTF-Datei auszugeben. Nachstehendes Programm erzeugt die RTF-Datei. DATA Wahl; INPUT Geschlecht Alter Partei $ Prozent @@; DATALINES; 0 1 A 20.9 1 1 A 29.1 0 1 B 10.9 1 1 B 8.9 0 1 C 0.2 1 1 C 0.3 0 2 A 45.1 1 2 A 37.0 0 2 B 24.9 1 2 B 18.9 0 2 C 4.3 1 2 C 5.3 0 3 A 36.8 1 3 A 55.3 0 3 B 29.2 1 3 B 35.7 0 3 C 2.2 1 3 C 1.7 ; RUN; PROC FORMAT; VALUE GESCHL 0=’Frauen’ 1=’M¨ anner’; VALUE GRUPPE 1=’Unter 20’ 2=’>20 und 20 über 20 und 60 = [/ Option(en)]; BUBBLE2 *<x-Variable>= [/ Option(en)]; PLOT *<x-Variable> [/ Option(en)]; PLOT2 *<x-Variable> [/ Option(en)]; Die BUBBLE-Anweisung erstellt Kreise (Bubbles) um die von der x-Variable und y-Variable festgelegten Mittelpunkte. Die z-Variable legt die Kreisgr¨oße fest. Die Anweisung BUBBLE2 ist immer zusammen mit einer BUBBLEAnweisung zu verwenden und muss dieser nachfolgen. BUBBLE2 erzeugt eine zweite Koordinatenachse an der rechten Seite der Grafik. Analog verhalten sich die Anweisungen PLOT bzw. PLOT2. Die PLOT-Anweisung tr¨agt eine unabh¨ angige Variable auf der horizontalen Achse gegen eine abh¨angige Variable auf der vertikalen Achse ab. Das Zeichnen mehrerer Grafiken durch eine einzige PLOT-Anweisung ist m¨ oglich.
94
6 Grafiken in SAS
Die Anweisung PLOT y1*x1 y2*x2 erzeugt beispielsweise je eine Grafik f¨ ur die Variablen x1, y1 bzw. x2, y2. Die Achsenskalierung und -beschriftung sowie die farbliche Gestaltung sind durch Optionen ver¨ anderbar. Beispiel 6.1: Streudiagramm mit der Prozedur GPLOT Nachstehendes Programm erzeugt ein Streudiagramm mit den Standardeinstellungen von SAS. DATA bmw (KEEP=bmw1 lbmw1); SET Aktien; bmw1=LOG(bmw/LAG(bmw)); lbmw1=LAG(bmw1); RUN; PROC GPLOT; PLOT bmw1*lbmw1; RUN; Abbildung 6.1 zeigt das Streudiagramm (engl.: scatterplot) der Renditen von BMW seit 1960, abgetragen gegen die verz¨ ogerten Renditen.
Abbildung 6.1: Streudiagramm der Variablen bmw1 und lbmw1
6.1 Zweidimensionale Darstellungen
95
Der Datensatz bmw enth¨ alt die Variablen bmw1 und lbmw1. Es zeigt eine Punktewolke um den Wert (0,0). In der Mitte des Streudiagramms ist eine Zuordnung der Punkte zu einzelnen Werten nicht m¨oglich. Die Achsenbeschriftung mit bmw1 und lbmw1 ist nicht ausreichend. Dazu erscheint die Schriftgr¨oße sehr klein. Die Achsen sind unterschiedlich skaliert, wodurch die tats¨achliche Form der ¨ Punktewolke verschleiert“ wird. Da eine aussagekr¨aftige Uberschrift fehlt, ist ” nicht unmittelbar klar was dargestellt ist. Tabelle 6.1 stellt die wichtigsten Optionen der Anweisungen PLOT, PLOT2, BUBBLE und BUBBLE2 der Prozedur GPLOT zusammen: Tabelle 6.1: Die wichtigsten Optionen der Anweisungen PLOT, PLOT2, BUBBLE und BUBBLE2 Option [NO]FRAME HAXIS=AXIS HREF=<Werteliste> OVERLAY VAXIS=AXIS VREF=<Werteliste>
Beschreibung Zeichnet (k)einen Rahmen um die Grafik Beschriftet die horizontale Achse; AXIS bezieht sich auf eine gleichnamige Anweisung (siehe Abschnitt 6.4) Zeichnet eine parallel zur horizontalen Achse laufende Hilfslinie f¨ ur jeden Eintrag der <Werteliste> Zeichnet alle durch eine PLOT-Anweisung erstellten Grafiken in ein einziges Koordinatensystem Beschriftet die vertikale Achse; AXIS bezieht sich auf eine gleichnamige Anweisung (siehe Abschnitt 6.4) Zeichnet parallel zur vertikalen Achse eine Hilfslinie f¨ ur jeden Eintrag der <Werteliste>
Die Prozedur GCHART erstellt Balken-, S¨ aulen- und Kreisdiagramme. Die allgemeine Syntax lautet: PROC GCHART [Option(en)]; HBAR|VBAR [/ Option(en)]; PIE|DONUT [/ Option(en)]; STAR [/ Option(en)]; Die Anweisung HBAR erstellt ein Balkendiagramm, wobei die L¨ange eines Balkens der absoluten H¨ aufigkeit der abzutragenden Klassen entspricht. Die Anweisung VBAR erstellt dazu analog ein S¨ aulendiagramm. Diese Anweisungen bilden die Klassen aus den vorliegenden Daten selbst. PIE erzeugt ein Kreis- oder Tortendiagramm. Dabei repr¨asentiert die Gr¨oße eines Kreissegments den Anteil der Klasse an der Merkmalssumme. DONUT erstellt ein Kreisdiagramm mit einem Loch in der Mitte. Die Anweisung STAR erstellt Stern-Diagramme. Hierbei repr¨asentiert die L¨ange einer Sternzacke den Wert, der durch die Anweisung gebildeten Klasse.
96
6 Grafiken in SAS
Tabelle 6.2 listet die wichtigsten Optionen der Prozedur GCHART auf. Ein bedeutet: die Option steht bei der entsprechenden Anweisung zur Verf¨ ugung. Tabelle 6.2: Die wichtigsten Optionen f¨ ur Anweisungen von PROC GCHART. H=Balken(HBAR)-, V=S¨ aulen(VBAR)-, P=Torten(PIE)-, D=Donut(DONUT)- und S=Stern(STAR)-Anweisung Option
Beschreibung
H V P D S
ANGLE=
Setzt das erste Kreissegment auf die angegebene Gradzahl, ein Winkel von Null Grad entspricht der 3-Uhr-Position
- -
ASCENDING
Sortiert die Balken oder Kreissegmente in aufsteigender Reihenfolge der Merkmalswerte
-
CLOCKWISE
Zeichnet die Kreissegmente im Uhrzeigersinn, dies entspricht ANGLE=90
- - - -
CTEXT=
Setzt die Textfarbe
DESCENDING
Sortiert die Balken oder Kreissegmente in absteigender Reihenfolge der Merkmalswerte
-
EXPLODE=<Werteliste>
Gibt u ¨ ber Werteliste die Klassenmittelpunkte der abzusetzenden Kreissegmente an
- - - -
FILL=SOLID|X
Gibt ein F¨ ullmuster an, SOLID f¨ ullt die Kreissegmente mit einer Farbe und X erzeugt eine Schraffur
- - -
FREQ=
Legt die H¨ aufigkeitsvariable f¨ ur die Merkmalswerte fest, jeder Merkmalswert wird entsprechend der H¨ aufigkeitsvariable ber¨ ucksichtigt
GROUP=
Bildet f¨ ur jeden Wert von Variable eine Gruppe von Diagrammen (Gruppierungsvariable)
INVISIBLE=<Werteliste> Gibt u ¨ ber Werteliste die Klassenmittelpunkte der nicht zu zeichnenden Kreissegmente an
- - -
LEVELS=
Gibt u ucksichti¨ber Anzahl die zu ber¨ gende Klassenzahl an
MAXIS=
Beeinflusst das Aussehen der x-Achse (siehe Abschnitt 6.4)
- - -
(Fortsetzung n¨ achste Seite)
6.1 Zweidimensionale Darstellungen
97
Tabelle 6.2 (Fortsetzung) Option
Beschreibung
H V P D S
MIDPOINTS=<Werteliste> Gibt u ¨ ber Werteliste die Klassenmittelpunkte an, auch eine Angabe ( TO <m>) ist m¨ oglich
NOHEADING
Unterdr¨ uckt die Beschreibung berechneten Kennzahl
der
- - - -
NOLEGEND
Unterdr¨ uckt die Legende
OTHER=<Wert>
Fasst alle Merkmalswerte, die weniger als Wert-Prozent der Gesamtsumme entsprechen, in eine Klasse Other“ zusam” men, die Standardeinstellung ist 4
- - -
PERCENT=ARROW|INSIDE| NONE|OUTSIDE
Beschriftet die Balken oder Kreissegmente mit ihrem Prozentwert, die m¨ oglichen Angaben beeinflussen die Position
-
RAXIS=
Beeinflusst das Aussehen der y-Achse (siehe Abschnitt 6.4)
- - -
SLICE=ARROW|INSIDE| NONE|OUTSIDE
Beeinflusst die Beschriftungsposition der f¨ ur das Kreissegment namensgebenden Variablen
- -
SPACE=
Gibt den Abstand zwischen den Balken (S¨ aulen) an, dieser wird ignoriert, wenn Abstand zu groß ist und die Balken (S¨ aulen) nicht mehr ins Grafikfenster passen
- - -
SUBGROUP=
Gruppiert ein Diagramm gem¨ aß Variable (Gruppierungsvariable)
-
SUMVAR=
Berechnet die Summe oder den Mittelwert gem¨ aß der durch Variable gebildeten Klasse
TYPE=<Statistik>
Mit SUMVAR ist MEAN oder SUM f¨ ur TYPE anzugeben; ohne SUMVAR ist PERCENT (Prozent), CPCT (kumulierte Prozente), FREQ (H¨ aufigkeit) oder CFREQ (kumulierte H¨ aufigkeit) zu w¨ ahlen
VALUE=ARROW|INSIDE| NONE|OUTSIDE
Beeinflusst die Beschriftungsposition des Merkmalswerts dieses Kreissegments
- -
WIDTH=
Gibt die Breite eines Balkens an
- - -
98
6 Grafiken in SAS
Beispiel 6.2: Balkendiagramm mit der Prozedur GCHART Nachstehendes Programm erstellt ein Kreisdiagramm des Zweitstimmenergebnisses der Bundestagswahl 2002. DATA Bundestagswahl; INPUT Partei $ Anteil @@; DATALINES; SPD 38.5 CDU 38.5 FDP 7.4 GRUENE 8.6 PDS 4.0 ANDERE 3.0 ; RUN; PROC GCHART DATA=Bundestagswahl; VBAR Partei /SUMVAR=Anteil DESCENDING SUBGROUP=Partei NOLEGEND WIDTH=8 SPACE=1.5 RUN; Die Option DESCENDING bewirkt eine absteigend sortierte Darstellung der Balken. Abbildung 6.2 zeigt das noch verbesserungsf¨ahige Ergebnis: Anteil SUM 40
30
20
10
0 CDU
SPD
GRUENE
FDP
PDS
ANDERE
Partei
Abbildung 6.2: Balkendiagramm des Zweitstimmenergebnisses der Bundestagswahl 2002
6.1 Zweidimensionale Darstellungen
99
Beispiel 6.3: Kreisdiagramm mit der Prozedur GCHART Die Fondgesellschaft Meier, M¨ uller und Partner“ m¨ochte ihren Kunden einen ” ¨ geeigneten grafischen Uberblick eines Portfolios geben. Der Fond Risiko” optimierter Geldzuwachs“ setzt sich wie folgt zusammen: Aktie St¨ uckzahl Chemie Gigant 2020 Auto Mobil 1200 Pillendreher 890 Leben und Mehr 630 MediaPlus 1500 Nachstehendes Programm erzeugt das Kreisdiagramm. DATA Portfolio; INPUT Aktie $ 15. Anzahl @@; DATALINES; Chemie Gigant 2020 Auto Mobil 1200 Pillendreher 890 Leben und Mehr 630 MediaPlus 1500 ; RUN; PROC GCHART DATA=Portfolio; PIE Aktie / SUMVAR=Anzahl NOHEADING PERCENT=ARROW VALUE=NONE SLICE=ARROW ANGLE=90 EXPLODE=’Auto Mobil’ CLOCKWISE CTEXT=BLACK FILL=SOLID; RUN; Abbildung 6.3 zeigt das Kreisdiagramm.
Abbildung 6.3: Kreisdiagramm eines Aktienportfolios
100
6 Grafiken in SAS
Eine weitere Prozedur f¨ ur zweidimensionale Grafiken ist GCONTOUR. Sie stellt dreidimensionale Beziehungen in zwei Dimensionen dar, indem H¨ohenlinien abgetragen werden. Hierbei geben Linien und Fl¨achen die unterschiedlichen H¨ ohen (z) zu einer (x, y)-Position in der Ebene an. Beispiel 6.4: H¨ ohenliniendiagramm mit der Prozedur GCONTOUR Nachstehendes ohenliniendiagramm f¨ ur die Funktion erstellt ein H¨ Programm x2 + y 2 . f (x, y) = sin DATA Kontur; DO x=-5 TO 5 BY 0.25; DO y=-5 TO 5 BY 0.25; z=SIN(SQRT(x*x+y*y)); OUTPUT; END; END; RUN;
PROC GCONTOUR DATA=Kontur; PLOT y*x=z / LEVELS=-0.8 TO 0.8 BY 0.4 XTICKNUM=11 YTICKNUM=11 LLEVELS=2 3 4 5 1; RUN; Die Funktion f (x, y) erzeugt einen Cowboyhut“. Die obere Spitze des Huts ” ist eingedr¨ uckt, die Krempe des Huts hochgestellt. Ein H¨ohenliniendiagramm zeigt diese dreidimensionale Funktion in der Ebene an. Eng zusammen liegende H¨ ohenlinien geben dabei ein starkes Anwachsen oder Abfallen der Funktion an. Die Abbildung 6.4 stellt das H¨ ohenliniendiagramm f¨ ur die angegebene Funktion dar. Je nach Linienart zeigt der Verlauf der Funktion nach oben oder unten. y 5 4 3 2 1 0 -1 -2 -3 -4 -5 -5
-4
-3
-2
-1
0
1
2
3
4
5
x
Abbildung 6.4: H¨ ohenliniendiagramm der Cowboyhutfunktion
6.2 Dreidimensionale Darstellungen
101
6.2 Dreidimensionale Darstellungen Zusammenh¨ ange dreier Variablen, welche zweidimensional nicht mehr darstellbar sind, erfordern dreidimensionale Darstellungen. Abbildung 6.5 zeigt eine solche. Die verschiedenen Symbole (Pyramide, W¨ urfel und Zylinder) stellen Waren dar, deren Gewicht, L¨ ange und Breite abgetragen ist.
Abbildung 6.5: Typische dreidimensionale Darstellung
Dreidimensionale Grafiken erstellt die Prozedur G3D. Ihre allgemeine Syntax ist: PROC G3D [Option(en)]; PLOT *<x-Variable>= [/ Option(en)]; SCATTER *<x-Variable>= [/ Option(en)]; Die Anweisung PLOT zeichnet eine dreidimensionale Fl¨ache und die Anweisung SCATTER ein dreidimensionales Streudiagramm. Eine der beiden Anweisungen ist zwingend anzugeben. Tabelle 6.3 listet die f¨ ur beide Anweisungen geltenden Optionen auf.
102
6 Grafiken in SAS
Tabelle 6.3: Die wichtigsten Optionen f¨ ur die Anweisung PLOT und SCATTER der Prozedur G3D Option GRID NOAXES ROTATE=<Winkel> TILT=<Winkel> XTICKNUM= YTICKNUM= ZTICKNUM=
Beschreibung Zeichnet Gitterlinien f¨ ur jede Achse Unterdr¨ uckt die Achsenbeschriftung Legt den Winkel fest, um welche die Grafik bez¨ uglich der z-Achse rotiert wird (Standardeinstellung: 70 Grad) Legt den Winkel fest, um den die Grafik dem Betrachter zugedreht wird (Standardeinstellung: 70 Grad) Gibt u ur die x-Achse ¨ ber n die Anzahl der Unterteilungen f¨ an (mindestens 2) Gibt u ur die y-Achse ¨ ber n die Anzahl der Unterteilungen f¨ an (mindestens 2) Gibt u ur die z-Achse ¨ ber n die Anzahl der Unterteilungen f¨ an (mindestens 2)
Neben den gemeinsamen gibt es f¨ ur jede der Anweisungen PLOT und SCATTER auch noch spezifische Optionen. F¨ ur PLOT sind das die Optionen SIDE und XYTYPE=1|2|3. SIDE zeichnet eine Wand an der x- und y-Achse bis zur dargestellten Fl¨ ache ein. XYTYPE= legt ein Muster f¨ ur diese Fl¨ache fest. XYTYPE=1 (XYTYPE=2) zeichnet Linien in die Fl¨ ache parallel zur x-Achse (y-Achse) ein. Die Standardeinstellung XYTYPE=3 zeichnet die Linien beide Achsen ein. Die Anweisung SCATTER hat mehr spezifische Optionen als PLOT. So unterbindet NONEEDLE das Zeichnen einer senkrechten Linie f¨ ur jeden Punkt der x-y-Ebenen, wie in Abbildung 6.5. Die Option SHAPE=’<Symbol>’|<Symbolvariable> legt f¨ ur die Datenpunkte ein Zeichensymbol fest. Entweder es wird ein festes Zeichen durch die Angabe SHAPE=’<Symbol>’ verwendet oder aber eine alphanumerische Variable (Symbolvariable) legt das verwendete Symbol fest. Da in Abbildung 6.5 mehrere Symbole verwendet werden, sind diese u ¨ber eine Symbolvariable definiert. G¨ ultige Symbole sind beispielsweise PYRAMID (Standardeinstellung), BALLOON, CUBE, CYLINDER oder SPADE. Die Option SIZE=<Wert> legt die Gr¨ oße des Symbols f¨ ur die Datenpunkte fest. Die Standardeinstellung ist SIZE=1.0 . Abschließend veranschaulicht eine dreidimensionale Grafik die im Abschnitt 6.1 vorgestellte Cowboyhut“-Funktion. ” Beispiel 6.5: Dreidimensionale Darstellung mit der Prozedur G3D Nachstehendes Programm erzeugt einen ”Cowboyhut“ durch das Abtragen der Funktion f (x, y) = sin x2 + y 2 . Der Wertebereich der Variablen sei festgelegt auf x, y ∈ [−5, 5].
6.2 Dreidimensionale Darstellungen
103
DATA Hut; DO x=-5 TO 5 BY 0.25; DO y=-5 TO 5 BY 0.25; z=SIN(SQRT(x*x+y*y)); OUTPUT; END; END; RUN; PROC G3D DATA=Hut; PLOT y*x=z / XTICKNUM=3 YTICKNUM=3 ZTICKNUM=3 GRID TILT=50; RUN; Die TILT-Option dreht den entstehenden Cowboyhut“ dem Betrachter zu. ”
Abbildung 6.6: Dreidimensionale Darstellung der Cowboyhutfunktion
Im Beispiel 6.5 liegen die Merkmalswerte der drei Variablen in Form eines vollst¨ andigen, gleichm¨ aßigen Gitternetzes in der x-y-Ebene vor. In der Praxis ist das jedoch selten der Fall, weil die Merkmalswerte eher unregelm¨aßig verteilt sind. Wird auf einen solchen Datensatz die Prozedur G3D oder GCONTOUR angewendet, bricht die Prozedur bei der Grafikerstellung ab oder aber die Grafik enth¨ alt ungewollte L¨ ocher“. Die Prozedur G3GRID interpoliert z-Werte ” f¨ ur ein gleichm¨ aßiges Gitternetz von vorgegebenen x-y-Kombinationen.
104
6 Grafiken in SAS
Die Prozedur G3GRID erzeugt selbst keine Grafik, sondern einen Datensatz mit dem neuerstellten oder verfeinerten Gitternetz. Dieser dient der Prozedur G3D (oder GCONTOUR) als Eingangsdatensatz. Die allgemeine Syntax lautet: PROC G3GRID DATA= OUT=; GRID *<x-Variable>= [/ Option(en)]; Der Datensatz Datensatzname1 enth¨ alt die urspr¨ unglichen Daten, Datensatzname2 die interpolierten Werte. Die Anweisung GRID ist zum Ausf¨ uhren der Prozedur erforderlich. Die beiden wichtigsten Optionen von GRID sind SPLINE und SMOOTH=<Werteliste>. SPLINE f¨ uhrt eine Splinesch¨ atzung f¨ ur die zu interpolierenden Werte durch (siehe Harder, Desmarais, 1972 und Meinguet, 1979). SMOOTH=<Werteliste> legt die Werte f¨ ur einen Gl¨attungsparameter der Splinesch¨ atzung fest. Die Option ist nur in Verbindung mit SPLINE einsetzbar. Neben der Prozedur G3D erstellt auch PROC GCHART dreidimensionale Grafiken. Dazu gibt es die Anweisungen BLOCK, HBAR3D, VBAR3D und PIE3D. Diese erstellen dreidimensionale Balken-, S¨ aulen- und Kreisdiagramme. Zu den bekannten Optionen aus Tabelle 6.2 gibt es f¨ ur die dreidimensionalen Anweisungen weitere Optionen. Tabelle 6.4 stellt die wichtigsten zusammen.
Tabelle 6.4: Optionen f¨ ur die dreidimensionale Darstellung von PROC GCHART Option Bemerkung INSIDE=<Statistik> Gibt die Werte der angegebenen Statistik innerhalb der S¨ aulen an; gilt nur f¨ ur VBAR3D; als Statistik ist u. a. anzugeben: FREQ (H¨ aufigkeit), MEAN (Mittelwert), SUM (Summe), PERCENT (Prozent) usw. der diese S¨ aule repr¨ asentierenden Klasse NOSTATS Unterdr¨ uckt die Angabe von Kennzahlen wie Mittelwert oder absolute H¨ aufigkeit der den Balken repr¨ asentierenden Klasse (Gilt nur f¨ ur HBAR3D) OUTSIDE=<Statistik> Gibt die Werte von Statistik außerhalb der S¨ aulen an, sonst analog zu INSIDE SHAPE=B|C|H|P|S Gibt die S¨ aulen- oder Balkenform an: B=Block, C=Zylinder, H=Hexagon, P=Prisma und S=Stern (Standardeinstellung: B)
6.3 Kartogramme Kartogramme oder auch Landkartendiagramme sind zwei- oder dreidimensionale Landkarten, die auf verschiedene Weise die r¨aumliche Variation einer oder mehrerer Variablen wiedergeben. Daf¨ ur gibt es in SAS die Prozedur GMAP.
6.3 Kartogramme
105
Die Bibliothek MAPS h¨ alt Daten zur Landkartenerstellung f¨ ur fast jedes Land der Erde bereit, die Genauigkeit der Karten variiert jedoch. F¨ ur Deutschland stehen beispielsweise eine Umrisskarte, Bundesl¨ander sowie Stadt- und Landkreise zur Verf¨ ugung. PROC GMAP ben¨ otigt zwei Datens¨ atze zur Landkartenerstellung. Einen f¨ ur die Koordinaten der Landkarte (den Karten-Datensatz) und einen f¨ ur die darzustellenden Daten (den Daten-Datensatz). Der Karten-Datensatz enth¨alt die Koordinaten der zu zeichnenden Landkarte. Diese werden in der Reihenfolge des Auftretens verbunden. Zus¨ atzlich enth¨ alt der Karten-Datensatz noch eine Variable id, deren Merkmalswerte die unterschiedlichen Gebiete einer Landkarte bezeichnen. Im Falle von Deutschland sind das die Bundesl¨ander oder Stadt- und Landkreise, f¨ ur die Schweiz die Kantone. Beispiel 6.6: Zweidimensionales Kartogramm mit der Prozedur GMAP Nachstehendes Programm erstellt eine Landkarte von Deutschland auf Kreisebene, wobei der Stadtkreis Dortmund hervorgehoben ist. DATA a; id=5913; marke=1; RUN; PROC GMAP MAP=MAPS.GERMANY ALL; ID id; CHORO marke / NOLEGEND; RUN; Datensatz a enth¨ alt die Nummer der Kreises und setzt die Variable marke=1. Abbildung 6.7 zeigt die Deutschlandkarte mit den eingezeichneten Kreisen. Die Variable id bezeichnet im Karten-Datensatz MAPS.GERMANY die Kreise. Der Daten-Datensatz a enth¨ alt f¨ ur die Kreisnummer 5913 einen Wert f¨ ur die Variable marke, die in der CHORO-Anweisung abgetragen wird. Die Option ALL zeichnet alle durch die ID-Variable definierten Gebiete in die Karte ein, auch wenn der Wert der ID-Variable im Daten-Datensatz fehlt. Ohne ALL werden diese Gebiete nicht eingezeichnet. NOLEGEND unterdr¨ uckt die Ausgabe einer Legende.
106
6 Grafiken in SAS
Abbildung 6.7: Deutschlandkarte mit Stadt- und Landkreisen
Einige Karten-Datens¨ atze enthalten noch eine Variable Segment. Sie kennzeichnet r¨ aumlich getrennte Gebiete eines Landkreise durch aufsteigende Nummerierung. Landkreise ohne r¨ aumliche Trennung haben f¨ ur die Variable Segment ausschließlich den Wert 1. Landkreise mit mehreren r¨aumlich getrennten Gebieten haben f¨ ur jedes Gebiet einen anderen Wert (Gebiet1: Segment=1, Gebiet2: Segment=2,...). So ist beispielsweise der Landkreis Wittmund und die Inseln Langeoog, Spiekeroog und Wangerooge r¨aumlich getrennt, aber politisch ein Landkreis. Die zugeh¨origen Segmentwerte sind 1, 2, 3 und 4. Der Daten-Datensatz enth¨ alt die auf der Landkarte r¨aumlich darzustellenden ¨ Variablen sowie eine id-Variable wie im Karten-Datensatz. Durch Ubereinstimmung von Werten der id-Variablen aus beiden Datens¨atzen werden die Merkmalswerte aus dem Daten-Datensatz den Gebieten auf der Landkarte zugeordnet. Der Karten-Datensatz f¨ ur Deutschland heißt GERMANY . Er enth¨alt die Variablen x, y, id, Segment und State. Id hat Werte zwischen 1001 und 16045,
6.3 Kartogramme
107
f¨ ur die einzelnen Stadt- und Landkreise. State hat Werte von 1 bis 16 f¨ ur die Bundesl¨ ander. Neben dem Karten-Datensatz enth¨ alt die Bibliothek MAPS einen DatenDatensatz f¨ ur Deutschland: GERMANY2. Er dient u. a. zum Zusammenfassen von Stadt- und Landkreisen zu Bundesl¨ andern. Der Datensatz enth¨alt neben id und State auch die Variablen Country, Idname, Idname2, State1 und State2. Die Merkmalswerte von Country identifizieren ein Land, Deutsch¨ land hat beispielsweise die Zahl 394, Osterreich 165 und die Schweiz 855. Diese wird immer dann ben¨ otigt, wenn ein Land in einer Kontinent- oder Weltkarte auszuw¨ ahlen ist. Idname bzw. Idname2 enthalten die Namen der Stadt- und Landkreise. In der Variablen Idname sind die deutschen Umlaute im Gegensatz zu Idname2 aufgel¨ ost, also ae“ statt ¨a“. Die Variablen State1 ” ” und State2 enthalten analoge Bezeichnungen f¨ ur die Bundesl¨ander. Die allgemeine Syntax der Prozedur GMAP lautet: PROC GMAP MAP= DATA= [Option(en)]; ID ; BLOCK [/ Option(en)]; CHORO [/ Option(en)]; PRISM [/ Option(en)]; SURFACE [/ Option(en)]; Der Daten-Datensatz enth¨ alt die auf der Karte abzutragenden Merkmalswerte und die wichtigste Option ist ALL. Die Anweisungen BLOCK, CHORO, PRISM und SURFACE beeinflussen die Kartenform. BLOCK erzeugt eine zweidimensionale Fl¨ ache mit dreidimensionalen S¨aulen, die im Zentrum eines Kartengebiets stehen. Die Merkmalswerte repr¨asentieren die S¨ aulenh¨ ohe. CHORO f¨ ullt die angegebenen Gebiete durch Farben oder Muster. Diese Form der Karte empfiehlt sich bei wenigen Merkmalswerten oder klassierten Daten. PRISM stellt die Kartengebiete als dreidimensionale Prismen dar. Die H¨ohe des Prismas bestimmt die abzutragende Variable. Diese Darstellungsform ist sehr rechenintensiv. SURFACE erstellt eine dreidimensionale Darstellung, die an ein Gebirge“ erin” nert. Die Merkmalswerte repr¨ asentieren hierbei unterschiedlich hohe Spitzen auf der Karte. Die Standardeinstellung der Dreh- und Neigungswinkel dreidimensionaler Kartenformen ist oft nicht optimal. Beispielsweise werden Balken oder Prismen durch andere verdeckt. Daher sind die Kartogramme zur Betrachtung geeignet zu drehen.
108
6 Grafiken in SAS
Tabelle 6.5: Die wichtigsten Optionen der Anweisungen BLOCK, CHORO, PRISM und SURFACE aus der Prozedur GMAP Anweisung Option Bemerkung BLOCK
CHORO
PRISM
SURFACE
Erzwingt ein unterschiedliches Muster f¨ ur jedes Gebiet; bei nur einer ID-Variablen bewirkt AREA=1 unterschiedliche Muster f¨ ur alle Gebiete; gibt es mehrere ID-Variablen gibt AREA= die n-te Variable in der ID-Anweisung an. Nur diese Gebiete erhalten ein unterschiedliches Muster BLOCKSIZE= Bestimmt die Breite einer S¨ aulen (Standardeinstellung: 2) CBLKOUT= Gibt die Rahmenfarbe der Balken an COUTLINE= Gibt die Farbe der L¨ andergrenzen an NOLEGEND Unterdr¨ uckt die Ausgabe einer Legende SHAPE=BLOCK|STAR| Beeinflusst die Balkenform CYLINDER|PRISM| HEXAGON XVIEW=<Wert> Legt Neigungs- und Drehwinkel einer dreidiYVIEW=<Wert> mensionalen Karte fest (Standardeinstellung: ZVIEW=<Wert> XVIEW=0.5 , YVIEW=-2.3 , ZVIEW=0) DISCRETE Bildet f¨ ur jeden Merkmalswert der abzutragenden Variable eine eigene Stufe und schaltet die automatische Skalierung ab LEVELS= Erzeugt n Stufen f¨ ur die abzutragende Variable; bei Angabe von DISCRETE wird LEVELS ignoriert MIDPOINTS= Gibt u ¨ ber Werteliste die Klassenmittelpunkte <Werteliste> an Auch eine Angabe TO <m> ist m¨ oglich MISSING Erzeugt eine eigene Stufe auch f¨ ur fehlende Werte XLIGHT=<Wert> Spezifiziert die Koordinaten einer imagin¨ aren YLIGHT=<Wert> Lichtquelle, die das Aussehen der Prismen beeinflusst NLINES= Bestimmt die Anzahl der in die Oberfl¨ ache einzuzeichnenden Linien der Schraffur; je gr¨ oßer n, desto dichter die Schraffur; zul¨ assig sind Werte zwischen 50(= Standardeinstellung) und 100 ROTATE=<Winkel> Gibt den Drehwinkel der Karte um die z-Achse an (Standardeinstellung: 70 Grad) TILT=<Winkel> Gibt den Neigungswinkel der Karte um die yAchse an (Standardeinstellung: 70 Grad) AREA=
(Fortsetzung n¨ achste Seite)
6.3 Kartogramme
109
Tabelle 6.5 (Fortsetzung) Anweisung Option XSIZE=
YSIZE=
Beschreibung Gibt die Breite der zu zeichnenden Karte an; in der Standardeinstellung wird die gesamte zur Verf¨ ugung stehende Breite der Ausgabefl¨ ache (vgl. Abschnitt 6.4) verwendet Gibt die H¨ ohe der zu zeichnenden Karte an; in der Standardeinstellung wird die gesamte zur Verf¨ ugung stehende H¨ ohe der Ausgabefl¨ ache (vgl. Abschnitt 6.4) verwendet
Alle Optionen f¨ ur CHORO gelten auch f¨ ur BLOCK und PRISM. F¨ ur PRISM gilt zus¨ atzlich XSIZE|YSIZE der Anweisung SURFACE. Beispiel 6.7: Prismen-Kartogramm mit der Prozedur GMAP Nachstehendes Programm erzeugt ein Kartogramm f¨ ur die Ozonbelastung in der Schweiz f¨ ur das Jahr 2002. Die Ozonbelastung in µg/m3 l¨asst sich in drei Klassen einteilen: 0 bis 175 , zwischen 175 und 205 sowie mehr als 205 . DATA Ozon; INPUT Ozon id @@; DATALINES; 188 1 174 3 213 4 189 9 152 10 201 11 178 16 208 17 207 18 163 23 188 24 215 25 ; RUN;
205 5 200 12 178 19 200 26
165 6 162 13 186 20
168 7 206 14 226 21
PROC GMAP DATA=Ozon MAP=MAPS.Switzerl ALL; ID id; PRISM Ozon / NOLEGEND MIDPOINTS=(160 190 220) XLIGHT=5 XVIEW=0.75 ZVIEW=10.5; RUN; Abbildung 6.8 zeigt das Ergebnis.
175 8 177 15 181 22
110
6 Grafiken in SAS
Abbildung 6.8: Ozonbelastung in den Schweizer Kantonen
Der Ozonwert wird durch die H¨ ohe der Prismen dargestellt. Die Kantone Basel-Land, Basel-Stadt, Nidwalden, Schwyz, Solothurn, Tessin und Zug weisen die h¨ ochste Belastung auf. F¨ ur den Kanton Inner-Rhoden liegt keine Ozonmessung vor. Oft ist die Einteilung des Karten-Datensatzes zu fein. So weist der Datensatz GERMANY s¨ amtliche Stadt- und Landkreise von Deutschland auf. Eine Darstellung auf Stadt und Landkreisebene erschwert jedoch das Erkennen der Bundesl¨ ander (vgl. Abbildung 6.7). Dies kann man auf zwei Weisen umgehen. Ein erster Ansatz ist, in der ID-Anweisung statt id die Variable State anzugeben. Die Bundesl¨ ander sind so zwar zu erkennen, die Kreise sind jedoch weiter eingezeichnet. Eine Alternative bietet die Prozedur GREMOVE. Diese fasst beispielsweise die Stadt- und Landkreise zu den entsprechenden Bundesl¨andern zusammen. Die allgemeine Syntax ist gegeben durch: PROC GREMOVE DATA= OUT=; BY ; ID ; Datensatz1 gibt den zu bearbeitenden Datensatz an. Datensatz2 enth¨alt das Ergebnis der Berechnung von GREMOVE. ID gibt die Variable an, deren Merkmalswerte zu fein unterteilt sind. Im Falle von Deutschland enth¨alt die ID-Variable die Kreise. BY gibt an, bez¨ uglich welcher Variablen die Einteilung zusammengefasst wird. Die Prozedur GREMOVE erzeugt selbst weder Grafiknoch Textausgabe. Beispiel 6.8: Deutschlandkarte auf L¨ anderebene mit den Prozeduren GREMOVE und GMAP Nachstehendes Programm fasst Stadt- und Landkreise zu einem Bundesland zusammen.
6.3 Kartogramme
111
DATA Deutschland; MERGE MAPS.GERMANY MAPS.GERMANY2; BY id; RUN; PROC GREMOVE DATA=Deutschland OUT=Neu; BY state; ID id; RUN; PROC GMAP MAP=Neu DATA=MAPS.GERMANY2 ALL; ID state; CHORO state / NOLEGEND DISCRETE; RUN; Abbildung 6.9 zeigt die so erstellte Deutschlandkarte:
Abbildung 6.9: Deutschlandkarte mit Bundesl¨ andern
112
6 Grafiken in SAS
6.4 Individuelles Anpassen von Grafiken Die Grafiken in diesem Kapitel sind mit den Standardeinstellungen der Prozeduren erstellt worden und deshalb noch verbesserungsf¨ahig. SAS bietet zur individuellen Grafikgestaltung weitere von der Grafikprozedur unabh¨angige Anweisungen an. ¨ Jede Grafik ben¨ otigt eine Uberschrift. In SAS dient dazu die Anweisung TITLE [Option(en)] ’Text’ ¨ ¨ Sie weist einer Grafik die unter ’Text’ stehende Uberschrift zu. Eine Uber¨ schrift erscheint zun¨ achst zentriert u ¨ ber der Grafik. Bis zu 10 Uberschriften sind durch das hinter dem Schl¨ usselwort TITLE definierbar. Eine einmal gesetzte TITLE-Anweisung wirkt sich auf alle nachstehenden Prozeduren aus. ¨ Sie erhalten alle die so definierte Uberschrift, unabh¨angig davon, ob es sich um eine grafikerzeugende Prozedur handelt oder nicht. Das erneute Verwenden einer bereits vergebenen TITLE-Anweisung u ¨ berschreibt den alten Inhalt von ’Text’, w¨ ahrend TITLE die entsprechende ¨ Uberschrift l¨ oscht. Die Anweisung TITLE ohne Optionen und ’Text’ l¨oscht ¨ dagegen alle Uberschriften. TITLE kann sowohl innerhalb als auch außerhalb einer Prozedur stehen. Die Anweisung FOOTNOTE FOOTNOTE [Option(en)] ’Fußnote’ erzeugt eine Fußnote (zentriert) und die Anweisung NOTE [Option(en)] ’Bemerkung’ schreibt die ’Bemerkung’ direkt in eine Grafik. Die Optionen erm¨oglichen eine beliebige Positionierung, Standardeinstellung ist linksb¨ undig. ¨ Eine Grafik kann nur den Raum zwischen Uberschriften und Fußnote ausf¨ ullen. Dieser Raum heißt Ausgabefl¨ ache. NOTE kann einen Text an beliebige Stelle dieser Ausgabefl¨ ache schreiben. Anders als die TITLE-Anweisung ur jede Bemuss NOTE innerhalb der grafikerzeugenden Prozedur stehen. F¨ merkung ist eine eigene NOTE-Anweisung zu verwenden. Tabelle 6.6 f¨ uhrt die Optionen f¨ ur die Anweisungen TITLE, FOOTNOTE und NOTE auf. Tabelle 6.6: Optionen f¨ ur die Anweisungen TITLE, FOOTNOTE und NOTE Option Beschreibung ANGLE=<Winkel>
BOX=1|2|3|4
Gibt den Winkel zur Drehung des auszugebenden Textes an; der Wertebereich liegt zwischen –90 und 90 Grad (Standardeinstellung: 0 Grad) Umrahmt Text in der angegebenen Strichst¨ arke; 1 ist die d¨ unnste und 4 die dickste Linie (Fortsetzung n¨ achste Seite)
6.4 Individuelles Anpassen von Grafiken
113
Tabelle 6.6 (Fortsetzung) Option
Beschreibung
COLOR=
Gibt die Textfarbe an; als Wert von Farbe ist der englische Name der Farbe einzutragen Gibt die Schriftart des auszugebenden Textes an; m¨ ogliche Schriftarten sind GERMAN, GREEK, ITALIC, SIMPLEX, SWISS Gibt die Schriftgr¨ oße in cm, inch oder Prozent der Ausgabefl¨ ache an Gibt die Textausrichtung an; m¨ oglich sind L=linksb¨ undig, R=rechtb¨ undig und C=zentriert Unterstreicht den Text in der angegebenen Strichst¨ arke; 0 ist die d¨ unnste und 3 die dickste Linie
FONT=<Schriftart>
HEIGHT=<Wert> CM|IN|PCT JUSTIFY=L|R|C UNDERLINE=0|1|2|3
Die aufgef¨ uhrten Optionen beeinflussen den Text der Anweisungen TITLE, FOOTNOTE und NOTE nur dann, wenn sie vor diesen stehen. Ohne die Optionen erscheint der Text unformatiert. Die Anweisungen AXIS, LEGEND, PATTERN und SYMBOL beeinflussen die Grafik selbst. AXIS [Option(en)] ver¨ andert die sonst automatisch vergebene Einteilung und Beschriftung der Achsen. Bis zu 99 AXIS-Anweisungen sind m¨oglich. Sie gelten bis sie u ¨ berschrieben werden. Die Anweisung AXIS ohne Optionen l¨oscht die vorgenommenen Einstellungen. Auch die AXIS kann innerhalb oder außerhalb einer Prozedur definiert werden. Eine mit AXIS definierte Achseneinteilung und -beschriftung wird von einer grafikerzeugenden Prozedur nicht automatisch ber¨ ucksichtigt. Erst ein Bezug auf die so definierte Achse ver¨ andert die Darstellung. Die Tabelle 6.7 listet die Optionen der AXIS-Anweisung auf. Tabelle 6.7: Optionen der AXIS-Anweisung Option Beschreibung LABEL=NONE|(’Text’)
LENGTH= CM|IN|PCT
LOGBASE |PI|E
Gibt den Text an, der anstelle des Variablennamens als Achsenbeschriftung dient; LABLE=NONE unterdr¨ uckt jede Art von Beschriftung Beeinflusst u ange der Achse; Maߨ ber n die L¨ einheiten sind cm, inch oder Prozent der Achsengesamtl¨ ange Gibt eine logarithmisch skalierte Achse mit der angegebenen Basis n, PI oder E an, mit n > 1 (Fortsetzung n¨ achste Seite)
114
6 Grafiken in SAS Tabelle 6.7 (Fortsetzung)
Option
Beschreibung
MAJOR=NONE|([H=] [N=] [W=])
Gibt die Hauptwertemarkierung der Achse an MAJOR=NONE unterdr¨ uckt diese Markierung H¨ ohe, Anzahl und Breite bestimmen die H¨ ohe, Anzahl und Breite der Hauptwertemarkierungen Gibt die Zwischenwertemarkierung der Achse an; analog zu MAJOR Legt u ¨ ber n den Platz zwischen der ersten Hauptwertemarkierung und dem Achsenursprung fest m gibt den Platz zwischen der letzten Hauptwertemarkierung und dem Achsenende an; die Angaben erfolgen in cm, inch oder Prozent der Achsengesamtl¨ ange Gibt die Achsenskalierung u ¨ ber Skalierung an; die Werte f¨ ur Skalierung sind entweder explizit oder in der Form TO <m> anzugeben; die Merkmalswerte, die gr¨ oßer als die Skalierung sind, werden nicht mit in die Grafik eingezeichnet Gibt den zur Hauptwertemarkierung zu benutzenden Text an; VALUE=NONE unterdr¨ uckt die Achsenbeschriftung Gibt die Strichst¨ arke der Achsen in Bildpunkten (Pixel) an
MINOR=NONE|([H=] [N=] [W=]) OFFSET=( CM|IN|PCT, <m> CM|IN|PCT)
ORDER=(<Skalierung>)
VALUE=NONE|(’Text’...’Text’)
WIDTH=
Die Anweisung LEGEND ver¨ andert die zur Grafik geh¨orenden Legende. Die Syntax lautet: LEGEND [Option(en)] Auch LEGEND ist inner- oder außerhalb von Prozeduren verwendbar. Eine ¨ einmal gesetzte LEGEND-Anweisung bleibt bis zum Uberschreiben in Kraft. LEGEND ohne Optionen l¨ oscht alle definierten LEGEND-Anweisungen. Tabelle 6.8 stellt die wichtigsten Optionen der LEGEND-Anweisung zusammen. Tabelle 6.8: Die wichtigsten Optionen der Anweisung LEGEND Option Beschreibung ACROSS= DOWN= FRAME
Legt die Anzahl horizontal nebeneinander stehender Legendeneintr¨ age fest Legt die Anzahl vertikal untereinander stehender Legendeneintr¨ age fest Zeichnet einen Rahmen um die Legende (Fortsetzung n¨ achste Seite)
6.4 Individuelles Anpassen von Grafiken
115
Tabelle 6.8 (Fortsetzung) Option
Beschreibung
LABEL=NONE|(’Text’)
Gibt den Text an, der anstelle des Variablennamens in der Legende verwendet wird; LABLE=NONE unterdr¨ uckt jede Art von Beschriftung Legt die Position der Legende fest; BOTTOM, MIDDLE oder TOP gibt die vertikale Ausrichtung der Legende an (unten, mittig oder oben); LEFT, CENTER oder RIGHT gibt entsprechend die horizontale Ausrichtung an INSIDE oder OUTSIDE legt die Position der Legende bez¨ uglich der Achsen fest; die Standardeinstellung ist (BOTTOM CENTER OUTSIDE) Gibt den Text f¨ ur die Legendeneintr¨ age an; VALUE=NONE nimmt keine Beschriftung vor
POSITION=( )
VALUE=NONE|(’Text’...’Text’)
Die Anweisung PATTERN erm¨ oglicht das Ausf¨ ullen von Grafiken mit F¨ ullmustern und Farben. PATTERN [Option(en)] ist inner- oder außerhalb einer Prozedur verwendbar. Sie erlaubt bis zu 99 Muster und hat im Unterschied zu AXIS oder LEGEND eine Art Ged¨achtnis“. Wird ” ein Muster unter einer bestimmten Nummer, z. B. PATTERN1, definiert und diese Definition zu einem sp¨ ateren Zeitpunkt u ¨ berschrieben, aber die zuvor gesetzten Optionen nicht ver¨ andert oder gel¨ oscht, bleiben diese Optionen bestehen.
Tabelle 6.9: Optionen der Anweisung PATTERN Option Bemerkung COLOR= Gibt die Farbe an, die f¨ ur das Muster benutzt wird; es ist der englische Name f¨ ur Farbe anzugeben REPEAT= Verwendet das definierte Muster n-mal hintereinander; damit ist das gleiche Muster f¨ ur durch SUBGROUP erstellte Gruppen verwendbar (SUBGROUP-Option von PROC GCHART) VALUE=<Muster> Legt das Muster fest: VALUE=E erzeugt leere Balken, VALUE=S erzeugt ausgef¨ ullte Balken (mit der unter COLOR angegebenen Farbe); VALUE=L1,...,VALUE=L15 erstellt Schraffuren mit Linien von links oben nach rechts unten; VALUE=R1,...,VALUE=R15 schraffiert von rechts oben nach links unten und VALUE=X1,...,VALUE=X15 erstellt gekreuzte Schraffuren
116
6 Grafiken in SAS
Die SYMBOL-Anweisung beeinflusst entscheidend die durch die Prozeduren GPLOT oder GCONTOUR erstellte Grafik. So kann man die Gestalt, Gr¨oße und Farbe der darzustellenden Symbole ver¨ andern. Zudem l¨asst sich damit auch der Grafiktyp ver¨ andern. Beispielsweise bestimmt SYMBOL eine Regressionsgerade (vgl. Kapitel 9), einen Box-Plot oder eine empirische Verteilungsfunktion (vgl. Kapitel 7) ohne eine spezielle Prozedur zu verwenden. Auch die SYMBOLAnweisung kann inner- oder außerhalb einer Prozedur angegeben werden. Wie PATTERN besitzt sie ein Ged¨ achtnis“. ” Die allgemeine Syntax lautet: SYMBOL [Option(en)] Die Zuordnung von SYMBOL zur PLOT-Anweisung von PROC GPLOT erfolgt entweder in der Reihenfolge des Auftretens oder durch die Angabe der Nummer von SYMBOL. Das Programm SYMBOL1 COLOR=CYAN; SYMBOL2 COLOR=BLACK; PROC GPLOT; PLOT a*b; PLOT c*d; RUN; erstellt eine Grafik f¨ ur die Variablen a und b in der Farbe t¨ urkis (CYAN). Die Grafik f¨ ur die Variablen c und d erscheint in schwarz. Die Zuordnung erfolgt u ¨ ber die Reihenfolge der SYMBOL-Anweisungen. ¨ Die nachstehende Anderung am Programmcode ordnet den Grafiken eine bestimmte Farbe zu: SYMBOL1 COLOR=CYAN; SYMBOL2 COLOR=BLACK; PROC GPLOT; PLOT a*b=2; PLOT c*d=1; RUN; Die erste Grafik (Variable a und b) erscheint nun in schwarz und die zweite in t¨ urkis. Tabelle 6.10 zeigt die Optionen von SYMBOL.
6.4 Individuelles Anpassen von Grafiken
117
Tabelle 6.10: Optionen der Anweisung SYMBOL Option Beschreibung Legt die Farbe f¨ ur die Grafiksymbole und Linien fest; es sind die englischen Namen f¨ ur Farbe anzugeben FONT=<Schriftart> Gibt die Schriftart f¨ ur die unter VALUE=<Symbol> angegebenen Grafiksymbole an HEIGHT= Gibt die Gr¨ oße des Grafiksymbols an (siehe VALUE); diese CM|IN|PCT ist in cm, inch oder Prozent der Ausgabefl¨ ache anzugeben LINE= Bestimmt den Linientyp; f¨ ur n sind Werte zwischen 0 und 46 erlaubt; die Null entspricht keiner Linie, die eins einer durchgezogene Linie; Werte zwischen zwei und 46 erzeugen unterschiedlich gestrichelte Linien REPEAT= Verwendet die SYMBOL-Anweisung n-mal hintereinander VALUE=NONE| Bestimmt das Symbol f¨ ur die Merkmalswerte; folgen<Symbol>| de Werte sind zul¨ assig: PLUS (Standardeinstellung), ASTERISK, CIRCLE, DIAMOND, DOT, SQUARE, STAR, TRIANGLE; VALUE=NONE unterdr¨ uckt die Darstellung der Merkmalswerte; ’Zeichen’ kann jedes alphanumerische Zeichen in der unter FONT angegebenen Schriftart sein COLOR=
Eine besondere Rolle in der SYMBOL-Anweisung spielt die Option INTERPOLATION=. In Abh¨ angigkeit von INTERPOLATION wird eine Regressionsgerade, ein Box-Plot oder die empirische Verteilungsfunktion erzeugt. Tabelle 6.11 f¨ uhrt die wichtigsten Optionen dazu auf. Tabelle 6.11: Optionen von INTERPOLATION in der SYMBOL-Anweisung Option Beschreibung Erstellt einen oder mehrere Box-Plots (vgl. Kapitel 7) f¨ ur die y-Werte gruppiert nach den x-Werten; J verbindet die Mediane mehrerer Box-Plots mit einer Linie und T markiert das obere und untere Ende mit einem Querstrich JOIN Verbindet die einzelnen Merkmalswerte mit einer Linie in der Reihenfolge ihres Auftretens im Datensatz NEEDLE F¨ allt von jedem Merkmalswert das Lot auf die x-Achse NONE Zeichnet nur unverbundene Merkmalswerte R[L|Q|C][0][CLI|CLM] Berechnet eine Regressionsgerade; L, Q und C legen die Art der Regression fest: linear, quadratisch und kubisch; 0 unterdr¨ uckt den Achsenabschnitt; CLI|CLM berechnet Konfidenzgrenzen f¨ ur die individuellen bzw. mittleren Vorhersagewerte zu einem angegebenen Niveau zwischen 50 % und 95 % ; das Niveau ist als Zahl (ohne Einheit) direkt hinter CLI bzw. CLM zu schreiben, also beispielsweise CLI95 f¨ ur ein 95 %-Konfidenzintervall BOX[J][T]
(Fortsetzung n¨ achste Seite)
118
6 Grafiken in SAS Tabelle 6.11 (Fortsetzung)
Option
Beschreibung
STEP[L|R|C][J][S]
Zeichnet eine Treppenfunktion; STEPL definiert den jeweiligen x-Wert als linken Endpunkt der zu zeichnenden horizontalen Linie; f¨ ur STEPR ist der x-Wert der rechte Endpunkt und f¨ ur STEPC der Mittelpunkt; die H¨ ohe der Linie ist durch den y-Wert gegeben; J verbindet die einzelnen Stufen mit vertikalen Geraden; S sortiert die x-Werte vor der Grafikausgabe
Zum besseren Verst¨ andnis einzelner Optionen sind die Begriffe oben ausgeschrieben. Sie lassen sich auch abk¨ urzen: A C F H I J L V W
= = = = = = = = =
ANGLE (Drehwinkel) COLOR (Vordergrundfarbe) FONT (Schriftart) HEIGHT (Gr¨oße der Schrift/des Grafiksymbols) INTERPOLATION (Art der Punkteverbindung) JUSTIFY (Textausrichtung) LINE (Linienart) VALUE (Grafiksymbol) WIDTH (Liniendicke)
Deutsche Umlaute sowie Sonderzeichen in der Grafikausgabe sind problematisch. Beispielsweise gibt die Schriftart SWISS (das entspricht Arial“) f¨ ur ” a“ ein µ“ aus. Durch die folgende Codierung l¨asst sich dies vermeiden. das ¨ ” ” Das X und die Anf¨ uhrungszeichen um die zweistellige, hexadezimale Zahl sind dabei in jedem Fall mit anzugeben. Tabelle 6.12: Codierung deutscher Umlaute Umlaut Codierung ¨ A ’8E’X ¨ O ’99’X ¨ U ’9A’X a ’84’X ¨ o ’94’X ¨ u ’81’X ¨ ß ’B8’X
Die Grafiken aus den Beispielen 6.1 und 6.2 sind mit den hier vorgestellten Optionen zu verbessern. Folgendes Programm zeigt, wie man Abbildung 6.2 verbessert:
6.4 Individuelles Anpassen von Grafiken
PATTERN1 PATTERN2 PATTERN3 PATTERN4 PATTERN5 PATTERN6
C=GRAY V=S; C=BLACK V=S; C=BLACK V=S; C=BLACK V=S; C=LTGRAY V=S; C=BLACK V=S;
* * * * * *
ANDERE; CDU; FDP; GR¨ UNE; PDS; SPD;
PROC FORMAT; VALUE $Name ’GRUENE’=’Gr’ ’81’X ’ne’ ’ANDERE’=’Andere’ ’FDP’=’F.D.P.’; RUN; TITLE1 F=SIMPLEX H=2.4 C=BLACK ’Bundestagswahl 2002’; TITLE2 F=SIMPLEX H=1.2 C=BLACK ’-Zweitstimmenergebnis-’; AXIS1 ORDER=(0 TO 40 BY 5) MINOR=NONE LABEL=(F=SIMPLEX H=1.4 A=90 ’Prozent’) VALUE=(F=SIMPLEX H=1.2); AXIS2 LABEL=(F=SIMPLEX H=1.4 ’Partei’) VALUE=(F=SIMPLEX H=1.2); PROC GCHART DATA=Bundestagswahl; VBAR Partei / SUMVAR=Anteil DESCENDING SUBGROUP=Partei RAXIS=AXIS1 MAXIS=AXIS2 NOLEGEND WIDTH=8 SPACE=1.5 OUTSIDE=SUM; FORMAT PARTEI $Name.; RUN; Abbildung 6.10 zeigt das verbesserte Ergebnis.
119
120
6 Grafiken in SAS
38.5
38.5
8.6 7.4 4.0
3.0
¨ Abbildung 6.10: Verbessertes Balkendiagramm mit Achsenbeschriftung und Uberschrift
Die Graustufen zeigen, welche Parteien in den Bundestag eingezogen sind und welche nicht. Die Sonderrolle der PDS rechtfertigt ein weiteres farbliches Absetzen. Die einzelnen Balken sind breiter als in der Standardeinstellung und ¨ halten einen harmonischen Abstand ein. Die Grafik hat eine Uberschrift und die Achsen sind sinnvoll beschriftet. Die Prozedur FORMAT passt f¨ ur bestimmte Parteien die Beschriftung an und verwendet f¨ ur den Umlaut u ¨“ die in der ” Tabelle 6.12 aufgef¨ uhrte Codierung. Die zur Verbesserung der Abbildung 6.1 notwendige Syntax lautet:
6.4 Individuelles Anpassen von Grafiken
121
PROC GPLOT; TITLE F=SWISSB H=1.8 ’Windrosenmuster’; TITLE2 F=SWISS H=1.1 ’Streudiagramm der BMW-Renditen gegen verz’ ’94’X ’gerte BMW-Renditen’; SYMBOL1 I=NONE V=POINT; AXIS1 ORDER=(-0.04 TO 0.04 BY 0.02) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Rendite’) VALUE=(F=SIMPLEX H=1.2) MINOR=NONE; AXIS2 ORDER=(-0.04 TO 0.04 BY 0.02) LABEL=(F=SIMPLEX H=1.4 ’Verz’ ’94’X ’gerte Rendite’) VALUE=(F=SIMPLEX H=1.2) MINOR=NONE; PLOT bmw1*lbmw1 /VAXIS=AXIS1 HAXIS=AXIS2; RUN; Abbildung 6.11 zeigt das verbesserte Ergebnis:
¨ Abbildung 6.11: Verbessertes Streudiagramm mit Achsenbeschriftung und Uberschrift
Dieses Ph¨ anomen entsteht durch das Runden kleiner Aktienkurswerte auf Pfennig- bzw. Cent-Betr¨ age (vgl. Kr¨ amer, Runde, 1997).
122
6 Grafiken in SAS
Auch Kartogramme lassen sich individuell Anpassen. Abbildung 6.12 zeigt die Anzahl an Verkehrsunf¨ allen in den St¨ adten und Landkreisen in NordrheinWestfalen im Jahr 2001. Das Programm dazu lautet: PATTERN1 PATTERN2 PATTERN3 PATTERN4 PATTERN5 PATTERN6 PATTERN7 PATTERN8
COLOR=GRAYE7 COLOR=GRAYD0 COLOR=GRAYB7 COLOR=GRAYA0 COLOR=GRAY87 COLOR=GRAY70 COLOR=GRAY40 COLOR=GRAY00
V=S; /* niedrigste Unfallzahl */ V=S; V=S; V=S; V=S; V=S; V=S; V=S; /* h¨ ochste Unfallzahl */
PROC GMAP MAP=MAPS.GERMANY DATA=Unfall1; TITLE F=SIMPLEX H=1.7 ’Anzahl der Verkehrsunf’ ’84’X ’lle in NRW im Jahr 2001’; LEGEND1 ACROSS=1 LABEL=(H=1.4 F=SIMPLEX ’’) VALUE=(F=SIMPLEX H=1.0 ’< 1000’ ’1001-1500’ ’1501-2000’ ’2001-2500’ ’2501-3000’ ’3001-3500’ ’3501-4000’ ’> 4001’) SHAPE=BAR(0.4CM,0.15CM) POSITION=(BOTTOM RIGHT INSIDE); ID id; CHORO unfaelle / LEGEND=LEGEND1 COUTLINE=BLACK MIDPOINTS=(750 TO 4250 BY 500); RUN; Der Datensatz Unfall enth¨ alt die Variablen unfaelle und id. Die Merkmalswerte dieser Variablen geben die Unfallzahl an und eine vierstellige Zahl zur Identifikation der einzelnen St¨ adte und Landkreise von Nordrhein-Westfalen. Abbildung 6.12 zeigt das Ergebnis:
6.5 Hinweise zur besseren Grafikgestaltung
123
Abbildung 6.12: Individuell angepasstes Kartogramm mit der Prozedur GMAP
Die St¨ adte K¨ oln, D¨ usseldorf und Dortmund sowie der Landkreis Recklinghausen haben die h¨ ochste Unfallzahl. Die St¨adte Solingen, Bottrop und Remscheid die niedrigste.
6.5 Hinweise zur besseren Grafikgestaltung Im Allgemeinen lassen sich mit den Standardeinstellungen nur selten optimale Darstellungen erreichen. Verschiedene Daten bzw. Anwendungen ben¨otigen unterschiedliche Darstellungsformen (z. B. Liniendiagramm f¨ ur zeitlich geordnete Daten). Grafiken haben einen Titel sowie eine aussagekr¨aftige Achsenbeschriftung. Gegebenenfalls ist eine Legende zu verwenden, beispielsweise wenn mehrere Grafiken in einem Koordinatensystem dargestellt sind. Die Schriftgr¨ oße f¨ ur Titel, Legende und Achsenbeschriftung ist entsprechend der geplanten Anwendung ausreichend groß zu w¨ahlen. Eine Grafik auf dem Bildschirm ben¨ otigt eine andere Schriftgr¨ oße als eine Grafik auf Papier. Die Grafiksymbole sind ebenfalls sorgf¨ altig auszuw¨ahlen. Einfache Symbole wie Punkt, Kreis oder Rhombus erh¨ ohen die Lesbarkeit. Unterschiedliche Symbole helfen beim Verst¨ andnis mehrerer Grafiken in einem einzigen Koordinatensystem.
124
6 Grafiken in SAS
Wichtig sind zudem die richtigen Proportionen. Achsen sind nicht unn¨otig zu stauchen und Transformationen dieser deutlich zu kennzeichnen. Sind nur Ausschnitte dargestellt, ist darauf hinzuweisen. Das Verwenden von dreidimensionalen Diagrammen ohne eine dritte Dimension in den Daten ist nicht sinnvoll. Das bloße aufpeppen“ durch ein dreidi” mensionales Diagramm ist zu vermeiden. Farben sind nur mit großer Vorsicht und unter Ber¨ ucksichtigung farbpsychologischer Erkenntnisse zu verwenden. Eine Grafik darf farbig sein, aber nicht bunt!
6.6 Allgemeine Grafikoptionen und der Grafikexport Manchmal sind gewisse Grafikeinstellungen f¨ ur alle Grafikprozeduren gemeinsam vorzunehmen. Analog zu den OPTIONS der Textausgabe (vgl. Abschnitt 5.1), erreicht man dies mit der Anweisung GOPTIONS. Die allgemeine Syntax dieser Anweisung lautet: GOPTIONS [Option(en)] Diese Optionen gelten dann f¨ ur alle nachfolgenden Grafikprozeduren. Mehrere Optionen in einer GOPTIONS-Anweisung sind durch Leerzeichen zu trennen. Mit PROC GOPTIONS; RUN; lassen sich die aktuell gesetzten Optionen abfragen und im Log-Fenster ausgeben. Mit GOPTIONS RESET=ALL kann man alle Grafikoptionen wie beispielsweise F¨ ullmuster, Farben, Titel, Achseneinstellungen auf ihre Standardwerte zur¨ ucksetzen. Alle in SAS erstellten Grafiken erscheinen standardm¨aßig im Hochformat. Die Anweisung GOPTIONS ROTATE=LANDSCAPE|PORTRAIT erm¨ oglicht einen Formatwechsel, wobei LANDSCAPE dem Querformat entspricht. Diese Option beeinflusst nur Grafiken, die als Datei exportiert werden (siehe weiter unten). Die Optionen HSIZE=[CM|IN] und VSIZE=[CM|IN] ver¨ andern die Breite und H¨ohe der auszugebenden Grafik, sowohl am Bildschirm als auch beim Export.
6.6 Allgemeine Grafikoptionen und der Grafikexport
125
Die Option CBACK= ver¨ andert die Hintergrundfarbe. Als Farbe ist der englische Name der Farbe anzugeben. COLORS=() ver¨andert die Vordergrundfarbe. Ist mehr als eine Farbe anzugeben, sind diese durch Leerzeichen zu trennen. Mit den Optionen FTEXT=<Schriftart>, CTEXT= und HTEXT= [CM|IN] lassen sich die Schriftart, -farbe und -gr¨oße global einstellen. Die Option DEVICE= gibt das Ausgabeger¨at an. Die Standardeinstellung ist WIN und erm¨ oglicht die Grafikausgabe auf den Bildschirm. Zum Grafikexport sind andere Ger¨ ate zu w¨ ahlen. Eine M¨oglichkeit des Grafikexports ist die im Grafikausgabe-Fenster angezeigte Grafik zu markieren und mit STRG+C auszuschneiden. Die so exportierte“ Grafik ist allerdings von ” schlechter Qualit¨ at. Eine bessere Qualit¨ at erh¨alt man durch das Speichern der Grafik in einer Datei. Dazu ist der Ger¨ atename mit DEVICE= zu ver¨ andern. Der Aufruf von PROC GDEVICE NOFS CAT=SASHELP.DEVICES; LIST _ALL_; RUN; zeigt die verschiedenen Ger¨ atenamen (insgesamt 384!) im TextausgabeFenster an. Tabelle 6.13 stellt die wichtigsten dieser Namen zusammen. F¨ ur einen Grafikexport in eine Datei ist DEVICE= allein nicht ausreichend. Zus¨ atzlich sind die beiden Optionen GSFNAME= und GSFMODE=APPEND|REPLACE anzugeben. GSFNAME= verweist auf eine Grafik, wobei der acht Zeichen lange Name frei w¨ahlbar ist. Die Anweisung FILENAME ’Dateiname’ innerhalb der grafikerzeugenden Prozedur speichert die Grafik in die angegebene Datei. Dateiname kann auch Verzeichnisangaben einschließen. Name bezieht sich dabei auf den durch GSFNAME= gesetzten Verweis. Die Option GSFMODE entscheidet dar¨ uber, ob die Grafik neu erzeugt wird (REPLACE) oder an eine bestehende Datei angef¨ ugt wird (APPEND). Beispiel 6.9: Grafikexport mit GOPTIONS Nachstehendes Programm erzeugt das Streudiagramm aus Abbildung 6.11. GOPTIONS COLORS=(BLACK) CBACK=WHITE DEVICE=PSLEPSF GSFNAME=abc GSFMODE=REPLACE HSIZE=12CM VSIZE=12.8CM; TITLE F=SWISSB H=1.8 ’Windrosenmuster’; TITLE2 F=SWISS H=1.1 ’Streudiagramm der BMW-Renditen gegen verz’ ’94’X ’gerte BMW-Renditen’; SYMBOL1 I=NONE V=POINT;
126
6 Grafiken in SAS
AXIS1 ORDER=(-0.04 TO 0.04 BY 0.02) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Rendite’) VALUE=(F=SIMPLEX H=1.2) MINOR=NONE; AXIS2 ORDER=(-0.04 TO 0.04 BY 0.02) LABEL=(F=SIMPLEX H=1.4 ’Verz’ ’94’X ’gerte Rendite’) VALUE=(F=SIMPLEX H=1.2) MINOR=NONE; PROC GPLOT; FILENAME abc ’C:\SAS-Buch\Windrose.eps’; PLOT bmw1*lbmw1 / VAXIS=AXIS1 HAXIS=AXIS2; RUN;
Tabelle 6.13: Die wichtigsten Ger¨ atenamen zum Grafikexport Ger¨ atename Beschreibung BMP Bitmap-Format (256-farbig) CGMOF97L Computer Graphics Metafile-Format f¨ ur MS OFFICE 97 (Querformat) CGMOF97P CGM-Format f¨ ur MS OFFICE 97 (Hochformat) CGMMPPA CGM-Format f¨ ur MS Powerpoint IMGGIF Graphics Interchange Format (256-farbig) JPEG Joint Photographic Experts Group-Format (256-farbig) PSLEPSFC Encapsulated Postscript TIFFP Tag Image File Format (256-farbig) WIN Bildschirmausgabe
Dateiendung .bmp .cgm .cgm .cgm .gif .jpg .eps .tif
Ohne weitere Erl¨ auterung der Prozedur sei ein Programm angegeben, welches die in SAS verf¨ ugbaren Schriften im Textausgabe-Fenster auflistet: PROC CATALOG C=SASHELP.FONTS; CONTENTS; RUN; Kursive Schriftarten enden dabei auf den Buchstaben i“ und Schriftarten mit ” fettgedruckten Buchstaben enden auf den Buchstaben b“. ”
¨ 6.7 Ubungsaufgaben
127
¨ 6.7 Ubungsaufgaben Aufgabe 6.1: Erstellen Sie f¨ ur die Daten aus Beispiel 6.2 ein Kreisdiagramm. Heben Sie das Segment der anderen Parteien ab und f¨ arben Sie die einzelnen Segmente in den Farben der Parteien ein. atzlich die Optionen ANGLE=180 und Hinweis: Verwenden Sie dazu zus¨ PERCENT=ARROW. Aufgabe 6.2: Stellen Sie die Funktion f (x, y) = x2 + 2y 2 , mit x, y ∈ [−2; 2], grafisch dar. Beschriften Sie die x- und y-Achse mit den Werten -2, -1, 0, 1, 2. Aufgabe 6.3: Zeichnen Sie f¨ ur die Funktion aus Aufgabe 6.2 ein H¨ohenliniendiagramm und exportieren Sie dieses als Bitmap-Datei. Aufgabe 6.4: Erstellen Sie ein Kartogramm f¨ ur die Einwohner Australiens und f¨arben Sie die Bundesl¨ ander und Territorien gem¨ aß der ansteigenden Einwohnerzahl ¨ ein. Setzen Sie eine Uberschrift und Legende. Der Datensatz Australien ist gegeben durch: DATA Australien; INPUT id Einwohner; DATALINES; 1 301.7 2 6081.2 3 172.2 4 3233.9 5 1471.9 6 472.6 7 4487.0 8 1715.3 ; RUN;
Teil III
Grundlagen der Statistik
7 Standardverfahren der beschreibenden Statistik
Die beschreibende oder auch deskriptive Statistik fasst große Datenmengen durch geeignete Kennzahlen zusammen. Die Beschreibung durch diese bedeutet aber auch einen Informationsverlust. Die wichtigsten Kennzahlen sind Mittelwerte und Streuungsmaße. Bevor die Methoden der beschreibenden Statistik vorgestellt werden, seien folgende Notationen eingef¨ uhrt: Objekte an denen Messungen vorgenommen werden heißen Untersuchungseinheiten. Die Gr¨oßen auf die sich die Messungen beziehen heißen Merkmalswerte. Diese k¨ onnen verschiedenes Meßniveau aufweisen. Ein Merkmalswert heißt nominal , wenn die Werte in keine Reihenfolge zu bringen sind. Berufe oder Farben sind nominal. Merkmalswerte sind ordinal skaliert, wenn die Werte in eine Reihenfolge zu bringen sind. Abst¨ande zwischen den verschiedenen Merkmalswerten wie beispielsweise bei Schulnoten sind jedoch nicht zu interpretieren. Ein metrischer Merkmalswert l¨asst sich in eine Reihenfolge bringen und der Abstand zwischen den Merkmalswerten ist interpretierbar. Gewichte oder Gr¨ oßen sind metrische Merkmalswerte. Merkmalswerte k¨ onnen zudem stetig oder diskret sein. Ein Merkmalswert heißt diskret, wenn er nur endlich oder abz¨ ahlbar viele Werte annehmen kann. Andernfalls heißt er stetig.
7.1 Mittelwerte und Streuungsmaße Zu den wichtigsten Kennzahlen z¨ ahlen Durchschnitte (Mittelwerte) wie das arithmetische Mittel, der Median oder das geometrische Mittel. F¨ ur die zu betrachtenden Durchschnitte seien x1 , ..., xn beobachtete Merkmalswerte. Das arithmetische Mittel ist gegeben durch: n
1 xi . x ¯= n i=1
132
7 Standardverfahren der beschreibenden Statistik
Dieser Mittelwert ist bei metrisch skalierten Daten anzuwenden. F¨ ur ordinal skalierte Daten ist der Median ein geeigneter Durchschnitt. Dieser ist gegeben durch: , falls n ungerade x n+1 (7.1) x ˜0,5 = 1 ( 2 ) n + x n+2 ) , falls n gerade (x (2) ( ) 2 2
mit x(1) ≤ x(2) ≤ · · · ≤ x(n) als geordnete Merkmalswerte. Ist n ungerade beschreibt der Median den mittleren Wert der geordneten Merkmalswerte. Ist n gerade ist jede Zahl zwischen den beiden mittleren Merkmalswerten der Median. In diesem Fall wird oft das arithmetische Mittel der beiden mittleren Merkmalswerte als Median genommen. Der Median ist unempfindlicher gegen¨ uber Ausreißern als das arithmetische Mittel. ¨ Bei relativen Anderungen wird die Gesamt¨ anderung nicht durch eine Summe sondern durch ein Produkt beschrieben. In diesem Fall ist der geeignete Mittelwert das geometrische Mittel. Dieses ist gegeben durch: √ x ¯g = n x1 · x2 · · · xn . Zur Deskription eines Datensatzes ist ein Mittelwert nicht ausreichend, vielmehr ist auch die Streuung der Werte um den Mittelwert von Interesse. Die bekanntesten Streuungsmaße sind die empirische Varianz bzw. Standardabweichung und die Spannweite. Die empirische Varianz gibt die mittlere quadratische Abweichung vom arithmetischen Mittel an und ist gegeben durch: n
s2 =
1 (xi − x¯)2 . n − 1 i=1
√ Die Wurzel aus der empirischen Varianz, also s = s2 , wird als empirische Standardabweichung bezeichnet. Die Standardabweichung hat die gleiche Dimension wie Mittelwert und Merkmalswerte. Werden beispielsweise Gewichte in kg betrachtet, so hat der Mittelwert und die Standardabweichung die Dimension kg, die Varianz hingegen kg2 . Die Spannweite (engl.: range) gibt die Breite einer Streuung gem¨aß R = x(n) − x(1) an. Die Mittelwerte und Streuungsmaße lassen sich mit den Prozeduren MEANS bzw. SUMMARY sowie UNIVARIATE berechnen. Die allgemeine Syntax der Prozedur UNIVARIATE lautet: PROC UNIVARIATE [Option(en)]; HISTOGRAM [/ Option(en)]; QQPLOT [/ Option(en)];
7.1 Mittelwerte und Streuungsmaße
133
Die Anweisungen BY, CLASS, FREQ, OUTPUT, VAR und WEIGHT sind wie gewohnt zu verwenden. Auf die weiteren Anweisungen wird im Verlauf dieses und anderer Kapitel genauer eingegangen. Die Prozedur UNIVARIATE ist eine der umfangreichsten in SAS. Sie berechnet u. a. das arithmetische Mittel, Varianz und Standardabweichung. Ist zus¨atzlich der Modalwert (der h¨ aufigst auftretende Wert einer Variablen) zu berechnen, ist die Option MODES anzugeben. Beispiel 7.1: Berechnung von Durchschnitten und Streuungsmaßen DATA Deskriptiv; INPUT x @@; DATALINES; 1 2 3 4 1 2 6 8 1 9 1 4 10 1 2 1 1 1 3 4 9 5 6 7 8 ; RUN; PROC UNIVARIATE DATA=Deskriptiv MODES; VAR x; RUN; Abbildung 7.1 zeigt die so erzeugte Textausgabe. The UNIVARIATE Procedure Variable: x
Moments 25 Sum Weights
N
25
4 Sum Observations
Mean
100
Std Deviation
3.04138127 Variance
9.25
Skewness
0.63750489 Kurtosis
−0.9941072
Uncorrected SS
622 Corrected SS
222
Coeff Variation 76.0345316 Std Error Mean
0.60827625
Basic Statistical Measures Variability
Location Mean
4.000000 Std Deviation
Median 3.000000 Variance
Mode
3.04138
9.25000
1.000000 Range
9.00000
Interquartile Range 5.00000
Modes Mode Count 1
8
Abbildung 7.1: Ausschnitt der Textausgabe von PROC UNIVARIATE f¨ ur obiges Beispiel
134
7 Standardverfahren der beschreibenden Statistik
Die mit MOMENTS u ¨ berschriebene Tabelle zeigt u. a. die vorgestellten Mittelwerte und Streuungsmaße. F¨ ur Momente siehe Kapitel 8. Der analysierte Datensatz enth¨ alt eine einzige Variable x mit 25 Merkmalswerten. Das arithmetische Mittel (Mean) betr¨ agt 4, die Varianz (Variance) 9,25, die Standardabweichung (Std Deviation) 3,041. Neben diesen Maßen sind noch W¨olbung (Kurtosis), der Variationskoeffizient (Coeff Variation) und die Schiefe (Skewness) angegeben. Zur Erinnerung: Die W¨olbung misst, ob das absolute Maximum der Merkmalswerte im Vergleich zur Dichte der Normalverteilung abweicht (vgl. Hartung et al., 1991), die Schiefe gibt an, inwieweit sich die Merkmalswerte nach links oder rechts vom Mittelwert verschoben haben. Der Variationskoeffizient ist der Quotient von Standardabweichung und arithmetischem Mittel. F¨ ur die Begriffe der Dichte siehe Kapitel 8. Unter Basic Statistical Measures sind zus¨atzlich der Modalwert (Mode) und die Spannweite (Range) aufgelistet. Der Modalwert betr¨agt 1 und die Spannweite 9. Der Modalwert von 1 kommt genau acht mal vor. Die Anweisung OUTPUT OUT= legt einen SAS-Datensatz mit den berechneten Kennzahlen an. Der Datensatz Name wird durch Schl¨ usselw¨orter in seinem Umfang beeinflusst. Tabelle 7.1 zeigt die wichtigsten dazu notwendigen Schl¨ usselw¨ orter und ihre Funktion.
Tabelle 7.1: Schl¨ usselw¨ orter f¨ ur die OUTPUT OUT=-Anweisung von PROC UNIVARIATE Schl¨ usselwort Funktion CV Variationskoeffizient KURTOSIS W¨ olbung MAX Maximum MEAN arithmetisches Mittel MEDIAN Median MIN Minimum SKEWNESS Schiefe STD Standardabweichung VAR Varianz
Die Prozedur MEANS dient ebenfalls zur Berechnung von Durchschnitten und Streuungsmaßen. Die allgemeine Syntax lautet: PROC MEANS [Option(en)]; WAYS ; Die Anweisungen BY, CLASS, FREQ, OUTPUT, VAR und WEIGHT sind wie gewohnt zu verwenden. Bei der Berechnung von Kennzahlen unterscheidet sich PROC MEANS kaum von PROC UNIVARIATE. In der Standardeinstellung berechnet PROC MEANS nur das arithmetische Mittel, die Standardabweichung sowie
7.1 Mittelwerte und Streuungsmaße
135
Minimum und Maximum. Alle u ¨brigen Kennzahlen sind als Option, gem¨aß den Schl¨ usselw¨ ortern aus Tabelle 7.1, zu w¨ ahlen. Die Anweisung WAYS gibt f¨ ur die Variablen in der CLASS-Anweisung die Anzahl der Kombinationsm¨ oglichkeiten zur Kennzahlberechnung an. Beispiel 7.2: Kennzahlberechnung f¨ ur Variablenkombinationen mit der Anweisung WAYS Nachstehendes Programm berechnet f¨ ur die Variable Blutzucker Kennzahlen gem¨ aß verschiedener Variablenkombinationen der Variablen Geschlecht (0 = ˆ m¨ annlich und 1 = ˆ weiblich) und Raucher (0 = ˆ Raucher, 1 = ˆ Nichtraucher). PROC MEANS DATA=Blutdruck MEAN STD; CLASS Geschlecht Raucher; WAYS 1 2; VAR Blutzucker; RUN; Durch die CLASS-Variablen werden der Mittelwert und die Standardabweichung f¨ ur Geschlecht und Raucher separat berechnet. The MEANS Procedure
Analysis Variable : Blutzucker N Mean Std Dev Obs
Raucher 0
695 96.7772926 30.6020952
1
226 92.0135747 18.7023284
Analysis Variable : Blutzucker N Std Dev Mean Obs
Geschlecht 0
392 100.0902062 29.3166726
1
529 92.2807692 26.9521451
Analysis Variable : Blutzucker Std Dev Mean Geschlecht Raucher N Obs 0
0 278 101.3600000 31.7631150 1 114 97.0000000 22.0903179
1
0 417 93.7184466 29.4459520 1 112 86.7962963 12.4358235
Abbildung 7.2: Untersuchung von Variablenkombinationen mit PROC MEANS
136
7 Standardverfahren der beschreibenden Statistik
Die Anweisung WAYS 1 2 erzwingt eine Berechnung des Mittelwerts und der Standardabweichung f¨ ur die beiden Variablen in der CLASS-Anweisung separat (durch die Angabe der 1 hinter WAYS) und f¨ ur beide zusammen (durch die Angabe der 2 hinter WAYS). WAYS 2 hat somit den gleichen Effekt, wie die Vermeidung der WAYS-Anweisung. Die Prozedur PROC SUMMARY ist identisch mit MEANS, jedoch erzeugt sie keine Textausgabe.
7.2 Zusammenhangsmaße und Kontingenztafeln Korrelationsmaße bestimmen den (linearen) Zusammenhang zwischen zwei Variablen. Zwei Typen von Korrelationsmaßen sind zu unterscheiden. Bei metrisch skalierten Merkmalswerten ist der Korrelationskoeffizient nach Bravais-Pearson und bei ordinal skalierten Merkmalswerten der Korrelationskoeffizient nach Spearman zu benutzen. Weitere Korrelationsmaße sind Hartung et al. (1991) oder Voß (2000) aufgef¨ uhrt. Im Folgenden seien n Untersuchungseinheiten mit je zwei Merkmalen X und Y betrachtet. Die Merkmalswerte seien mit x1 , ..., xn bzw. y1 , ..., yn bezeichnet. Der Korrelationskoeffizient nach Bravais-Pearson ist gegeben durch: n xy¯ i=1 xi yi − n¯ . (7.2) rXY = n n 2 2 y2) x ) ( i=1 yi2 − n¯ ( i=1 xi − n¯ Der Z¨ ahler von 7.2 ist im Wesentlichen die empirische Kovarianz von X und Y . Diese ist gegeben durch: n n 1 1 xi yi − n¯ xy¯ . (xi − x ¯)(yi − y¯) = sXY = n − 1 i=1 n − 1 i=1
Der Korrelationskoeffizient nach Bravais-Pearson liegt immer zwischen +1 und −1. Dabei bedeutet rXY = +1 einen hohen positiven und rXY = −1 einen hohen negativen Zusammenhang. Bei Null ist kein Zusammenhang erkennbar. F¨ ur ordinal skalierte Variablen ist der Spearmansche Rangkorrelationskoeffizient zu w¨ ahlen. Dazu lassen sich die Merkmalswerte der Variablen aufsteigend sortieren und durchnummerieren. Seien die geordneten Merkmalswerte mit x(i) bezeichnet, dann heißt R(x(i) ) = i, mit i = 1, . . . , n Rang. F¨ ur die Merkmalswerte x1 , . . . , xn und y1 , . . . , yn ist der Korrelationskoeffizient nach Spearman gegeben durch: n i=1 R(xi )R(yi ) − nR(x) R(y) (7.3) rS = . n 2 2 n 2 2 i=1 R(xi ) − nR(x) i=1 R(yi ) − nR(y)
Mit di = R(xi ) − R(yi ) erh¨ alt man:
7.2 Zusammenhangsmaße und Kontingenztafeln
rS = 1 −
n 2 6 i=1 di , n(n2 − 1)
137
falls alle xi und yi verschieden sind.
Die Zusammenhangsmaße lassen sich mit der Prozedur CORR berechnen. Die allgemeine Syntax lautet: PROC CORR [Option(en)]; BY ; FREQ ; VAR ; WEIGHT ; Die Optionen PEARSON bzw. SPEARMAN spezifizieren den gew¨ unschten Korrelationskoeffizienten. Mit einem Streudiagramm kann der (lineare) Zusammenhang aufgedeckt werden. Die Abbildungen 7.3(a) bis 7.3(d) zeigen m¨ogliche Zusammenh¨ange zwischen zwei Variablen.
(a) Linearer negativer Zusammenhang
(b) Linearer positiver Zusammenhang
(c) Kein linearer Zusammenhang
(d) Unabh¨ angigkeit der Merkmalswerte
Abbildung 7.3: M¨ ogliche Formen des Zusammenhangs
138
7 Standardverfahren der beschreibenden Statistik
Alternativ lassen sich Zusammenhangsmaße auch mit der Prozedur FREQ berechnen. Die allgemeine Syntax lautet: PROC FREQ [Option(en)]; TABLES [/ Option(en)]; Die Anweisungen BY, OUTPUT und WEIGHT sind wie gewohnt zu verwenden. Die TABLES-Anweisung bestimmt Kontingenztafeln und berechnet Kennzahlen. Die wichtigsten Optionen dieser Anweisung zeigt Tabelle 7.2.
Tabelle 7.2: Ausgew¨ ahlte Optionen der Anweisung TABLES Option Beschreibung CHISQ Berechnet den χ2 -Unabh¨ angigkeitstest EXPECTED Berechnet die erwartete H¨ aufigkeit als (Zeilensumme mal Spaltensumme durch Gesamtsumme) MEASURES Berechnet verschiedene Zusammenhangsmaße (beispielsweise die Korrelationskoeffizienten nach Bravais-Pearson bzw. Spearman) NOFREQ Unterdr¨ uckt die Zellen-H¨ aufigkeit in der Textausgabe NOROW Unterdr¨ uckt die Zeilen-H¨ aufigkeit in der Textausgabe NOCOL Unterdr¨ uckt die Spalten-H¨ aufigkeit in der Textausgabe NOPERCENT Unterdr¨ uckt die Gesamt-H¨ aufigkeit in der Textausgabe
Beispiel 7.3: Kontingenztafel mit der Prozedur FREQ Es sind vier Medikamente zur Behandlung von Schnupfen zu vergleichen. Pro Medikament werden zuf¨ allig 20 Patienten ausgew¨ahlt und u uft, ob das ¨ berpr¨ Medikament wirkt. Gibt es zwischen der Heilung eines Patienten und dem Medikament einen Zusammenhang? Ausgangspunkt zur Untersuchung der Fragestellung ist eine Kontingenztafel, in der die Kombinationen der Merkmalswerte und ihre H¨aufigkeiten abgetragen sind. F¨ ur Merkmalswerte x1 , . . . , xk und y1 , . . . , ym bezeichne Hij die H¨ aufigkeit von (xi , yj ). Die relative H¨ aufigkeit hij ist dagegen gegeben durch hij =
1 Hij , n
wobei n die Anzahl aller Wertepaare bezeichnet. Eine Kontingenztafel hat die Gestalt: y1 a1 H11 a2 H21 .. .. . . ak Hk1 Σ H.1
y2 H12 H22 .. . Hk2 H.2
· · · ym · · · H1m · · · H2m . .. . .. · · · Hkm · · · H.m
Σ H1. H2. .. . Hk. n
7.2 Zusammenhangsmaße und Kontingenztafeln
139
Hij die Zeilen-Randh¨aufigkeit, H.j = ki=1 Hij die k m Spalten-Randh¨ aufigkeit mit n = i=1 Hi. = j=1 H.j . Nachstehendes Programm berechnet die Kontingenztafel f¨ ur den Behandlungserfolg bez¨ uglich der Medikamente. Hierbei ist Hi. =
m
j=1
DATA Tafel; INPUT Anzahl Erfolg Medikament @@; DATALINES; 9 0 1 4 0 2 7 0 3 12 0 4 11 1 1 16 1 2 13 1 3 8 1 4 ; RUN; PROC FREQ DATA=Tafel; WEIGHT Anzahl; TABLES Erfolg*Medikament / EXPECTED NOROW NOCOL NOPERCENT; RUN; Abbildung 7.4 zeigt die Textausgabe zu obigem Programm. The FREQ Procedure
Frequency Expected
Table of Erfolg by Medikament Medikament Erfolg 0
4 Total
1
2
3
9 8
4 8
7 12 8 8
1 11 16 13 Total
32
8 12 12 12 12
48
20 20 20 20
80
Abbildung 7.4: Kontingenztafel von Behandlungserfolg und Medikament
In den Spalten der Kontingenztafel sind die vier Medikamente abgetragen. Der Behandlungserfolg ist in den Zeilen aufgef¨ uhrt, wobei mit 1 ein Erfolg gekennzeichnet ist. Beispielsweise sind neun Patienten durch Medikament 1 nicht genesen, aber 16 Patienten durch Medikament 2.
140
7 Standardverfahren der beschreibenden Statistik
7.3 Diagramme Grafische Darstellungen erm¨ oglichen, die Struktur in Daten schnell zu erfassen. SAS erzeugt die folgenden Diagramme: • • • • • •
Streu- und Liniendiagramme Kreisdiagramme Balkendiagramme Histogramme Box-Plots Kartogramme
Kapitel 6 stellt die meisten Diagrammtypen vor. Streu- und Liniendiagramme (engl.: Scatter plot bzw. Line plot) tragen die Werte einer metrischen Variablen gegen die einer anderen metrischen Variablen ab. Sie werden mit der Prozedur GPLOT erzeugt (vgl. Abbildung 7.3). Kreis- oder auch Tortendiagramme (engl.: pie chart) stellen das Verh¨altnis einzelner Teile zu einem Ganzen dar. Die Fl¨ ache der Kreissegmente ist proportional zum dargestellten Zahlenwert. Balkendiagramme (engl.: bar chart) zeigen die absolute H¨aufigkeit verschiedener Werte im Datensatz. Die H¨ ohe des Balkens ist proportional zur H¨aufigkeit der darzustellenden Werte. Die Breite des Balkens kann vom Anwender festgelegt werden, sollte jedoch bestimmten Kriterien entsprechen (vgl. Kr¨amer, 1994). Ein bisher nicht n¨ aher betrachtetes Diagramm ist das Histogramm (engl.: histogram). Dieses erh¨ alt man durch die Darstellung der H¨aufigkeiten als aneinanderstoßende Rechtecke deren Fl¨ ache proportional zu den H¨aufigkeiten ist. Die Merkmalswerte sind hierbei in Klassen zusammenzufassen. Die H¨ ohe hi eines Rechtecks bestimmt sich durch: ri = ki /bi , wobei ki die relative H¨ aufigkeit der Klasse i und bi die Klassenbreite ist. Die Prozeduren UNIVARIATE und CAPABILITY erstellen Histogramme. Die allgemeine Syntax von PROC CAPABILITY lautet: PROC CAPABILITY [Option(en)]; CDFPLOT [/ Option(en)]; HISTOGRAM [/ Option(en)]; QQPLOT [/ Option(en)]; Die Anweisungen OUTPUT und VAR sind wie gewohnt zu verwenden. HISTOGRAM und QQPLOT sind wie in PROC UNIVARIATE zu verwenden. Die Option FREQ erzeugt f¨ ur die in der VAR-Anweisung angegeben Variablen H¨ aufigkeitstabellen. MODES bestimmt die Modalwerte dieser Variablen.
7.3 Diagramme
141
CDFPLOT zeichnet die empirische Verteilungsfunktion. Ihre Option VSCALE= beeinflusst die Skala der Ordinatenachse (VSCALE=PERCENT f¨ ur Skala 0 bis 100, VSCALE=PROPORTION f¨ ur Skala 0 bis 1). Beispiel 7.4: Histogramm mit der Prozedur UNIVARIATE Die Ums¨ atze von 10 Firmen sollen grafisch dargestellt werden. Die Firmen lassen sich aufgrund ihres Umsatzes in Klassen einteilen, diese sind (in Millionen Euro): 0 bis 10; 10 bis 20; 20 bis 30; 30 bis 40; 40 und mehr . Nachstehendes Programm erstellt ein Histogramm f¨ ur die Firmenums¨atze. DATA Histogramm; INPUT Firma $ Umsatz @@; DATALINES; A 3 B 49 C 14 D 31 E 11 F 24 G 21 H 35 I 17 J 37 ; RUN; PROC UNIVARIATE DATA=Histogramm NOPRINT; HISTOGRAM Umsatz / MIDPOINTS=(5 15 25 35 45) BARWIDTH=8 VAXIS=(0 TO 30 BY 10) NOFRAME CFILL=LTGRAY VSCALE=PERCENT VAXISLABEL=’PROZENT’; RUN; Tabelle 7.3 erkl¨ art die verwendeten Optionen.
Tabelle 7.3: Ausgew¨ ahlte Optionen der Anweisung Histogram Option Bedeutung BARWIDTH= Gibt die Rechteckbreite“ des Histogramms in Prozent des ” Grafikfensters an CFILL= Setzt die Farbe, in der die Rechtecke gef¨ ullt werden MIDPOINTS= Gibt die Klassenmittelpunkte an NOFRAME Zeichnet keinen Rahmen um die Grafik VAXIS= Unterteilt die Y-Achse VAXISLABEL= Beschriftet die Y-Achse VSCALE= Gibt die Art der Y-Achse an. Mit VSCALE=COUNT wird die Achse gem¨ aß der Beobachtungsanzahl skaliert; bei VSCALE=PERCENT erfolgt eine prozentuale Einteilung gem¨ aß der Beobachtungen; durch VSCALE=PROPORTION wird die Y-Achse proportional zur Beobachtungsanzahl skaliert
Abbildung 7.5 zeigt das erzeugte Histogramm.
142
7 Standardverfahren der beschreibenden Statistik
Abbildung 7.5: Histogramm der Umsatzklassen von Firmen
Die HISTOGRAM-Anweisung der Prozedur CAPABILITY erm¨oglicht andere Optionen. Diese passen die Beschriftung der Klassen nach eigenen Vorstellungen an. PROC CAPABILITY gibt die Rechteckbreite automatisch vor. Der Anwender kann diese nicht ver¨ andern. Somit ist abzuw¨agen, welche der Prozeduren UNIVARIATE oder CAPABILITY f¨ ur die gegebene Situation geeignet ist. F¨ ur die Daten aus Beispiel 7.4 ergibt sich mit PROC CAPABILITY: AXIS1 LABEL=(F=SIMPLEX H=1.2) VALUE=(F=SIMPLEX H=1.2 ’0-10’ ’10-20’ ’20-30’ ’30-40’ ’40 und mehr’); AXIS2 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.2 ANGLE=90 ’Prozent’) ORDER=(0 TO 30 BY 10); PROC CAPABILITY DATA=Histogramm NOPRINT; HISTOGRAM Umsatz / MIDPOINTS=(5 15 25 35 45) HAXIS=AXIS1 VAXIS=AXIS2 NOFRAME CFILL=LTGRAY VSCALE=PERCENT; RUN;
7.4 Berechnung von Quantilen und der Box-Plot
143
Die Optionen HAXIS= bzw. VAXIS= sind in PROC UNIVARIATE nicht vorhanden. Mit den AXIS-Anweisungen ist die Achsen-Formatierung vorzunehmen. Die Optionen HAXIS= bzw. VAXIS= reichen diese Einstellungen an die Prozedur weiter. Das resultierende Histogramm hat die Gestalt:
Abbildung 7.6: Histogramm der Umsatzklassen von Firmen (PROC CAPABILITY)
Die Optionen entsprechen denen der Prozedur UNIVARIATE aus Tabelle 7.3.
7.4 Berechnung von Quantilen und der Box-Plot Der Median aus Gleichung 7.1 l¨ asst sich verallgemeinern. F¨ ur eine reelle Zahl α (0 ≤ α ≤ 1) heißt die Zahl x ˜α ein empirisches α-Quantil (engl.: Quantile), wenn mindestens α · 100 % der Merkmalswerte kleiner oder gleich x ˜α und mindestens (1 − α) · 100 % gr¨ oßer oder gleich x ˜α sind. In der Darstellung von Gleichung 7.1 bedeutet das: ⎧ , falls n · α ∈ IN ⎨ x(k) (k ist die auf n · α folgende ganze Zahl) x ˜α = ⎩1 (x + x ) , falls n · α ∈ IN (k) (k+1) 2
Der Median ist somit das 0,5-Quantil der Beobachtungswerte. Weitere Quantile von besonderem Interesse sind das 0,25-Quantil bzw. das 0,75Quantil, auch unteres bzw. oberes Quartil genannt.
Beispiel 7.5: Quartils- und Median-Berechnung mit der Prozedur UNIVARIATE ˜0,5 und Nachstehendes Programm berechnet die empirischen Quantile x ˜0,25 , x x ˜0,75 .
144
7 Standardverfahren der beschreibenden Statistik
DATA Daten; DO i=1 TO 1000; x=NORMAL(0); OUTPUT; END; RUN; PROC UNIVARIATE DATA=Daten; VAR x; OUTPUT OUT=Quantile PCTLPTS=25 TO 75 BY 25 PCTLPRE=eq_; RUN; Die nachstehende Textausgabe zeigt die Quantile f¨ ur 1000 normalverteilte Pseudozufallszahlen. Obs eq_25
eq_50
eq_75
1 −0.70438 −0.014428 0.64102
Abbildung 7.7: Empirische Quantile
Die berechneten Quantile k¨ onnen nur in einen neuen SAS-Datensatz geschrieben werden. Eine Ausgabe auf dem Bildschirm erfolgt nicht. Die Option PCTLPTS= berechnet die empirischen Quantile. Nach dem Gleichheitszeichen kann entweder eine Werteliste stehen (z. B. 1, 25, 50, 75) oder eine von-bisBedingung. Hier werden alle Quantile zwischen 25 und 75 in Schritten von 25 berechnet. PCTLPRE= legt Bezeichnungen f¨ ur die berechneten Quantile fest. Diese Bezeichnung wird den Werten die unter PCTLPTS= angegeben werden vorangestellt (vgl. obige Abbildung 7.7). Eine mit den Quantilen verbunde Grafik ist das Box-Whisker-Diagramm, kurz der Box-Plot. Dieses ist im Wesentlichen eine rechteckige Darstellung (Box), die 50 % der Merkmalswerte enth¨ alt. Die obere und untere Kante dieser Box heißen Angelpunkte (engl.: hinges). Sie entsprechen dem oberen- bzw. unteren Quartil. An der Stelle des Medians ist in die Box eine Gerade eingezogen. Das Maximum bzw. das Minimum der Merkmalswerte wird ebenfalls gezeichnet und durch senkrechte Linien mit der Box verbunden. Werte die zwischen dem Maximum (Minimum) und der Box liegen, werden als Ausreißer bezeichnet. Die Markierung f¨ ur das Maximum bzw. Minimum werden auch whisker“ ” genannt. Der Abstand des whiskers zum Boxenrand wird oft auch in Einheiten des Interquartilsabstands (IQA) angegeben. Der Interquartilsabstand ist die Differenz zwischen dem oberen- und unteren Quartil. Der Abstand x ˜0,75 + 1,5 · IQA heißt oberer Zaun. Als unteren Zaun bezeichnet man den Abstand x ˜0,25 − 1,5 · IQA.
7.4 Berechnung von Quantilen und der Box-Plot
145
Die Prozedur BOXPLOT berechnet Box-Plots und stellt diese dar. Ihre allgemeine Syntax lautet: PROC BOXPLOT; PLOT * [/ Option(en)] ; Die Anweisungen BY und ID sind wie gewohnt zu verwenden. Die wichtigsten Optionen der PLOT-Anweisung sind in Tabelle 7.4 aufgelistet.
Tabelle 7.4: Optionen der PLOT-Anweisung zur Prozedur BOXPLOT Option Bedeutung BOXSTYLE= Spezifiziert das Aussehen der Box; SKELETAL zeichnet SKELETAL|SCHEMATIC die whisker“ vom Boxrand zum Minimum oder Maxi” mum; SCHEMATIC zeichnet die whisker“ ” vom Boxrand zum gr¨ oßten Wert innerhalb des Zauns; weitere Styles sind m¨ oglich BOXWIDTH= Bestimmt die Breite der Box in Prozent des sichtbaren Bildschirmbereichs CBOXES= Bestimmt die Farbe der Box IDHEIGHT= Gibt die Gr¨ oße des unter IDSYMBOL angegebenen Symbols an IDSYMBOL= Spezifiziert Ausreißer
Beispiel 7.6: Box-Plot mit der Prozedur BOXPLOT Nachstehendes Programm enth¨ alt die Versp¨ atungen von Z¨ ugen verschiedener Kategorien und stellt diese in einem Box-Plot dar. DATA Boxplot; INPUT GRUPPE $ 10. DO i=1 TO 10; INPUT Minute @; OUTPUT; END; DATALINES; IC 25 39 ICE 10 20 NAHVERKEHR 280 40 G¨ UTER 15 5 ; RUN;
@;
67 100 180 260 10 50 35 0 35 45 90 5 60 100 120 190 300 20 20 10 10 0 17 20
45 80 80 35
15 30 45 10
146
7 Standardverfahren der beschreibenden Statistik
PROC BOXPLOT DATA=Boxplot; AXIS1 ORDER=(0 TO 300 BY 50) LABEL=(F=SIMPLEX H=1.4 ’Versp’ ’84’X ’tung in Minuten’) VALUE=(F=SIMPLEX H=1.2); AXIS2 OFFSET=(0,0) LABEL=(F=SIMPLEX H=1.4 ’Art des Zuges’) VALUE=(F=SIMPLEX H=1.2 ’IC’ ’ICE’ ’Nahverkehr’ ’4781746572’X); SYMBOL1 V=STAR; PLOT Minute*Gruppe / BOXSTYLE=SCHEMATICID IDSYMBOL=CIRCLE IDHEIGHT=2 CBOXES=BLACK BOXWIDTH=10 HAXIS=AXIS2 VAXIS=AXIS1; RUN; Zur Verwendung von deutschen Umlauten in der Achsenbeschriftung sind hexadezimale Zeichen zu verwenden. Das ¨ a“ entspricht dabei ’84’x. Das ” Wort G¨ uter“ ist dabei vollst¨ andig aus hexadezimalen Zeichen zusammenzu” setzen, da eine Unterbrechung der Schreibweise wie bei Versp¨atung“ nicht ” m¨ oglich ist. Da G¨ uter“ ein Label ist, muss das Wort zusammengeschrieben ” werden. Abbildung 7.8 zeigt den resultierenden Box-Plot.
Abbildung 7.8: Box-Plot der Zugversp¨ atungen an einem Tag pro Kategorie
Die Streuung der Wert im Nahverkehr ist am gr¨oßten, wohingegen der G¨ uterverkehr nicht so stark variiert. Das Symbol *“ stellt das arithmetische Mittel ” dar. Dieses weicht zum Teil deutlich vom Median (waagerechte Linie in der Box) ab. Die Variation nach oben ist gr¨ oßer als nach unten. Das ist zum
7.5 Die empirische Verteilungsfunktion und QQ-Plots
147
einen durch den oberen Zaun als auch durch die vielen Werte die gr¨oßer als der Median sind zu erkennen. Beim ICE-Verkehr sind die Mehrzahl der Versp¨ atungen jedoch kleiner als der Median. Ferner ist der eine Ausreißer im IC-Verkehr deutlich zu erkennen, da er außerhalb der whisker liegt. Neben der Prozedur BOXPLOT zeichnet auch die Prozedur GPLOT einen BoxPlot. Dazu ist nur die richtige SYMBOL-Anweisung notwendig. Um einen BoxPlot f¨ ur die Zugversp¨ atungen aus Beispiel 7.6 mit GPLOT zu zeichnen, ist die folgende Syntax zu verwenden: PROC GPLOT DATA=Boxplot; AXIS1 ORDER=(0 TO 300 BY 50) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Versp’ ’84’x ’tung in Minuten’) VALUE=(F=SIMPLEX H=1.2); AXIS2 OFFSET=(10,10) LABEL=(F=SIMPLEX H=1.4 ’Art des Zuges’) VALUE=(F=SIMPLEX H=1.2 ’4781746572’x ’IC’ ’ICE’ ’Nahverkehr’ ); SYMBOL1 I=BOXT BWIDTH=10; PLOT Minute*Gruppe=1 / HAXIS=AXIS2 VAXIS=AXIS1; RUN; Die AXIS-Anweisungen ver¨ andern sich, im Vergleich zu Beispiel 7.6, nur wenig. Die SYMBOL-Anweisung ist hingegen neu hinzugekommen. Die Option I=BOXT zeichnet Box-Plots, wobei durch T die whisker mit eingezeichnet werden. Ohne T werden die whisker nicht dargestellt.
7.5 Die empirische Verteilungsfunktion und QQ-Plots Die empirische Verteilungsfunktion ist ein wichtiges Hilfsmittel zur Beschreibung von H¨ aufigkeitsverteilungen. F¨ ur geordnete Merkmalswerte x(1) , ..., x(n) ist die empirische Verteilungsfunktion gegeben durch: ⎧ , falls x < x(1) ⎨0 (7.4) Fn (x) = m/n , falls x(m) ≤ x ≤ x(m+1) ⎩ 1 , falls x ≥ x(n)
Sie ist eine monoton steigende Treppenfunktion und beschreibt das Verh¨altnis der Anzahl der Merkmalswerte die kleiner oder gleich x sind zu der Anzahl aller Merkmalswerte n. Die empirische Verteilungsfunktion weist Spr¨ unge der H¨ ohe k/n bei Merkmalswerten auf, die k-mal auftreten.
148
7 Standardverfahren der beschreibenden Statistik
Die Prozedur CAPABILITY berechnet die empirische Verteilungsfunktion in SAS. Beispiel 7.7: Empirische Verteilungsfunktion mit der Prozedur CAPABILITY Das Schlafverhalten wird bei 106 Personen gemessen (vgl. Schlittgen, 2002). F¨ ur eine typische Nacht ergeben sich f¨ ur die Schlafzeit (in Stunden) die folgenden Werte: Schlafzeit Personenzahl 1 0 2 2 3 3 4 5 5 5
Schlafzeit Personenzahl 6 16 7 20 8 25 9 20 10 10
Das nachstehende Programm bestimmt die empirische Verteilungsfunktion. DATA Schlaf; INPUT Stunde Person @@; DATALINES; 1 0 2 3 3 3 4 5 6 15 7 20 8 25 9 20 ; RUN;
5 5 10 10
PROC CAPABILITY DATA=Schlaf; AXIS1 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ’Schlafzeit in Stunden’); AXIS2 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Kumulierter Anteil von Personen’); FREQ Person; CDFPLOT Stunde / HAXIS=AXIS1 VAXIS=AXIS2 VSCALE=PROPORTION; RUN; Abbildung 7.9 zeigt die empirische Verteilungsfunktion des Schlafverhaltens.
7.5 Die empirische Verteilungsfunktion und QQ-Plots
149
Abbildung 7.9: Empirische Verteilungsfunktion des Schlafverhaltens
Man kann die empirische Verteilungsfunktion auch mit Hilfe von PROC GPLOT darstellen. Dazu ist erneut die richtige SYMBOL-Anweisung anzugeben. Allerdings m¨ ussen die Merkmalswerte zuvor in einem separaten DATA-Step kumuliert werden. DATA Schlaf1; SET Schlaf; a+Person/106; RUN; PROC GPLOT DATA=Schlaf1; SYMBOL1 I=STEPRJ C=BLACK; AXIS1 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ’Schlafzeit in Stunden’); AXIS2 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Kumulierter Anteil von Personen’); PLOT a*Stunde=1 / HAXIS=AXIS1 VAXIS=AXIS2; RUN; Der DATA-Step Schlaf1 kumuliert die durch die Personenzahl geteilte Variable Person und weist das Ergebnis der Variable a zu. Ein Quantile-Quantile-Diagramm, kurz QQ-Plot bietet eine weitere M¨oglichkeit festzustellen, ob Merkmalswerte aus einer bestimmten Verteilung (vgl. Kapitel 8) stammen. Zur Erstellung eines QQ-Plots verwendet man die in Abschnitt 7.4 eingef¨ uhrten empirischen Quantile. Der i-te Wert x(i) der geordneten Merkmalswerte x(1) , . . . , x(n) entspricht dem empirischen i/(n + 1)Quantil der Merkmalswerte. Tr¨ agt man die empirischen gegen die theoretischen Quantile der unterstellten Verteilung in einem Koordinatensystem ab,
150
7 Standardverfahren der beschreibenden Statistik
so liegen die Punkte ungef¨ ahr auf einer Geraden durch den Ursprung des Koordinatensystems. Die Gerade hat die Steigung 1, sofern die Merkmalswerte aus der unterstellten theoretischen Verteilung stammen. Eine zu starke Abweichung von dieser Geraden spricht gegen die unterstellte Verteilung. Die Prozeduren UNIVARIATE und CAPABILITY erzeugen QQ-Plots. Beispiel 7.8: QQ-Plot mit der Prozedur CAPABILITY Ein Apfelbauer m¨ ochte seine neue Ernte an die EU verkaufen. Dazu darf der einzelne Apfel nicht zu stark von der Normgr¨oße abweichen. Ein Apfel darf einen Durchmesser von 10,2 cm mit einer Varianz von 2 cm aufweisen. Die ¨ Ernte betr¨ agt 1000 Apfel. Mit einem QQ-Plot ist zu u ufen, ob seine ¨ berpr¨ ¨ Apfel innerhalb der Toleranzgrenzen liegen. DATA Aepfel; DO i=1 TO 1000; Groesse=10.20+NORMAL(0)*2; OUTPUT; END; RUN; PROC CAPABILITY DATA=Aepfel NOPRINT; AXIS1 ORDER=(4 TO 16 BY 2) VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ANGLE=90 ’Gr’ ’94B8’X ’e in cm’); AXIS2 VALUE=(F=SIMPLEX H=1.2) LABEL=(F=SIMPLEX H=1.4 ’Quantile der Normalverteilung’); QQPLOT Groesse / NORMAL(MU=10.20 SIGMA=2 COLOR=DARGR) HAXIS=AXIS2 VAXIS=AXIS1 NOLEGEND; RUN; Die HAXIS- und VAXIS-Optionen beeinflussen die Achsenbeschriftungen der Grafik. NOLEGEND unterdr¨ uckt die durch die Option NORMAL erzeugte Legende. NORMAL(MU=10.20 SIGMA=2 COLOR=DARGR) erzeugt eine Referenzlinie aus einer N (10,2;2)-Verteilung. Die Optionen MU= und SIGMA= setzen den Erwartungswert (vgl. Kapitel 8) und die Varianz auf die angegebenen Werte. Ohne diese Angaben wird die Standardnormalverteilung vorausgesetzt. Gibt man statt der bekannten Werte f¨ ur MU und SIGMA als Argument EST an, so wird MU und SIGMA aus den Daten gesch¨ atzt. COLOR= legt die Farbe der Referenzlinie fest, hier dunkelgrau. Neben der Normalverteilung sind weitere Verteilungen als Option bei der QQPLOT-Anweisung m¨oglich. Diese sind die Beta-, Exponential-, Log-Normal-, Gamma- und die Weibull-Verteilung. F¨ ur jede Verteilung gibt es eigene Optionen. Der QQ-Plot hat somit die folgende Gestalt:
7.5 Die empirische Verteilungsfunktion und QQ-Plots
151
Abbildung 7.10: QQ-Plot der Apfelgr¨ oßen gegen die N (10,2;2)-Verteilung
Der QQ-Plot zeigt deutlich die gute Apfelqualit¨at. Im Zentrum liegen die Werte auf der Geraden, nur am Rand weichen sie ein wenig ab. Neben der Prozedur CAPABILITY erzeugt auch die Prozedur UNIVARIATE einen QQ-Plot. Die Vorgehensweise ist analog zu CAPABILITY. Beispiel 7.9: QQ-Plot mit der Prozedur UNIVARIATE Ein Analyst einer großen Investmentbank behauptet, die Renditen der SuperBank AG seien normalverteilt. Dazu betrachtet er die t¨aglichen Renditen der Super-Bank Aktie zwischen dem 04.01.1960 und 31.12.2001. Mit Hilfe eines QQ-Plot will er seine Behauptung u ufen. Nachstehendes Programm ¨ berpr¨ erzeugt den gew¨ unschten QQ-Plot. PROC UNIVARIATE DATA=Bank NOPRINT; QQPLOT Rendite / NORMAL(MU=0 SIGMA=1 COLOR=LTGRAY) FONT=SIMPLEX NOHLABEL; FOOTNOTE J=C F=SIMPLEX H=1.2 ’Quantile der Normalverteilung’; RUN; Abbildung 7.11 zeigt das Ergebnis.
152
7 Standardverfahren der beschreibenden Statistik
Abbildung 7.11: QQ-Plot der Renditen der Super-Bank AG gegen die Standardnormalverteilung
Abbildung 7.11 zeigt eine deutliche Abweichung der Renditen von der Standardnormalverteilung, was durch die S-Form“ gekennzeichnet ist. Sowohl ” an den R¨ andern als auch in der Mitte weicht der Verlauf von der Winkelhalbierenden ab.
¨ 7.6 Ubungsaufgaben Aufgabe 7.1: In einer sozialwissenschaftlichen Studie an amerikanischen Schulen in Michigan wird untersucht, inwieweit sich die Einstellung von Jungen und M¨adchen zu ihren schulischen Zielen unterscheidet. 478 Kinder wurden befragt, auf welche pers¨ onlichen Ziele sie in der Schule am meisten Wert legen: make good grades“ / be popular“ / be good in sports“. Der Datensatz ” ” ” Popularkids.txt enth¨ alt die Ergebnisse. Erstellen Sie eine Kontingenztafel, in der f¨ ur beide Geschlechter die Anzahl der jeweiligen Auspr¨ agungen in der goals“-Variablen dargestellt ist. F¨ uhren ” Sie anschließend einen χ2 -Test durch, um zu pr¨ ufen, ob M¨adchen signifikant andere Ziele verfolgen als Jungen.
¨ 7.6 Ubungsaufgaben
153
Aufgabe 7.2: Der Datensatz Newyork.sas7bdat enth¨ alt st¨ undliche Messungen der COKonzentration in New York u ber einen Beobachtungszeitraum von einer ¨ Woche. Untersuchen Sie den Tagesgang der CO-Konzentration und klassieren dazu die Tageszeiten wie folgt: 6–8 Uhr - morgens 9–12 Uhr - vormittags 13–16 Uhr - nachmittags 17–22 Uhr - abends 23–5 Uhr - nachts (a) Bestimmen Sie f¨ ur jede dieser Tageszeiten den Median sowie die beiden Quartile der CO-Konzentration und geben Sie das Ergebnis aus. (b) Erzeugen Sie einen neuen Datensatz Tagesgang, der f¨ ur jede Tageszeit den Mittelwert und die Standardabweichung der gemessenen COKonzentrationen beinhaltet. (c) Erstellen Sie Box-Plots der CO-Konzentration f¨ ur jede Tageszeit. Aufgabe 7.3: Der Datensatz Newyork.sas7bdat enth¨ alt Messungen der CO-Konzentration in New York zu verschiedenen Zeitpunkten. Erstellen Sie ein Histogramm aller werkt¨ aglich gemessenen CO-Werte (Mo-Do) und vergleichen Sie es mit den Wochenend-Messungen (Fr, Sa, So). Die beiden Histogramme sind dabei mit PROC CAPABILITY vergleichend nebeneinander zu stellen. F¨ ugen Sie außerdem innerhalb der Grafiken zwei Textfelder ein, welche das Mittel und die Varianz der jeweiligen Messreihe enthalten. ur ein vergleichendes Histogramm die Anweisung Hinweis: Verwenden Sie f¨ COMPHISTOGRAM. Aufgabe 7.4: Ein Biometriker besch¨ aftigt sich mit der Unterwasserwelt der norddeutschen Binnengew¨ asser. Er hat eine aufwendige Studie durchgef¨ uhrt, um die Anzahl freischwimmender Karpfen in den verschiedenen Seen Schleswig-Holsteins zu erfassen. Im (fiktiven) Datensatz Karpfen.sas7bdat sind seine Ergebnisse zusammengefasst. Die Variable Karpfen gibt dabei die aufsummierte normierte Anzahl Karpfen in den einzelnen Landkreisen Schleswig-Holsteins an. Erzeugen Sie eine grafische Darstellung dieser Ergebnisse mit Hilfe eines Kartogramms. In der Landkarte von Schleswig-Holstein sind die einzelnen Landkreise entsprechend ihres Karpfenbestandes einzuf¨arben.
154
7 Standardverfahren der beschreibenden Statistik
Aufgabe 7.5: Die Fondgesellschaft Meier, M¨ uller und Partner“ m¨ochte ihren Kunden einen ” ¨ grafischen Uberblick eines Portfolios geben. Der Fond Risikooptimierter ” Geldzuwachs“ setzt sich wie folgt zusammen: Aktie St¨ uckzahl Chemie Gigant 2020 Auto Mobil 1200 Pillendreher 890 Leben und Mehr 630 MediaPlus 1500 Erstellen Sie ein geeignetes Kreisdiagramm und beschriften Sie die Kreissegmente. Aufgabe 7.6: Die angemeldeten Patente pro Bundesland u ¨ ber einen gewissen Zeitraum seien gegeben durch: Patente Bundesland Patente Bundesland Schleswig-Holstein 1 Bayern 0 Hamburg 3 Saarland 1 Berlin 1 Niedersachsen 1 Bremen 1 Brandenburg 1 Sachsen 8 Nordrhein Westfalen 10 Mecklenburg-Vorpommern 1 Hessen 1 Sachsen-Anhalt 1 Rheinland-Pfalz 1 Baden-W¨ urttemberg 1 Th¨ uringen 1 Stellen Sie diese in einer geeigneten Landkarte dar.
8 Standardverfahren der schließenden Statistik
W¨ ahrend die zuvor eingef¨ uhrte beschreibende Statistik Auff¨alligkeiten in den Daten finden oder diese mit geeigneten Kenngr¨oßen charakterisieren soll, leitet die schließende Statistik aus den beobachteten Werten Aussagen u ¨ ber den datenerzeugenden bzw. den Daten zugrunde liegenden Mechanismus ab. Ein solcher Mechanismus wird in der Statistik durch Zufallsvariablen dargestellt. Die Verfahren der schließenden Statistik sch¨ atzen beispielsweise charakterisierende Gr¨ oßen oder untersuchen Hypothesen u ¨ber ausgesuchte Eigenschaften von Zufallsvariablen.
8.1 Grundbegriffe der mathematischen Statistik Ausgangspunkt ist eine Menge stochastisch unabh¨angiger Zufallsvariablen (bzw. eine Menge von Realisationen stochastisch unabh¨angiger Zufallsvariablen = Stichprobe), welche alle die gleiche Verteilungsfunktion besitzen. Die Verteilungsfunktion FX (x) (engl.: cumulative distribution function, kurz CDF) einer Zufallsvariablen X ist definiert als: FX (x) = P (X ≤ x) . Die wichtigsten Verteilungsfunktionen sind in SAS als Funktion im DATAStep vorhanden: CDF(’’, , <notwendige Parameter>[, optionale Parameter]) Das Argument entspricht dem x aus der Funktion FX (x). Tabelle 8.1 listet die vorgegebenen Namen und die zugeh¨ origen Parameter der wichtigsten in SAS implementierten Verteilungen auf. Die Ableitung der Verteilungsfunktion FX (x), sofern sie existiert, heißt Dichtefunktion fX (x) (engl.: probability density function, kurz PDF). Zum Aufruf im DATA-Step ist in obiger Funktion CDF durch PDF zu ersetzen.
156
8 Standardverfahren der schließenden Statistik
Tabelle 8.1: Namen und Parameter ausgew¨ ahlter Wahrscheinlichkeitsverteilungen (die Kurzformen sind dabei synonym zu den Verteilungsnamen zu verwenden) Name (Kurzform) BERNOULLI (BERN) BETA BINOMIAL (BINOM) CAUCHY
notwendige Parameter p = Wahrscheinlichkeit a, b = Formparameter p = Wahrscheinlichkeit n = Anzahl Bernoulliversuche -
CHISQUARED (CHISQ) EXPONENTIAL (EXPO) F GAMMA LOGISTIC
n = Anzahl Freiheitsgrade m, n = Anzahl Freiheitsgrade a = Formparameter -
LOGNORMAL (LOGN)
-
NORMAL
-
PARETO POISSON T UNIFORM WEIBULL
a = Formparameter λ = Lage-/Skalenparameter n = Anzahl Freiheitsgrade a = Formparameter
optionale Parameter l, r = Lageparameter µ = Lageparameter σ = Skalenparameter λ = Nichtzentralit¨ atsp. σ = Skalenparameter λ = Nichtzentralit¨ atsp. σ = Skalenparameter µ = Lageparameter σ = Skalenparameter µ = Lageparameter σ = Skalenparameter µ = Lageparameter σ = Skalenparameter k = Skalenparameter λ = Nichtzentralit¨ atsp. l, r = Lageparameter σ = Skalenparameter
F¨ ur Details zu diesen Verteilungs- und Dichtefunktionen siehe Johnson et al. (1992, 1994, 1995). Mit der Verteilungsfunktion FX lassen sich ausgew¨ahlte Wahrscheinlichkeiten berechnen als: P (x1 < X ≤ x2 ) = FX (x2 ) − FX (x1 ) . Beispiel 8.1: Dichte- und Verteilungsfunktion mit den Funktionen CDF / PDF Die Verteilungsfunktion der Zufallsvariablen Jahreseinkommen eines zuf¨allig ” ausgew¨ ahlten deutschen Haushalts“ sei: 0 , x[, optionale Parameter]) aufgerufen. Das Argument entspricht dem Wert α. Die Tabelle 8.2 listet die Namen und Parameter der in SAS implementierten Funktionen zur Berechnung von Quantilen und die zugeh¨ origen Verteilungen auf.
Tabelle 8.2: Funktionen zur Quantil-Berechnung im DATA-Step Verteilung Funktionsname notwendige Parameter optionale Parameter BetaBETAINV a, b Chi-QuadratCINV n λ FFINV m, n λ GammaGAMMA a Standardnormal- PROBIT tTINV n λ
Die Anweisung zur Berechnung des 95 %-Quantils einer t-Verteilung mit drei Freiheitsgraden samt Wertzuweisung zur Variablen x lautet beispielsweise x = TINV(0.95, 3); und f¨ uhrt zu dem Ergebnis: x = 2.3533 .
8.2 Punkt- und Intervallsch¨ atzungen Unbekannte Lage- und Skalenparameter vieler Verteilungsfunktionen werden durch arithmetisches Mittel bzw. empirische Standardabweichung der Stichprobe (eingef¨ uhrt in Kapitel 7) gesch¨ atzt. F¨ ur manche Parametersch¨atzungen in Verteilungen sowie die Sch¨ atzung anderer Charakteristika, welche sich als Linearkombination der Parameter ausdr¨ ucken lassen, sind aber flexiblere Verfahren notwendig. Eines davon ist die Momentenmethode. Sie basiert auf den Momenten mk einer Verteilung, die sich durch ∞ xk · fX (x) dx (k ∈ IN) mk = −∞
errechnen. Bekanntester Vertreter ist der Erwartungswert E(X) einer Zufallsvariablen X, d. h. das erste Moment der Verteilung von X. F¨ ur Erwartungswert und Momente gilt der Zusammenhang:
8.2 Punkt- und Intervallsch¨ atzungen
159
E(X k ) = mk . Die Varianz einer Zufallsvariablen h¨ angt u ¨ber V ar(X) = m2 − m21 von den ersten beiden Momenten ab. Analog lassen sich viele andere Charakteristika einer Zufallsvariablen als Linearkombinationen der Momente ihrer Verteilung darstellen und durch Linearkombinationen der entsprechenden empirischen Momente sch¨ atzen. Das k-te empirische Moment ist dabei das arithmetische Mittel der mit k potenzierten Stichprobenelemente n
m k =
1 k x . n i=1 i
Der durch Linearkombination empirischer Momente konstruierte Sch¨atzer heißt Momentensch¨ atzer. Beispiel 8.2: Punktsch¨ atzung f¨ ur normalverteilte Zufallsvariablen Der Lageparameter µ der Normalverteilung ist das erste Moment dieser Ver 1, teilung, also µ = m1 . Dieses wird durch das erste empirische Moment m dem arithmetische Mittel, gesch¨ atzt: n
1 xi = x ¯. n i=1
µ ˆ=m 1 =
Der Skalenparameter σ der Normalverteilung ist die Wurzel aus der Varianz, atzung σ ˆ f¨ ur den Parameter σ mit der Momenalso σ = m2 − m21 . Eine Sch¨ tenmethode ist gegeben durch: n n 1 1 ˆ2 −m ˆ 21 = x2i − x¯2 = (xi − x ¯)2 . σ ˆ= m n i=1 n i=1
Ein weiteres Verfahren zur Parametersch¨ atzung ist die Maximum-LikelihoodMethode oder kurz ML-Methode. Zun¨ achst ist dabei die Likelihoodfunktion einer Stichprobe x1 , . . . , xn aus der Dichtefunktion fX (x) als Funktion des Parameters θ zu formulieren: L(θ) =
n
fX (xi ) .
(8.1)
i=1
Der Parameter θ ist auf der rechten Seite der Gleichung 8.1 in der Funktion ur den Parameter θ fX (.) enthalten. Der Maximum-Likelihood-Sch¨atzer θˆML f¨ ist dann die L¨ osung des Maximierungsproblems maxθ L(θ): θˆML = argmax L(θ) . θ
160
8 Standardverfahren der schließenden Statistik
Als Rechenerleichterung wird bei der analytischen Maximierung oft anstatt der Likelihoodfunktion L(θ) ihr Logarithmus ℓ(θ) = log L(θ) maximiert, da das Maximum in beiden F¨ allen an der gleichen Stelle angenommen wird. ℓ(θ) heißt Log-Likelihoodfunktion. Sch¨ atzungen f¨ ur Funktionen von Parametern lassen sich durch folgenden Zusammenhang leicht herleiten: ˆ g(θ) ML = g θML . Beispiel 8.2 (Fortsetzung): Die Dichtefunktion der Normalverteilung lautet: (x−µ)2 1 · e− 2σ2 . fX (x) = √ 2πσ
Die Log-Likelihoodfunktion f¨ ur den Parameter µ gegeben eine Stichprobe x1 , . . . , xn ist dann: n n (xi − µ)2 1 . − fX (xi ) = ℓ(µ) = log log √ 2σ 2 2πσ i=1 i=1 Zur analytischen Maximierung von ℓ(µ) bez¨ uglich µ wird die erste Ableitung der Log-Likelihoodfunktion n n xi xi − µ nµ n¯ x nµ ∂ ℓ(µ) = = i=1 − 2 = 2 − 2 2 2 ∂µ σ σ σ σ σ i=1 auf Null gesetzt: nµ n¯ x n¯ x nµ − 2 = 0 ⇐⇒ 2 = 2 ⇐⇒ µ = x ¯. σ2 σ σ σ Wegen n ∂2 ℓ(µ) = − 2 < 0 ∂2µ σ ¯ liegt an der Stelle µ = x ¯ tats¨ achlich ein Maximum vor. Somit ist hier µ ˆML = x der ML-Sch¨ atzer f¨ ur µ. Die Likelihoodfunktion ist leider nicht immer mit analytischen Methoden maximierbar. SAS wendet daher numerische Maximierungsverfahren an, beispielsweise Gradientenverfahren wie Gauss-Newton und MarquardtLevenberg. Sch¨ atzungen mit der verallgemeinerten Momentenmethode sowie der Maximum-Likelihood-Methode werden mit der Prozedur MODEL umgesetzt. Hier ein Auszug aus der sehr umfangreichen allgemeinen Syntax:
8.2 Punkt- und Intervallsch¨ atzungen
161
PROC MODEL [Option(en)]; <Modellspezifikation(en)>; ENDOGENOUS ; ESTIMATE [/ Option(en)]; EXOGENOUS ; FIT <Parameter oder Modellgleichung(en)> [/ Option(en)]; RESTRICT ; Die aus Kapitel 4 bekannten Anweisungen BY, ID, LABEL, VAR und WEIGHT sind daneben wie gewohnt zu verwenden. Die Modellspezifikationen erm¨ oglichen, in mathematischer Schreibweise vorliegende Modelle f¨ ur PROC MODEL verst¨ andlich“ zu notieren. Dazu ist eine ” spezielle Syntax, die MODEL Procedure Programming Language“, notwen” dig. Leider kann diese, wegen der Vielfalt von M¨oglichkeiten, hier nur auszugsweise vorgestellt werden. Einfache Gleichungen, wie sie beispielsweise in Linearen Modellen vorkommen, werden in der Form = notiert, etwa das lineare Modell y = β0 + β1 x1 + β2 x2 + u mit den Parametern β0 , β1 und β2 als y = b0 + b1 * x1 + b2 * x2 . Die Variablen y, x1 und x2 m¨ ussen dabei im zu analysierenden Datensatz vorhanden sein. Ist keine deutliche Trennung zwischen abh¨ angigen und unabh¨angigen Variablen m¨ oglich oder muss auch die abh¨ angige Variable noch mathematischen Transformationen unterworfen werden, sind auch Gleichungen der Form EQ. = m¨ oglich. Damit wird die Funktion der Variablen und Parameter gleich Null gesetzt. Somit ist eine flexiblere Modelldefinition m¨ oglich. Das obige lineare Modell lautet in dieser Notation EQ.lm = b0 + b1 * x1 + b2 * x2 - y (Gleichungsname: lm ). Zur Parametersch¨ atzung in diesen Gleichungen wird in der FIT-Anweisung der Gleichungsname spezifiziert. Es k¨ onnen auch mehrere Gleichungen der beschriebenen Formen durch Semikolon (;) getrennt spezifiziert werden. Auch Modelle mit zeitlichen Verz¨ ogerungen, simultane Gleichungssysteme oder sogar Differentialgleichungen lassen sich in den Modellspezifikationen formulieren. Die Anweisungen ENDOGENOUS und EXOGENOUS kennzeichnen Variablen als endogen bzw. exogen, was f¨ ur die Modellanpassung in simultanen Gleichungssystemen oder in Modellen mit verz¨ ogerten Variablen von Bedeutung ist (vgl. Kapitel 14). Die Anweisung ESTIMATE erm¨ oglicht die Sch¨atzung von Funktionen in der FIT-Anweisung spezifizierter Parameter. Die FIT-Anweisung
162
8 Standardverfahren der schließenden Statistik
sch¨ atzt die in den Modellspezifikationen angegebenen Parameter und kann auch ohne ESTIMATE verwendet werden. Die Sch¨ atzung erfolgt beispielsweise mit der verallgemeinerten Momenten(Option GMM f¨ ur Generalized Method of Moments“ in der FIT-Anweisung) ” oder der Maximum-Likelihood-Methode (Option FIML f¨ ur Full Information ” ¨ Maximum Likelihood“). Uber die RESTRICT-Anweisung lassen sich dabei auch Parameterrestriktionen in Form von Gleichungen oder Ungleichungen ber¨ ucksichtigen. Beispiel 8.3: ML-Sch¨ atzung mit der Prozedur MODEL Nachstehendes Programm sch¨ atzt den Erwartungswert einer normalverteilten Zufallsvariablen aus einer Stichprobe vom Umfang n = 100 mit der MaximumLikelihood-Methode. DATA a (KEEP=x); DO i=1 TO 100; x=NORMAL(1)+4; OUTPUT; END; RUN; PROC MODEL DATA=a; x=a; FIT x /FIML; RUN; Abbildung 8.2 zeigt das Resultat: die ML-Sch¨atzung f¨ ur den Lageparameter µ ist µ ˆ ML = 3,9701 . The MODEL Procedure
Nonlinear FIML Parameter Estimates Parameter Estimate Approx t Value Approx Pr > |t| Std Err a
3.970113
0.0949
41.86
) spezifiziert werden (Niveau= (1−Wert)·100 % ). Diese Option ist ohne Leerzeichen nach CIBASIC anzugeben, wie in Beispiel 8.4 vorgef¨ uhrt. Eine weitere M¨oglichkeit, Konfidenzintervalle zu berechnen, bietet PROC TTEST. Diese Prozedur wird in Abschnitt 8.3 n¨aher vorgestellt. Beispiel 8.4: Konfidenzintervall mit der Prozedur UNIVARIATE Gegeben sei der Datensatz a aus Beispiel 8.3. Nachstehendes Programm errechnet f¨ ur den Lageparameter µ ein Konfidenzintervall zum Niveau (1 − α) · 100 % = 90 % . PROC UNIVARIATE CIBASIC(ALPHA=0.1) DATA=a; RUN; Abbildung 8.3 zeigt das Ergebnis. Das Konfidenzintervall f¨ ur den Lageparameter (Mean) ist KI(µ)0,9 = [3,8118; 4,1284] .
164
8 Standardverfahren der schließenden Statistik The UNIVARIATE Procedure Variable: x
Basic Confidence Limits Assuming Normality Parameter Estimate 90% Confidence Limits Mean
3.97011
3.81183
4.12840
Std Deviation
0.95328
0.85446
1.08060
Variance
0.90875
0.73010
1.16769
Abbildung 8.3: Konfidenzintervall mit PROC UNIVARIATE
8.3 Signifikanztests fu ¨r einzelne Parameter Oft sind außer Punkt- und Bereichssch¨ atzungen auch Antworten auf Fragen wie Ist der wahre Lageparameter gr¨ oßer als Null?“ oder Ist die Varianz der ” ” zweier Zufallsvariablen identisch?“ gesucht. Dazu dienen Hypothesentests mit einer vorgegebenen Irrtumswahrscheinlichkeit α. Zun¨ achst wird die zu beantwortende Frage als Hypothese und Gegenhypothese formuliert. Ausgangs- oder Nullhypothesen (H0 ) sind beispielsweise Annahmen nach dem Muster Zufallsvariable X ist [...]-verteilt mit den Parametern ” [...]“. Die Gegenhypothese heißt Alternativhypothese (H1 ). Aufgrund einer Stichprobe sind zwei Testentscheidungen m¨oglich: die Null” hypothese wird abgelehnt“ oder die Nullhypothese wird nicht abgelehnt“. ” Eine Nullhypothese wird abgelehnt, wenn der Wert einer Pr¨ ufgr¨oße (oder Teststatistik) f¨ ur eine gegebene Stichprobe bestimmte kritische Werte u ¨ berbzw. unterschreitet. Die Wahrscheinlichkeit, die Nullhypothese abzulehnen, als Funktion eines oder mehrerer Parameter der Verteilung von X heißt G¨ utefunktion. Ablehnen der Nullhypothese, obwohl sie zutrifft, f¨ uhrt zu einem Fehler. Er heißt Fehler erster Art. Die maximale Wahrscheinlichkeit f¨ ur einen Fehler erster Art ist das Signifikanzniveau oder kurz Niveau α des Tests. Lehnt man die Nullhypothese nicht ab, obwohl sie falsch ist (d. h. die Alternative trifft zu), f¨ uhrt das ebenfalls zu einem Fehler. Er heißt Fehler zweiter Art. Durch geeignete Wahl der Entscheidungsregel ist die Wahrscheinlichkeit f¨ ur den Fehler zweiter Art f¨ ur ein vorgegebenes Signifikanzniveau zu minimieren. Der bekannteste Signifikanztest ist der t-Test. Er pr¨ uft die Hypothese H0 : µ = µ0 einer normalverteilten Zufallsvariablen X mit E(X) = µ und V ar(X) = σ 2 (unbekannt) anhand einer Stichprobe x1 , . . . , xn . Die Teststatistik T ist gegeben als: T =
√ x ¯ − µ0 n . S
8.3 Signifikanztests f¨ ur einzelne Parameter
165
Tabelle 8.3 listet die Ablehnbereiche verschiedener Varianten des t-Tests auf.
Tabelle 8.3: t-Test H0
H1
µ = µ0
µ = µ0
H0 wird verworfen, falls T ∈ −tn−1;1− α2 ; tn−1;1− α2
µ ≤ µ0
µ > µ0
T > tn−1;1−α
µ ≥ µ0
µ < µ0
T < −tn−1;1−α
SAS gibt f¨ ur Tests p-Werte (engl.: p Value) statt der Ablehnbereiche aus. Ein p-Wert gibt das kleinste Signifikanzniveau an, f¨ ur welches H0 (gerade noch) verworfen werden kann. Die (¨ aquivalente) Testentscheidung lautet dann: H0 ” wird verworfen, falls der p-Wert kleiner als das vorgegebene Signifikanzniveau α ist“. F¨ ur die Hypothese H0 : µ = µ0 wird dieser Test mit der Prozedur UNIVARIATE berechnet. Zu diesem Zweck wird die Option MU0=<Wert> verwendet. Wert entspricht dabei dem µ0 der Hypothese. Eine weitere M¨ oglichkeit, den t-Test zu berechnen, bietet PROC TTEST mit der Option H0=<Wert>. Auch da entspricht Wert dem µ0 der Hypothese. Beispiel 8.5: t-Test mit der Prozedur UNIVARIATE Gegeben sei erneut der Datensatz a aus Beispiel 8.3. Nachstehendes Programm berechnet den t-Test zum Niveau α · 100 % = 5 % f¨ ur das Testproblem H0 : µ = 3,8 vs. H1 : µ = 3,8. PROC UNIVARIATE MU0=3.8 DATA=a; RUN; Abbildung 8.4 zeigt die Testentscheidung. Da der p-Wert des t-Tests 0,0774 gr¨oßer als α = 0,05 ist, kann H0 zum 5 %-Niveau nicht verworfen werden. Die Annahme, der wahre Lageparameter sei 3,8 wird demnach nicht widerlegt. Da µ aber nicht 3,8 sondern 4 ist, begeht man mit der Entscheidung, H0 nicht abzulehnen, einen Fehler zweiter Art. The UNIVARIATE Procedure Variable: x
Tests for Location: Mu0=3.8 Test
p Value
Statistic
Student’s t
t
1.784496 Pr > |t|
Sign
M
4 Pr >= |M| 0.4841
Signed Rank S
440 Pr >= |S| 0.1310
Abbildung 8.4: t-Test mit PROC UNIVARIATE
0.0774
166
8 Standardverfahren der schließenden Statistik
SAS berechnet die p-Werte f¨ ur den t-Test nur f¨ ur zweiseitige Alternativen (H1 : µ = µ0 ). F¨ ur die einseitige Alternative H1 : µ > µ0 l¨asst sich jedoch folgende Testentscheidung ableiten: H0 wird verworfen, falls T > 0 und der ” p-Wert kleiner als 2 · α ist“ sowie f¨ ur H1 : µ < µ0 : H0 wird verworfen, falls ” T < 0 und der p-Wert kleiner als 2 · α ist“. Ein weiterer Test f¨ ur Lageparameter normalverteilter Zufallsvariablen ist der t-Test auf Gleichheit zweier Lageparameter. Dieser Test heißt auch ZweiStichproben-t-Test. Vorausgesetzt werden eine Stichprobe X1 , . . . , Xm aus einer Normalverteilung mit Lageparameter µ1 und unbekanntem Skalenparameter σ sowie eine Stichprobe Y1 , . . . , Yn aus einer Normalverteilung mit Lageparameter µ2 und dem Skalenparameter σ (identisch zum Skalenparameter der ersten Stichprobe). Mit der Teststatistik T := 1
m
+
x ¯ − y¯ 2 +(n−1)S 2 (m−1)S 1 X
n
Y
m+n−2
2 wird der Test wie in Tabelle 8.4 durchgef¨ uhrt. Dabei sind SX und SY2 die empirischen Varianzen der ersten (X) bzw. zweiten (Y ) Stichprobe.
Tabelle 8.4: t-Test auf Gleichheit zweier Lageparameter H0 H1 H0 wird verworfen, falls µ1 = µ2 µ1 = µ2 T ∈ −tm+n−2;1− α2 ; tm+n−2;1− α2 µ1 ≤ µ2
µ1 > µ2
T > tm+n−2;1−α
µ1 ≥ µ2
µ1 < µ2
T < −tm+n−2;1−α
Ein Test auf Gleichheit der Skalenparameter zweier normalverteilter Zufallsvariablen ist der F -Test. Er beruht auf dem Vergleich empirischer Varianzen und wird in Abschnitt 10.1 ausf¨ uhrlich behandelt. Vorausgesetzt werden hierbei eine Stichprobe X1 , . . . , Xm aus einer Normalverteilung mit Lageparameter µ1 und Skalenparameter σ1 sowie eine Stichprobe Y1 , . . . , Yn aus einer Normalverteilung mit Lageparameter µ2 und dem Skalenparameter σ2 . Mit der Teststatistik F :=
2 SX SY2
wird der Test wie in Tabelle 8.5 durchgef¨ uhrt.
8.3 Signifikanztests f¨ ur einzelne Parameter Tabelle 8.5: F -Test auf Gleichheit zweier Skalenparameter H0 H1 H0 wird verworfen, falls σ12 = σ22
σ12 = σ22
F ∈ Fm−1,n−1, α2 ; Fm−1,n−1;1− α2
σ12 ≤ σ22
σ12 > σ22
F > Fm−1,n−1;1−α
σ12
σ12 < σ22
F < Fm−1,n−1;α
≥
σ22
167
Fm,n;α ist dabei das α-Quantil der F -Verteilung mit m und n Freiheitsgraden. Die Prozedur TTEST mit der CLASS-Anweisung berechnet sowohl den t-Test auf Gleichheit zweier Lageparameter (vgl. Tabelle 8.4) als auch den F -Test auf Gleichheit zweier Skalenparameter (vgl. Tabelle 8.5). Die allgemeine Syntax dieser Prozedur lautet: PROC TTEST [Option(en)]; PAIRED ; Die Anweisungen BY, CLASS, FREQ, VAR und WEIGHT werden daneben wie gewohnt verwendet. Die Option ALPHA=<Wert> legt das Niveau der auszugebenden Konfidenzintervalle auf (1-Wert)·100 % fest. Wert muss dabei zwischen 0 und 1 liegen, ohne diese Option wird er bei 0,05 festgelegt. Auch die Option CI=<Schl¨ usselwort> beeinflusst die Berechnung des Konfidenzintervalls f¨ ur den Skalenparameter σ. CI=NONE unterdr¨ uckt die Ausgabe dieses Konfidenzintervalls. Die Schl¨ usselw¨ orter EQUAL und UMPU berechnen das Konfidenzintervall wie in Gleichung 8.3 bzw. basierend auf dem gleichm¨aßig besten Test“ ” f¨ ur dieses Problem. Die Option H0=<Wert> legt den Wert f¨ ur µ0 des (EinStichproben-)t-Tests fest. Im Zwei-Stichproben-Fall ver¨andert sich durch diese Option die Nullhypothese zu H0 : µ1 − µ2 = µ0 . Die Anweisung PAIRED kennzeichnet bei verbundenen Stichproben die zu vergleichenden Variablen durch Verkn¨ upfung mit *“. PAIRED x*y; vergleicht ” somit die verbundenen Variablen x und y. F¨ ur dieses Problem wird jedoch nicht der in Tabelle 8.4 vorgestellte t-Test auf Gleichheit zweier Skalenparameter angewendet. Beispiel 8.6: Zwei-Stichproben t- und F -Test mit der Prozedur TTEST Gegeben sei ein im Vergleich zu Beispiel 8.3 leicht ver¨anderter Datensatz. Dabei werden 40 Realisationen einer normalverteilten Zufallsvariablen mit Lageparameter µ1 = 4 und Skalenparameter σ1 = 1 sowie 60 Realisationen einer normalverteilten Zufallsvariablen mit Lageparameter µ2 = 4,6 und Skalenparameter σ2 = 1 erzeugt. Eine weitere Variable (k) zeigt an, welcher Stichprobe ein Merkmalswert angeh¨ ort. Nachstehendes Programm berechnet den t-Test auf Gleichheit der Lageparameter sowie den F -Test auf Gleichheit der Skalenparameter zum Niveau
168
8 Standardverfahren der schließenden Statistik
α · 100 % = 5 % f¨ ur die Testprobleme H0 : µ1 = µ2 vs. H1 : µ1 = µ2 bzw. H0 : σ12 = σ22 vs. H1 : σ12 = σ22 . DATA a (DROP=i); DO i=1 TO 100; k=round(i/82); x=NORMAL(1)+4+k*0.6; OUTPUT; END; RUN; PROC TTEST DATA=a; CLASS k; RUN; Abbildung 8.5 zeigt die Testentscheidungen. Zun¨achst sei der F -Test auf Gleichheit der Skalenparameter betrachtet. Der zugeh¨orige p-Wert betr¨agt 0,6615 , ist also gr¨ oßer als α = 0,05. Die Hypothese der Gleichheit beider Skalenparameter kann daher nicht verworfen werden und die f¨ ur den t-Test auf Gleichheit der Lageparameter notwendige Voraussetzung identischer Skalenparameter ist nicht als verletzt anzusehen. Der t-Test kann somit durchgef¨ uhrt werden. Da der p-Wert des t-Tests auf Gleichheit der Lageparameter mit 0,0360 kleiner als α = 0,05 ist, wird H0 : µ1 = µ2 zum 5 %-Niveau verworfen. Die Lageparameter beider Stichproben unterscheiden sich signifikant. The TTEST Procedure
T−Tests Variable Method
Variances DF t Value Pr > |t|
x
Pooled
Equal
x
Satterthwaite Unequal
98
−2.13 0.0360
87.5
−2.16 0.0338
Equality of Variances Variable Method Num DF Den DF F Value Pr > F x
Folded F
59
39
1.14 0.6615
Abbildung 8.5: Zwei-Stichproben t- und F -Test mit PROC TTEST
Auch f¨ ur Zwei-Stichproben t- und F -Tests werden die p-Werte in SAS nur f¨ ur zweiseitige Alternativen (H1 : µ1 = µ2 bzw. H1 : σ12 = σ22 ) berechnet. Daraus lassen sich aber auch Testentscheidungen f¨ ur die einseitigen F¨alle ableiten. So gilt f¨ ur H1 : µ1 > µ2 : H0 wird verworfen, falls T > 0 und der p-Wert kleiner ” als 2 · α ist“ sowie f¨ ur H1 : µ1 < µ2 : H0 wird verworfen, falls T < 0 und der ” p-Wert kleiner als 2 · α ist“. F¨ ur H1 : σ12 > σ22 gilt : H0 wird verworfen, falls ”
¨ 8.4 Ubungsaufgaben
169
F > 1 und der p-Wert kleiner als 2 · α ist“ sowie f¨ ur H1 : σ12 < σ22 : H0 wird ” verworfen, falls F < 1 und der p-Wert kleiner als 2 · α ist“.
¨ 8.4 Ubungsaufgaben Aufgabe 8.1: Der Anteil mit ihrer Hausbank zufriedener Kunden wird als betaverteilt mit den Parametern α = 2 und β = 3 angenommen. In 10 verschiedenen Banken wurden folgende Werte beobachtet (Prozentwerte sind durch Multiplikation mit 100 % zu erhalten): 0,662 0,194 0,295 0,368 0,537 0,678 0,277 0,442 0,326 0,186 . Zeichnen Sie die empirische und die unterstellte theoretische Verteilungsfunktion in eine gemeinsame Grafik. Aufgabe 8.2: Erzeugen Sie den Datensatz Gamma mit nachstehendem DATA-Step. Die Variable x beschreibt die Entladezeit eines LKW der Firma Schneck & Schnarch in Stunden. DATA Gamma (KEEP=x); DO i=1 TO 1000; x=RANGAM(1,3)*7; OUTPUT; END; RUN; Sch¨ atzen Sie f¨ ur die Variable x die Summe aus Varianz und quadriertem Erwartungswert mit der verallgemeinerten Momentenmethode. Aufgabe 8.3: Die Firma Bleifuhs entwickelt einen neuen Mittelklassewagen. Der Datensatz alt Bezinverbr¨ auche aus 5000 Testfahrten. Die Daten Aufgabe8 3.sas7bdat enth¨ werden als normalverteilt angenommen (Variable y). Bestimmen Sie ein 99 %Konfidenzintervall f¨ ur Erwartungswert, Standardabweichung und Varianz der Variablen y. Ber¨ ucksichtigen Sie nur jede dritte Beobachtung f¨ ur die Analyse. Aufgabe 8.4: Der Autor des Buches Statistische Hypothesentests in der Werkstoffpr¨ ufung“ ” bittet Sie um eine Tabelle kritischer Werte des t-Tests zur Hypothese ur die Stichprobenumf¨ange H0 : µ = 0 . Berechnen Sie die kritischen Werte f¨ n = 5; 6; 7; 8; 9; 10; 12; 15; 20; 25; 30; 40 jeweils zum Niveau 5 % und 1 %.
170
8 Standardverfahren der schließenden Statistik
Aufgabe 8.5: In einer Pilotstudie wird der Einfluss eines neuen Medikaments auf das menschliche K¨ orpergewicht u ¨ber zwei Wochen untersucht. 20 Patienten erhalten das neue Medikament und eine Kontrollgruppe von 10 Personen ein Placebo. Folgende Gewichtsver¨ anderungen (in kg) wurden gemessen: Medikament (kurz M): -1,54 -1,05 -0,11 -1,60 -1,54 -1,60 -0,46 -1,10 -2,15 -0,37 0,51 0,63 -1,22 0,81 -1,86 -1,75 0,15 -0,41 -0,88 0,42 Placebo (kurz P): 1,50 -0,38 0,10 -1,38 1,94 -0,92 0,21 -0,39 -0,89 -0,27 . Untersuchen Sie das Testproblem H0 : µM ≥ µP vs. H1 : µM < µP mit einem Test zum Niveau 5 % . 2 2 ¨ . Die Normalvertei= σP ufen Sie auch die Voraussetzung σM Hinweis: Uberpr¨ lungsannahme ist dagegen als erf¨ ullt anzusehen.
9 Regressionsanalyse
Francis Galton untersuchte im Jahr 1885 den Zusammenhang zwischen den K¨orpergr¨ oßen von V¨ atern und S¨ ohnen. Er stellte fest: Große V¨ater haben im Durchschnitt gr¨ oßere S¨ ohne, wenn auch nicht ganz so groß wie sie selbst. Kleine V¨ ater haben dagegen kleinere S¨ ohne, wenn auch nicht ganz so klein wie sie selbst. Die K¨ orpergr¨ oße der S¨ ohne bewegt sich somit auf den allgemeinen Durchschnitt zu. Diesen Schritt zur Durchschnittsgr¨oße nannte Galton Regression“ (von lateinisch: regredi = Zur¨ uckgehen). ” Abbildung 9.1 zeigt anhand der Daten Galtons den Zusammenhang zwischen den K¨ orpergr¨ oßen. Diesen beschreibt die Regressionsgerade.
Abbildung 9.1: Galton-Beispiel: K¨ orpergr¨ oße von V¨ atern und S¨ ohnen zusammen mit der Regressionsgeraden
172
9 Regressionsanalyse
9.1 Das lineare Regressionsmodell Die Regressionsanalyse unterstellt einen funktionalen Zusammenhang y = f (x1 , . . . , xn ) zwischen einer oder mehrerer Einflussvariablen x1 , . . . , xn (Regressoren oder unabh¨ angige Variablen) und einer metrischen Zielvariable y (Regressand oder abh¨ angige Variable). Im Beispiel von Galton ist der Regressor die K¨ orpergr¨ oße der V¨ ater und der Regressand die Gr¨oße der S¨ohne. Die lineare Regressionsanalyse soll den wahren Zusammenhang m¨oglichst gut durch ein lineares Modell nachbilden. Die funktionale Beziehung zwischen einem Regressor und dem Regressanden ist dabei durch eine Gerade, die Regressionsgerade, beschrieben. Die Steigung und der Achsenabschnitt dieser Geraden ist bei der Regressionsanalyse zu bestimmen. Den Zusammenhang mehrerer Regressoren zum Regressanden beschreibt eine Hyperebene. Die Modellgleichung ist definiert als: y i = β0 +
k
βj xji + ui ,
i = 1, . . . , n , n > k .
j=1
Dabei bezeichne y den Regressanden, xj die Regressoren und u ist ein unbeobachtbarer stochastischer Fehlerterm, der den eigentlichen linearen Zusamussen menhang u ¨ berdeckt. Die Koeffizienten β0 und βj sind unbekannt und m¨ gesch¨ atzt werden. In Matrixschreibweise ergibt sich f¨ ur das Modell: y = Xβ + u . Dabei bedeutet ⎛ ⎛ ⎞ 1 x11 y1 ⎜ 1 x21 ⎜ y2 ⎟ ⎜ ⎜ ⎟ y = ⎜ . ⎟, X = ⎜ . . ⎝ .. .. ⎝ .. ⎠ 1 xn1 yn
(9.1)
x12 x22 .. . xn2
⎛ ⎞ ⎛ ⎞ ⎞ u1 · · · x1k β0 ⎜ u2 ⎟ ⎜ β1 ⎟ · · · x2k ⎟ ⎜ ⎟ ⎟ ⎜ ⎟ , β = ⎜ . ⎟, u = ⎜ . ⎟ . . . .. ⎟ . ⎠ ⎝ .. ⎠ ⎠ ⎝ . . . un βk · · · xnk
Die Matrix X heißt auch Designmatrix.
Modellannahmen Zur zuverl¨ assigen Bestimmung der Sch¨ atzer eines linearen Regressionsmodells sind die folgenden Annahmen an das Modell aus Gleichung 9.1 zu erf¨ ullen: (A1) Die Designmatrix X ist nichtstochastisch und hat vollen Spaltenrang k + 1. (A2) u ist ein Zufallsvektor mit E(u) = 0. (A3) Die Komponenten von u sind paarweise unkorreliert: Cov(u i , uj ) = 0 (i = j) und haben die gleiche Varianz σ 2 : Cov(u) = σ 2 I, mit I als Einheitsmatrix. (A4) Die Komponenten von u sind normalverteilt.
9.1 Das lineare Regressionsmodell
173
Die Modellannahmen sind vor der Regressionsanalyse zu u ufen. Die An¨berpr¨ nahme der gleichbleibenden Varianz aus (A3) wird auch als Homoskedastizit¨ at bezeichnet. Durch die Forderung des vollen Spaltenranges in (A1) wird Multikollinearit¨ at vermieden. In diesem Fall ließen sich die Spalten der Matrix X nicht durch Linearkombinationen anderer Spalten aus X bilden. Dann lassen sich die Parametersch¨ atzer nicht mit der Kleinsten-Quadrate-Sch¨atzung bestimmen. Kleinste-Quadrate-Sch¨ atzung Vor einer Prognose der abh¨ angigen Variablen y sind die unbekannten Regressionskoeffizienten β0 , β1 , . . . , βk zu sch¨atzen. Das verbreitetste Verfahren daf¨ ur ist die gew¨ ohnliche Kleinste-Quadrate-Methode (KQ-Methode, engl.: Ordinary Least Squares, OLS). Die damit bestimmten Sch¨atzer heißen Kleinste-Quadrate-Sch¨ atzer (KQ-Sch¨ atzer) und haben die Eigenschaft, die ˆ zu minimieren. Der ˆ ′ (y − X β) summierte quadrierte Abweichung (y − X β) KQ-Sch¨ atzer βˆ f¨ ur β ist gegeben durch: βˆ = (X ′ X)−1 X ′ y .
(9.2)
Hierbei setzt die Inversion den vollen Spaltenrang aus Annahme (A1) voraus. Im Fall des einfachen Regressionsmodells yt = β0 +β1 x1 +ut wird eine Punktewolke durch eine Gerade beschrieben, welche die Summe der quadrierten vertikalen Abweichungen minimiert. Abbildung 9.2 zeigt eine solche Regressionsgerade im bivariaten Fall.
Abbildung 9.2: Regressionsgerade bestimmt durch die KQ-Methode; die Summe der quadrierten vertikalen Abst¨ ande ist minimiert
174
9 Regressionsanalyse
ˆ =β. Der Sch¨ atzer βˆ ist unter (A1) und (A2) erwartungstreu f¨ ur β, d. h. E(β) Ferner besitzt er unter (A1) und (A3) die Varianz: ˆ = σ 2 (X ′ X)−1 . V ar(β) Mit dem Sch¨ atzer βˆ f¨ ur β ist es nun m¨ oglich, Prognosewerte f¨ ur unbekannte Werte von y zu bestimmen. Die beste lineare erwartungstreue Prognose yˆ f¨ ur ˆ y ist gegeben durch: yˆ = X β. Die Abst¨ ande zwischen den Werten der abh¨ angigen Variablen y und den aus der KQ-Sch¨ atzung gewonnenen Approximationen heißen Residuen. Die KQResiduen sind gegeben durch: u ˆ = y − X βˆ . F¨ ur die Kovarianz von u ˆ gilt: Cov(ˆ u) = σ 2 (I − H), mit H = X(X ′ X)−1 X ′ als Hat-Matrix. Sind die Regressionskoeffizienten durch Gleichung 9.2 gesch¨atzt, l¨asst sich der Einfluss der Regressoren auf den Regressanden mit einem t-Test u ufen. ¨berpr¨ Unter den Annahmen (A1) bis (A4) ist die Hypothese H0 : βi = 0 zum vorgegeˆ benen Signifikanzniveau α abzulehnen, falls die Pr¨ ufgr¨oße ti = βsii > tn−k;1− α2 ist. Hierbei ist si = s2 (X ′ X)−1 ii die gesch¨ atzte Standardabweichung von element der Matrix (X ′ X)−1 . Die Hypothese H0 : βi = 0 vs. H1 : βi = Hypothese H0 : d′ β = c vs. ′H1 : d′ β = c. u ˆ u ˆ gilt: abgelehnt, falls mit S 2 = n−k $ $ $ $ d′ βˆ − c $ $ $ 2 ′ ′ −1 $ > tn−k;1− α2 . $ S d (X X) d $
βˆi und (X ′ X)−1 ii das i-te Diagonal-
0 ist ein Spezialfall der allgemeinen Diese wird zum Signifikanzniveau α
Ein Konfidenzintervall zum Niveau 1 − α f¨ ur d′ β ist gegeben durch: & % d′ βˆ − tn−k;1− α2 S 2 d′ (X ′ X)−1 d ; d′ βˆ + tn−k;1− α2 S 2 d′ (X ′ X)−1 d .
Bevor der Einfluss einzelner Regressoren mit dem t-Test untersucht wird, ist mit dem F -Test zu u ufen, ob u ¨berpr¨ ¨ berhaupt einer der Regressoren Einfluss auf den Regressanden besitzt. Die durch das Modell erkl¨arte Variation wird dabei mit der Gesamtvariation verglichen. Die Teststatistik lautet: F =
y − y¯ ˆ)′ (ˆ ˆ) y − y¯ n − k (ˆ · . ¯ k − 1 (ˆ u−u ˆ)′ (ˆ u − u¯ ˆ)
Die Hypothese H0 : β = 0 vs. H1 : β = 0 ist zum Niveau α abzulehnen, wenn F > Fk−1,n−k;1−α .
9.1 Das lineare Regressionsmodell
175
Ein Regressionsmodell ist umso besser, je mehr Variation der unabh¨angigen Variablen y es erkl¨ art“. Die G¨ ute dieser Erkl¨ arung wird durch das Bestimmt” heitsmaß beschrieben. Es ist definiert als: R2 =
yˆ′ yˆ y′y
und beschreibt den Anteil, der durch das Modell erkl¨arten, quadrierten Abweichungen der y-Werte vom Mittelwert y¯. Das Bestimmtheitsmaß nimmt Werte zwischen 0 und 1 an. Bei einem Wert von R2 nahe 1 erkl¨aren die Regressoren fast die gesamte Variation des Regressanden. Bei einem Wert von aren die Regressoren nur wenig Variation des Regressanden. R2 nahe Null erkl¨ Ein kleines R2 entspricht nicht notwendig einem schlechten Modell. So kann etwa die St¨ orgr¨ oße u eine große Varianz besitzen. Durch Hinzunahme neuer Regressoren l¨ asst sich der Wert von R2 beliebig nahe an 1 heranbringen. Um eine so vorget¨ auschte gute Anpassung zu verhindern, wird das adjustierte Bestimmtheitsmaß verwendet, welches diese Eigenschaften nicht aufweist. Es ist definiert als: 2 = RA
(ˆ y − y¯ ˆ)′ (ˆ y − y¯ ˆ) . (y − y¯)′ (y − y¯)
Das adjustierte Bestimmtheitsmaß bestraft eine zu große Parameterzahl und verhindert somit zu komplexe Modelle. Die Prozedur REG f¨ uhrt die lineare Regression in SAS durch. Die allgemeine Syntax ist gegeben durch: PROC REG [Option(en)]; MODEL = [/ Option(en)]; Die Anweisungen BY, FREQ, ID, OUTPUT, VAR und WEIGHT sind wie gewohnt zu verwenden. Die wichtigsten Optionen der Prozedur REG sind OUTEST= und EDF. Durch letztere werden die Regressorenanzahl, die Fehlerfreiheitsgrade und das Bestimmtheitsmaß in den unter OUTEST= spezifizierten Datensatz geschrieben. Sollen auch die Standardfehler der Parametersch¨ atzer ausgegeben werden, k¨ onnen diese mit OUTSEB in den Datensatz geschrieben werden. Die Anweisung MODEL muss angegeben werden. Sie legt das anzupassende Modell fest. Es sind sowohl multivariate Modelle (mehrere Regressanden und mehrere Regressoren) als auch multiple Modelle (ein Regressand und mehrere Regressoren) erlaubt. Die Regressanden und Regressoren sind durch Leerzeichen zu trennen. Tabelle 9.1 listet die wichtigsten Optionen von MODEL auf.
176
9 Regressionsanalyse
Tabelle 9.1: Die wichtigsten Optionen der MODEL-Anweisung von PROC REG Option Beschreibung ADJRSQ Berechnet das adjustierte Bestimmtheitsmaß CLB Bestimmt ein Konfidenzintervall f¨ ur die Parametersch¨ atzer CLI Bestimmt ein Konfidenzintervall f¨ ur die Vorhersagewerte COLLIN Untersucht auf Multikollinearit¨ at COVB Berechnet die Kovarianzmatrix der Sch¨ atzer JP Berechnet den Prognosefehler NOINT Rechnet die Regression ohne Achsenabschnitt (Einser-Spalte von X) P Bestimmt die Vorhersagewerte R Bestimmt die Residuen SELECTION W¨ ahlt die Methode zur automatischen Modellselektion STB Berechnet standardisierte Parametersch¨ atzer
Beispiel 9.1: Lineare Regression mit der Prozedur REG Der Datensatz longley.dat (http://www.itl.nist.gov/div898/strd/) enth¨alt sieben Variablen mit 16 Beobachtungen, darunter y als Gesamterwerbst¨atigenzahl der USA, x2 als das BSP und x3 die Arbeitslosenzahl (weitere Variablen wie die Gr¨ oße der bewaffneten Streitkr¨ afte werden hier zun¨achst nicht betrachtet). Nachfolgendes Programm regressiert y auf x2 und x3 : PROC REG; MODEL y=x2 x3; RUN; Die MODEL-Anweisung benennt die abh¨ angigen und unabh¨angigen Variablen. Die Prozedur REG erzeugt die nachstehende Textausgabe. The REG Procedure Model: MODEL1 Dependent Variable: y
Source Model Error
Analysis of Variance DF Sum of Mean F Value Pr > F Squares Square 2 181429761 90714881
13
3579065
329.50 F) ist zum Niveau α = 0,05 mindestens ein Koeffizient von Null verschieden.
9.1 Das lineare Regressionsmodell
177
Abbildung 9.4 zeigt die berechneten Anpassungsmaße. The REG Procedure Model: MODEL1 Dependent Variable: y 524.70248 R−Square 0.9807
Root MSE
65317 Adj R−Sq 0.9777
Dependent Mean Coeff Var
0.80332
Abbildung 9.4: Anpassungsstatistiken
Das Bestimmtheitsmaß von R2 = 0,9807 und auch das unempfindlichere 2 = 0,9777 deuteten auf eine sehr gute Anadjustierte Bestimmtheitsmaß RA passung des Modells an die Daten hin. Abbildung 9.5 zeigt die Parametersch¨ atzer βˆ0 , βˆ1 und βˆ2 . Diese sind f¨ ur alle Regressoren zum 5 %-Niveau signifikant. Zu den Parametersch¨atzern sind die Standardfehler und der Wert der Teststatistik mit zugeh¨origem p-Wert aufgef¨ uhrt. The REG Procedure Model: MODEL1 Dependent Variable: y
Parameter Estimates Variable DF Parameter Standard t Value Pr > |t| Error Estimate Intercept
1
x2
1
0.03784
0.00171
22.12 gibt die Wahrscheinlichkeit an, mit welcher ein Regressor noch im Modell bleibt. Die Standardeinstellung ist SLS=0.1. Ist ein Regressor gem¨ aß dem F -Wert signifikant, bricht das Verfahren an dieser Stelle ab. Die schrittweise Auswahl (engl.: stepwise selection) nimmt Regressoren gem¨aß der Vorw¨ artsauswahl sukzessive auf und u uft anschließend mit der ¨ berpr¨ R¨ uckw¨ artsauswahl, ob der jeweilige Regressor im Modell bleibt. Ein einmal entfernter Regressor wird nicht wieder aufgenommen. Wird kein Regressor mehr aufgenommen oder entfernt, endet das Verfahren. Geeignetere Auswahlverfahren f¨ ur erkl¨ arende Variablen bietet die multivariate Statistik, beispielsweise die Hauptkomponentenanalyse. Beispiel 9.2: Vorw¨ artsauswahl mit der Prozedur REG Nachfolgendes Programm f¨ uhrt eine Vorw¨ artsauswahl f¨ ur den LongleyDatensatz durch: PROC REG DATA=Longley; MODEL Y=X1 X2 X3 X4 X5 X6 / SELECTION=FORWARD SLE=0.05; RUN; Zun¨ achst wird ein Modell mit jedem Regressor einzeln angepasst. Das beste Modell wird davon ausgesucht. Die Regressoren werden zum Niveau 5 % ins Modell aufgenommen. Abbildung 9.6 zeigt den erste Regressionsschritt.
9.1 Das lineare Regressionsmodell
179
The REG Procedure Model: MODEL1 Dependent Variable: y Forward Selection: Step 1 Variable x2 Entered: R−Square = 0.9674 and C(p) = 52.9494
Source Model Error
Analysis of Variance Mean F Value Pr > F DF Sum of Squares Square 1 178972686 178972686
14
6036140
415.10 F Error Estimate Intercept
x2
51844 681.37164 2496050164 5789.25