Ruprecht-Karls-Universitaet Heidelberg

Computer 
SAS: 
Musterlösung für Prozeduren 
und Anweisungen

 
Anmerkung 
Diese Seite wurde erstellt von Katrin Rapp.
Voraussetzung für die Anwendbarkeit der Prozeduren
Die Library und die Daten müssen angelegt und das Programm entsprechend geändert sein.  

Inhaltsverzeichnis 
1. Datenschritt     > an den Daten Veränderungen vornehmen
2. Freq     > Berechnet u.a. Chi² Tests und Korrelationen
3. IML     > Matrizenrechnung mit SAS
4. Libname     > eine Library (Bibliothek) anlegen
5. Means     > liefert Werte aus der deskriptive Statistik
6. Print     > um Daten am Bildschirm anzuzeigen
7. Reg     > dient zur Berechnung von Regressionsanalysen
8. Sort     > sortiert SAS-Tabellen
Zusammenstellung häufiger Fragen und Antworten: FAQ

   
1. Datenschritt
Beschreibung:
Mit einem Datenschritt kann man die Daten erstellen oder veränern; das heißt man kann Variablen löschen, neue berechnen, einzelne Beobachtungen löschen oder, wie im folgenden Fall die Datenstruktur verändern. Der Datenschritt erstellt eine neue Datei mit dem Namen "Muster" unter Zugriff auf die bereits bestehende Datei "Alt" (vgl. "set").

alt: neu:
wert wert1 wert2 wert3
1 1 0 0
2 0 1 0
3 0 0 1
1 1 0 0
2 0 1 0

Programm 2 erzeugt 100 Zufallswerte. Das ist besonders nützlich, um sich über einige Eigenschaften von Zufallszahlen klar zu werden (vgl. dazu zum Beispiel die grafische Darstellung mit Hilfe der Prozedur "Insight" oder die deskriptive Statistiken der Prozedur Means.
Programm 3 zeigt die Dateneingabe mit Hilfe des Datenschritts (bei größeren Datenmengen ist dies freilich nicht zu empfehlen). "@@" weist dabei darauf hin, dass sich in einer Zeile mehrere Beobachtungen befinden.

Programm 1:
data bib.Muster;
    set bib.Alt;
    if wert=1 then wert1=1; else wert1=0;
    if wert=2 then wert2=1; else wert2=0;
    if wert=3 then wert3=1; else wert3=0;
run;

Programm 2:
data bib.Muster;
   do i=1 to 100;
      x=normal(-1);
      output;
   end;
run;

Programm 3:
data bib.Muster;
   input sex $ bildung $ anzahl @@;
   lines;
   m haupt 358 m uni 523
   w haupt 244 w uni 617;
run;

Inhaltsverzeichnis 

   
2. Freq
Beschreibung:
Kreuztabellen (Kontingenztafeln) kann man auch erstellen, ohne dass man dazu alle Beobachtungen eintippen muss. Im folgenden Programm werden einfach das Geschlecht und der Bildungsabschluss sowie eine weitere Variable für die Häufigkeit deklariert. Programm 3 unter Datenschritt enthält den Datenschritt zum Beispiel.

Programm:
proc freq data=bib.Muster order=data;
   tables sex*bildung;
   weight anzahl;
run;

Inhaltsverzeichnis  

   
3. IML
Beschreibung:
IML ist eine umfangreiche Prozedur, die v.a. in der Matrizenrechnung (vgl. Allgemeines Lineares Modell) Anwendung findet. Da sie sehr umfangreich ist, soll hier nur das Programmgerüst (das von den meisten anderen Prozeduren abweicht) dargestellt werden. Bei Bedarf erweitere ich die Beschreibung aber gerne. Viele Beispiele finden sich auch bei Werner (1997).
Im folgenden Programm werden die eigentlichen Berechnungen eingerückt dargestllt. Zuerst wird ein Zeilenvektor a definiert mit a = (1 2 3), danach wird dessen Inverse b berechnet. Wichtig ist, dass man dabei auf die unterschiedlichen Klammern achtet. Vektoren und Matrizen werden stets in geschweiften Klammern geschrieben (Eine geschweifte Klammer erhält man mit "Alt Gr" und 7 beziehunsgweise 0)!

Programm:
proc iml;
start musterprogramm;
reset print;
   a = {1 2 3};
   b = INV (a);
finish;
run musterprogramm;

Inhaltsverzeichnis   

   
4. Libname

Beschreibung:
Um auf Daten zugreifen zu können, muss man SAS darauf hinweisen, wie diese heißen und wo sie ablegt sind. In SAS werden die Dateien in sogenannten "Libraries" (Bibliotheken) organisiert. Das hat den Vorteil, dass man nicht jedesmal den ganzen Pfad angeben muss (Der Pfad führt zu dem Ort, wo die Dateien auf der Festplatte gespeichert sind; "C:\Daten\SS2002\EDV\SAS" führt zu einem Ordner "SAS" auf der Festplatte.) Das folgende Programm legt eine Bibliothe mit dem Namen "bib" an. Dann muss man im Datenschritt anstelle des Pfads nur noch "bib" schreiben, um SAS den Ort zu beschreiben, an dem die Daten gespeichert sind. Hinweis: Um den Pfad herauszufinden, reicht es die Daten im Explorer zu suchen, der Pfad wird dann unter "Adresse" angezeigt.

Programm:
libname bib 'C:\Daten\SS2002\EDV\SAS';

Inhaltsverzeichnis   

   
5. Means 
Beschreibung:
Die Prozedur "Means" liefert grundlegende Werte aus der deskriptiven Statistk. Darunter N (Anzahl der Beobachtungen), Standardabweichung und Mittelwert. In Programm 1 werden die Mittelwere eines Testwertes getrennt nach den Geschlechtern ausgegeben. Programm zwei legt eine Tabelle "Stat" an, welche die berechneten Kennwerte enthält.

Programm 1:
proc means data=bib.Muster;
   var wert;
   class sex;
run;

Programm 2:
proc means data=bib.Muster;
   var wert;
   output out=bib.Stat;
run;

Inhaltsverzeichnis   

   
6. Print 
Beschreibung:
Die Prozedur "Print" liefert entgegen dem Anschein keinen "richtigen" Ausdruck, sondern lediglich einen Bildschirmausdruck, das heißt die Daten werden am Bildschirm angezeigt. Diese Anzeige wiederum kann dann "richtig" ausgedruckt werden. Nun könnte man seine Daten auch einfach durch das Öffnen der SAS Tabelle anschauen, der Vorteil der Prozedur Print liegt aber darin, dass die Ansicht eingeschränkt werden kann. Man kann entweder alle Variablen aufzählen, die angezeigt werden sollen (vgl. Programm 1) oder, wenn diese in der Mehrheit sind, die angeben, die nicht angezeigt werden sollen (vgl. Programm 2). Eine weitere Möglichkeit bietet die Anweisung "where". Im Programm 3 werden nur die Werte der weiblichen Versuchsteilnehmer aufgelistet.

Programm 1:
proc print data=bib.Muster;
   var name alter sex;
run;

Programm 2:
proc print data=bib.Muster(drop=sex);
run;

Programm 3:
proc print data=bib.Muster;
   where sex='w';
run;

Inhaltsverzeichnis 

   
7. Reg 
Beschreibung:
Das folgende Programm dient zur Überprüfung der Voraussetzungen der Regressionanalyse, genauer zur Überprüfung der Residuen (vgl. Prozedur "Univariat").

Programm:
proc reg data=bib.Muster;
   model wert1=wert2;
   output out=bib.Fehler R=resid;
run;

Inhaltsverzeichnis   

   
8. Sort 
Beschreibung:
Entgegen den meisten anderen Prozeduren verändert die Prozedur "Sort" die Ausgangsdaten. Weil das nicht immer wünschenswert ist, wird im folgenden Programm eine neue Datei angelegt, die die sortierten Werte enthält. Das Kriterium, nach dem sortiert werden soll, steht nach der Anweisung "by".

Programm:
proc sort data=bib.Alt out=bib.Muster;
   by alter;
run;

Inhaltsverzeichnis  

 
 
Zur Übersicht 
Seitenbearbeiter: E-Mail
Letzte Änderung: 19.01.2016