SAS/GRAPH-Makros

R. Becker


    

Oftmals wünscht man sich eine sehr spezielle oder moderne Darstellungs- oder Analyseform für seine Daten und muß sich dann fragen, wieso diese Art der Auswertung in den vorhandenen Programmpaketen nicht enthalten ist. Falls der Wunsch danach nur groß genug ist, kann man versuchen, ein entsprechendes SAS-Programm zu schreiben (z.B. mit ANNOTATE). SAS besitzt dazu fast immer die ausreichenden Programmiermöglichkeiten. Da das Rad nicht immer neu erfunden werden muß, werden solche von Benutzern geschriebenen Programme auf einem zentralen Server gesammelt und als SAS-Makros zur Verfügung gestellt. In folgendem Artikel werden einige dieser Makros, insbesondere zu SAS/GRAPH, vorgestellt.

Was kann ein SAS-Makro und wer kann es nutzen?

SAS-Makros können von sehr einfachen Programmen bis hin zu komplexen und umfangreichen SAS-Programmen alles enthalten, was SAS zu bieten hat. Makros mit einer Länge von mehreren hundert Zeilen sind dabei keine Seltenheit. SAS bietet jedem Benutzer die Möglichkeit eigene Makros zu erstellen und zu verwalten. Zusätzlich können Makros allen Benutzern zugänglich gemacht werden. Auf unserem Zentralrechner stehen die für alle Benutzer nutzbaren Makros im Unterverzeichnis "SAS_AUTOS" im SAS-Programm-Verzeichnis. SAS-Makros besitzen, wie alle anderen SAS- Programme auch, die Endung '.SAS'.

Wie kann man ein SAS-Makro aufrufen?

Im allgemeinen hat der Aufruf in SAS folgende Form:

       %makroname(parameter)
Der Aufruf des Makros wird also nicht mit einem Semikolon abgeschlossen. Welche Parameter in welcher Form angegeben werden können, entnimmt man am besten dem Makro selbst. Dazu findet man am Anfang eines Makros üblicherweise eine genaue Beschreibung. Grundsätzlich ist es sinnvoll, ein Makro vor der ersten Nutzung durchzuschauen. Dazu kann man das Makro mit dem Kommando:
	INCLUDE ':systems:sas:sas_autos:makroname.sas'
ins SAS-Programmeditor-Fenster laden.

Beispiel:

Das Boxplot-Makro kann einfach aufgerufen werden mit:

	   %BOXPLOT(DATA=dateiname,
        	   VAR=variable, CLASS=gruppen)
Die Angabe von weiteren Parametern ist möglich. Genauere Angaben erhält man im Makro-Text selbst, welchen man mit o.a. INCLUDE-Kommando einsehen kann.

Welche Makros stehen zur Verfügung?

Zur Zeit findet man (neben einigen von SAS mitgelieferten Programmen) im Verzeichnis ':systems:sas:sas_autos' folgende Makros:

BIPLOTplottet Beobachtungen und Variablen in einem Koordinatensystem
BOXANNOerzeugt Boxplots an den Achsen von 2- bzw. 3-dim. Scatterplots
BOXPLOTzeichnet Boxplots für Gruppen von Beobachtungen, s.o.
CONTOURerzeugt Elipsen um 2-dim. Punktwolken
CORRESPführt eine Korrespondenz-Analyse durch
DENSITYberechnet einen Kern-Dichteschätzer mit Normal-Verteilungs-Kern
DOTPLOTerzeugt einen "Dot-Chart"
LOWESSberechnet eine robuste, lokal gewichtete Scatter-Plot-Glättung
NQPLOTerstellt einen Normal-QQP (Quantile-Quantile-Plot)
OUTLIER'entlarvt' multivariate Ausreisser
PARTIALerzeugt Residuen-Plots zu partieller Regression
SCATMATerzeugt eine Scatter-Plot-Matrix
STARSzeichnet bei multivariaten Daten für jede Beobachtung ein Stern-Diagramm
SYMPLOTerzeugt verschiedene Plots zur Überprüfung der Symmetrieeigenschaft von Verteilungen
TWOWAYgraphische Darstellung einer zweifaktoriellen Varianzanalyse mit einer Beobachtung pro Zelle (nach Tukey)

      

Eine aktuelle Übersicht über die vorhandenen SAS-Makros erhalten Sie mit dem Zentralrechner-Kommando:

	   INFO SASMAKROS
Alle hier vorgestellten Makros entstammen dem Buch von Michael Friendly [3]. Diese und weitere nützliche SAS-Makros findet man auf dem FTP-Server:
	   'JSE.STAT.NCSU.EDU'
im Verzeichnis 'SOFTWARE/SAS'. Allgemeine Informationen zu SAS-Makros findet man in [1] und [2].

Literatur:

 [1] SAS Language, Reference, Version 6
     - S. 967ff
 [2] SAS Guide to Macro Processing, 
     Version 6, Second Edition
 [3] M. Friendly, 'SAS System for Statistical 
     Graphics', 1991, SAS Institute Inc.,
     Cary, NC, USA
 [4] Hartung/Elpelt, 'Multivariate Statistik',
     1986, Oldenbourg-Verlag, Kapitel 9

Ansprechpartner im URZ:

Rainer Becker         Zimmer Ei: eO-106          CEO-Mail: becker
                      Tel.: -351                 PMail: rainer.becker 
Ingo Kemmerzell       Zimmer In: AS-301          CEO-Mail: kemmerzell
                      Tel.: -249                 PMail: ingo.kemmerzell