Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung...

54
URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 1 Das Datenanalysesystem SAS Einführung in die Programmierung Blockkurs, SS 2005 Dr. Carina Ortseifen, URZ Heidelberg Kursaufbau Montag, 18.07. – Freitag, 22.07.2005 Kurs 09:00 - 12:00 R 118 Pause 12:00 – 13:00 Kurs 13:00 - 16:00 R 118

Transcript of Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung...

Page 1: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 1

Das Datenanalysesystem SAS

Einführung in die Programmierung

Blockkurs, SS 2005Dr. Carina Ortseifen, URZ Heidelberg

Kursaufbau

Montag, 18.07. – Freitag, 22.07.2005

Kurs 09:00 - 12:00 R 118

Pause 12:00 – 13:00

Kurs 13:00 - 16:00 R 118

Page 2: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 2

Literatur

Kursunterlagen (über URZ-Homepage Software > Statistik > Kurse > SAS anklicken)

SAS Online-Hilfe (Hilfe-Menü)

SAS Online-Doku im WWWhttp://support.sas.com/documentation/ onlinedoc/index.html

SAS Language, Reference, SAS Procedures Guide,SAS/STAT, SAS/FSP, SAS/INSIGHT, SAS Makros …

Weitere Literatur

Das SAS-Anwenderhandbuch im Netzwww.urz.uni-heidelberg.de/statistik/sas-ahDort im Kapitel 5: Carina Ortseifen: Der SAS-KursWeitere Lehrbücher über die URZ-Homepagewww.urz.uni-heidelberg.de: Software > Statistik > SAS > Weitere Hinweise/Literatur > Lehrbücher zu SAS

Page 3: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 3

Warum sind Sie heute hier?

Aus welchen Gründen haben Sie sich für den Besuch dieses Kurses entschieden?

Was wollen Sie hier alles lernen?

Warum haben Sie sich für die SAS-Software entschieden? Es gibt doch auch SPSS.

Themen

1. Die Oberfläche von SAS Version 92. SAS-Tabellen: Datenschritt I3. SAS-Basisprozeduren Print, Sort4. Statistik am Beispiel von Means und Ttest5. Tabellen verknüpfen: Datenschritt II6. Schleifenprogrammierung: Datenschritt III7. Weitere SAS/Base Prozeduren: Transpose, Tabulate …8. Output Delivery System (Ods)9. SAS-Makroprogrammierung10. Weitere SAS Prozeduren: Fsedit, Insight …

Page 4: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 4

Voraussetzungen

Gültige Benutzerkennung fürs URZ und

Besuch des Kurses ‚Das Datenanalysesystem SAS – Einführung mit dem SAS Enterprise Guide‘oder gleichwertige Kenntnisse

Teilnahmebescheinigung bei regelmäßiger Anwesenheit (80 %)

Begriffe

SAS-TabelleVariable, Beobachtung, WertFormat, Informat, Label (Etikett)

BibliothekDatenschrittProzedurschrittAnweisung, global, lokal

Page 5: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 5

Themen

1. Die Oberfläche von SAS Version 92. SAS-Tabellen: Datenschritt I3. SAS-Basisprozeduren Print, Sort4. Statistik am Beispiel von Means und Ttest5. Tabellen verknüpfen: Datenschritt II6. Schleifenprogrammierung: Datenschritt III7. Weitere SAS/Base Prozeduren: Transpose, Tabulate …8. Output Delivery System (Ods)9. SAS-Makroprogrammierung10. Weitere SAS Prozeduren: Fsedit, Insight …

SAS Version 9

Installiert ist: SAS 9.1.3 Englisch und DeutschProgrammierumgebung (Code-Fenster) mitWindows-Elementen:

MenüleisteIconsEditor-, Log- und OutputfensterExplorer und Resultfenster

Page 6: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 6

Menüleiste

Symbolleiste(Tools)Kommando

-zeile

SAS-Explorer

Protokollfenster (Log)

Editorfenster (Code)

Ausgabefenster(Output)

Arbeitsweise

SAS-Programme in den Editor laden (oder neu schreiben), ausführen und Ergebnisse betrachtenProgramm ausführen über Menü (Run > Submit), Icon , Funktionstaste F3, RM Submit All oder Kommando SubmitHilfe zu einzelnen ProzedurenKommando help ProzedurnameBeispiel: help Print

Page 7: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 7

Bibliotheken verwalten (Libname)

über den SAS ExplorerDoppelklick auf Explorer zeigt die aktuellen Bibliotheken an.

Zurück mit

Rechte Maustaste (RM)- auf einer Bibliothek: Anzeige der

Eigenschaften, Löschen u.a.m. - auf Libraries: Anlegen einer neuen

Bibliothek

SAS-Bibliotheken

sind (Unter-) Ordner, die SAS-Tabellen enthalten.Um nicht immer den gesamten Pfad schreiben zu müssen, vergibt SAS Kürzel für die Ordner:Bibliotheksname (oder libref).Zur Definition

Anweisung LibnameFenster: Neue Bibliothek im Explorer

SAS/EG vergibt eigene Bibliotheksnamen.(Anzeige zur Ziehen der Tabelle ins Code-F.)

Page 8: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 8

Neue SAS-Bibliothek anlegenName der Bibliothek

Ordner-Angabe

Schalter für ‚permanente‘Bibliotheken

SAS Explorer

Ähnlich wie Windows-Explorer viele Funktionalitäten auf rechter Maustaste (RM)

Anzeige und Bearbeiten von Tabellen, Bibliotheken und KatalogenErzeugen neuer Bibliotheken, Filerefs, Tabellen und KatalogenKopieren und Export von Dateien

Page 9: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 9

Menü View (Ansicht)

Zum Ändern der Explorer Darstellung(Explorer Fenster ist das aktive Fenster.):

View > Show treeöffnet Baumstruktur, die Drill-Down erlaubt, um einzelne Dateien zu öffnen

View > Details zeigt Details der Bibliotheken, Dateien .. an.

Tabelleninformationen

Tabelle anklicken, RM > Propertiesliefert:Allgemeine OptionenDetailsIndizesSpalten (= Variablenfenster)

Eintragungen, die sich ändern lassen, haben Popup-Menü.

Page 10: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 10

Variablenfenster

(auch über RM > View columns)

Anzeige der Variablen samt EigenschaftenName, Etikett, Ausgabe- und Einleseformat

können über das RM-Menü geändert werden

Tabellenansicht und zurück

Doppelklick auf die Tabelle öffnet sie mit dem ViewtableTabelle umbenennen: Tabelle markieren, RM > RenameMit View > Up one level kehrt man eine Ebene im Explorer zurück (oder dem Icon ).

Page 11: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 11

Tabellen kopieren

Mittels Drag and Drop können Tabellen von einer Bibliothek in eine andere kopiert werden.

Beispiel: SPSS-Transportfile O:\KURS\SAS\Daten\iris.por(apps auf "winfile")

Umbenennen geht über RM Rename

Zeit für die

Übungen zu Kapitel 1

Page 12: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 12

Themen

1. Die Oberfläche von SAS Version 92. SAS-Tabellen: Datenschritt I3. SAS-Basisprozeduren Print, Sort4. Statistik am Beispiel von Means und Ttest5. Tabellen verknüpfen: Datenschritt II6. Schleifenprogrammierung: Datenschritt III7. Weitere SAS/Base Prozeduren: Transpose, Tabulate …8. Output Delivery System (Ods)9. SAS-Makroprogrammierung10. Weitere SAS Prozeduren: Fsedit, Insight …

Erzeugen von SAS-Tabellen:Wie und wo liegen die Daten vor?

SAS TabelleEG: Einfügen > DatenDatenschritt mit SetProzedur SQL

Anmerkung: EG: Enterprise GuideNicht EG: nur mit ‚normalem‘SAS ausführbarohne: im Code-Fenster vom EG

Fremdformat von anderer Anwendung (Excel)EG: Daten einfügenEG: Extras > Daten importieren

ASCII-Datei (Rohwerte)EG: Extras > Daten importierenDatenschritt mit Infile

Auf dem PapierDatenschritt mit Datalines (oder Cards)Nicht EG: Prozedur Fsedit mit Option New=

Page 13: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 13

Aufbau von SAS-Programmen

Globale Anweisungen

Datenschritte

Prozedurschritte

LIBNAME lib 'C:\';

Data lib.abc;Set lib.abc;y=x+10;

Run;

Proc Freq Data=lib.abc;TABLES a*b;

Run;

SAS-Anweisungen

Daten- und Prozedurschritte bestehen aus Anweisungen.Anweisungen werden durch ein Schlüssel-wort eingeleitet (z.B. Data, Proc, Run, Title) und enden mit einem Semikolon (;).

Proc Sort .... ;

Optionen wählen Aktionen aus oder ändern Voreinstellungen ab.

Proc Print Data=sasuser.adressen;

Page 14: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 14

Meldungen im Protokollfenster

NoteHinweis zur Abfolge des Programms (Dauer, welche Datei(en) wurde(n) angelegt/gelöscht)

WarningSAS ist auf einen behebbaren Fehler gestoßen. Der Daten- oder Prozedurschritt wurde vollständig ausgeführt.

ErrorDer Fehler konnte nicht behoben werden. Der Programmschritt wurde abgebrochen.

Programm1.sas

Data sasuser.adressen;Input name $ vorname $ ort $ alter;Datalines;

Meier Hans Walldorf 25Schulze Karin Mannheim 27Müller Horst Nußloch 31Run;

Was macht dieses Programm, wenn man es ausführt? Was ist die Aufgabe des Datenschritts? Was tun die einzelnen Anweisungen?

Page 15: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 15

Programm2.sas

Data kurs.neu;Set sasuser.adressen;gruppe=1;land=‘D‘;If alter<30 Then typ=‘junior‘;Else typ=‘senior‘;

Run;

Was macht dieses Programm? Was ist die Aufgabe des Datenschritts?Was tun die einzelnen Anweisungen?

Aufgabe des Datenschritts

… ist die Erzeugung von SAS-Tabellen

1. Entweder aus Rohwerten/ASCII-Dateien:Input + Datalines + DatenwerteInput + Cards + DatenwerteInfile + Input

(Datalines und Cards sind synonyme Anweisungen.) oder

2. aus vorhandenen SAS-Tabellen: Set

Page 16: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 16

Die Anweisung Data

ist die erste Anweisung im Datenschritt.

Dem Schlüsselwort Data folgt der Name der zukünftigen SAS-Tabelle.

Data sasuser.adressen;Data kurs.neu;Data work.firma;

Ende des Datenschritts

Der Datenschritt ist beendet, wenn ein neuer Daten- oder Prozedurschritt beginntd.h. Data- oder Proc-Anweisung,eine Run-Anweisung auftritt odernach den Datenzeilen nach einer Datalines-oder Cards-Anweisung

Page 17: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 17

Anweisungen und Zuweisungen

Jede Anweisung beginnt mit einem Schlüsselwort (Data, Set, Run) und endet mit einem Semikolon (;).Bei einer Zuweisung steht links vom Gleichheitszeichen der Name der neuen Variablen, rechts die Rechenvorschrift.Zuweisungen im SAS EG mit Extras > Abfragen > … > Auswählen, Neu

Anweisung Set

bezeichnet die SAS-Tabelle, die in die neue kopiert wird.Diese Tabelle muss existieren.Die Tabelle in der Data-Anweisung kann mit der in der Set-Anweisung übereinstimmen:

Data kurs.neu;Set kurs.neu;alter_klasse=alter/10;

Run;

Page 18: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 18

Programm2 - Die Zuweisung

Data kurs.neu;Set sasuser.adressen;gruppe=1;land=‘D‘;If alter<30 Then typ=‘junior‘;Else typ=‘senior‘;

Run;

Es werden zwei neue Variablen, gruppe und land, gebildet durch Zuweisung eines konstanten Wertes -für alle Beobachtungen in der SAS-Tabelle.

Programm2 - Bedingte Zuweisung

Data kurs.neu;Set sasuser.adressen;gruppe=1;land=‘D‘; If alter<30 Then typ=‘junior‘;Else typ=‘senior‘;

Run;

Der Wert der Variable typ wird in Abhängigkeit von einer Bedingung bestimmt (hier abhängig vom Alter).

Page 19: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 19

Hinweis

Die Anweisungen im Datenschritt werden von oben nach unten für jede einzelne Beobach-tung der SAS-Tabelle – ebenfalls sequentiell von oben nach unten – abgearbeitet.Vorsicht! Was passiert hier:

Data kurs.neu;Set sasuser.adressen;If alter>=30 Then alter=2;If alter<30 Then alter=1;

Run;

Programm3

Data kurs.neu;Set kurs.neu;If typ=‘senior‘ Then Delete;

Run;

Welche SAS-Tabelle wird erzeugt?Wird sie aus Rohwerten oder einer SAS-Tabelle erzeugt?Wie heißt diese?Was macht die Anweisung Delete?

Page 20: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 20

Zuweisung von Konstanten

Numerische VariablenVariable=Wert;

x=3; y=0.2; z=.;

Text- (Alphanumerische, Character-) VariablenVariable='Zeichenkette'; oderVariable="Zeichenkette";

status='ohne Befund';sex="männlich";wort=''; wort=' ';

Arithmetische Operatoren

Addition +a=b+c; a=b-10; a=10+20;Subtraktion -a=b-c; a=b-10; a=20-10;Multiplikation *a=b*c; a=b*10; a=10*20;Division /a=b/c; a=b/2; a=5/2;Potenzierung **a=b**c; a=b**2; a=3**2;Es gilt dabei: Punkt- vor Strichrechnung.

Page 21: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 21

SAS-Funktionen

Funktionsname(Argument<,Argument2<,..>>)

Arithmetische Funktionen

Sqrt(x) y=Sqrt(x); y=Sqrt(2);Exp(x) y=Exp(x); y=Exp(0);

Quantilfunktionen, z.B. t-Verteilung

Tinv(alf,df) x=Tinv(0.05,10);

SAS-Funktionen (2)

Wahrscheinlichkeitsfunktionen, z.B. t-Verteilung

Probt(x,df,<nc>) p=Probt(1.96,10);

Stichprobenfunktionen

Mean(x,y) y=Mean(a,b,c);Std(x,y,z) y=Std(1,2,3);

Page 22: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 22

Funktionen

Verwendung der Funktionen ausschließlich im Datenschritt (oder Prozedur SQL):

Data work.meinedatei;Set urz.iris;sum1=sl+sw+pl+pw; * "zu Fuß" ;sum2=Sum(sl,sw,pl,pw); * Funktion ;

Run;

Vorteil der Funktionen

meistens schneller im Vergleich zur 'Zu Fuß'-Methode, zum anderen können sie adäquat mit fehlenden Werten umgehen (vgl. Aufgabe 10).

Vollständige Liste der verfügbaren Funktionen SAS Language Guide oder Hilfe > SAS Hilfe und Dokumentation > SAS Produkte > Base SAS > SAS LanguageDictionary > Dictionary of Language Elements > Functions and CALL Routines

Page 23: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 23

Eine Übung für alle

Data eins;a=1; b=2; c=3;

Run;

Data zwei;Set eins;a=4;

Run;

Data drei;a=1; a=2; a=3;

Run;

Fragen1. Welche SAS-Tabellen werden erzeugt?2. Wie viele Variablen haben diese?3. Wieviele Beobachtungen? 4. Welche Werte?

Data vier;Run;

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger . 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz 19Jens Pfluger St. Ilgen 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger Heidelberg 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19

Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24

Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg

Mehrere Zeilen pro Beobachtung (#1, /)Mehrere Beobachtungen pro Zeile (@@)

Liste/frei Spalten (1-5) Format (:$10.)

Spalten + PAD

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Jens Pfluger Heidelberg 24

Liste/Format + MISSOVERINFILE +

Rohwert-Typen

Page 24: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 24

Programm1.sas

Data sasuser.adressen;Input name $ vorname $ ort $ alter;Datalines;

Meier Hans Walldorf 25Schulze Karin Mannheim 27Müller Horst Nußloch 31Run;

Zum Programm1.sas

Datenwerte stehen in einer Liste durch Leerzeichen getrennt. => ListengesteuertDie Anweisung Input definiert die vier Variablen: Name, Vorname usw..Alphanumerische Variablen werden durch $ (nach dem Variablennamen) gekennzeichnet.Nach der Anweisung Datalines (inkl. ;) folgen die Datenwerte.Run; beendet den Datenschritt.

Page 25: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 25

Hinweise zur „Liste“

Zwischen zwei Datenwerten muss (mindestens) ein Leerzeichen stehen.Werte von Textvariablen (z.B. die Namen) dürfen nicht länger als 8 Zeichen sein und kein Leerzeichen enthalten.Fehlende Werte müssen durch einen Punkt gekennzeichnet werden.

Anweisung Datalines (Cards)

ist eine Anweisung des Datenschrittsteilt dem SAS-System mit, dass im Anschluss die Datenwerte folgenist die letzte Anweisung des DatenschrittsDie Datenwerte werden durch ein Semikolon beendet, das in einer neuen Zeile stehen muss.

Page 26: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 26

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger . 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz 19Jens Pfluger St. Ilgen 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger Heidelberg 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19

Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24

Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg

Mehrere Zeilen pro Beobachtung (#1, /)Mehrere Beobachtungen pro Zeile (@@)

Liste/frei Spalten (1-5) Format (:$10.)

Spalten + PAD

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Jens Pfluger Heidelberg 24

Liste/Format + MISSOVERINFILE +

Rohwert-Typen

Spaltengesteuertes Einlesen

ist angezeigt, wenn Textwerte Leerzeichen enthalten:

Data sasuser.adressen;Input name $ 1-10 vorname $ 11-16

wohnort $ 17-26 alter 28-29;Datalines;

Meier Hans St. Leon 25van SchulzKarin Heidelberg 27 Karl Helmut 51Run;

Page 27: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 27

Hinweise zu „Spalten“

Die Position der Variablen wird als Bereich von-bis angegeben.Keine Leerzeichen zwischen Werten notwendig Die Datenwerte müssen exakt in Spalten positioniert sein.Die Spalten müssen so breit angelegt sein, daß der längste Wert Platz hat.

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger . 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz 19Jens Pfluger St. Ilgen 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger Heidelberg 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19

Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24

Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg

Mehrere Zeilen pro Beobachtung (#1, /)Mehrere Beobachtungen pro Zeile (@@)

Liste/frei Spalten (1-5) Format (:$10.)

Spalten + PAD

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Jens Pfluger Heidelberg 24

Liste/Format + MISSOVERINFILE +

Rohwert-Typen

Page 28: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 28

Formatgesteuertes Einlesen

ist angezeigt bei Textwerten länger als 8 Zeichen oder anderen Nicht-Standardwerten, wie Datumsangaben und Zahlen mit Kommas:

Data kurs.firma;Input name :$50. gebdatum :Ddmmyy10.

zahl1 :Comma10.2 zahl2 :Commax10.2;Datalines;

Meier 01.01.1960 10,000.00 12,45Leuthäuser-Schnarrenberger . 1.00 13,50Karl 29.02.2000 1,000,000 100,50Run;

Format

Zahl, Text bis zu... Zeichen

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger . 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz 19Jens Pfluger St. Ilgen 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19Jens Pfluger Heidelberg 24

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19

Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24

Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg

Mehrere Zeilen pro Beobachtung (#1, /)Mehrere Beobachtungen pro Zeile (@@)

Liste/frei Spalten (1-5) Format (:$10.)

Spalten + PAD

Hans Müller Walldorf 25Jutta Schreiner Mannheim 31Uwe Schulz Jens Pfluger Heidelberg 24

Liste/Format + MISSOVERINFILE +

Rohwert-Typen

Page 29: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 29

Werte in externen Dateien

Anstelle der Anweisung Datalines verwendet man dann INFILE vor Input

Data kurs.klasse;Infile 'd:\klasse.dat';Input name $ alter;

Run;

Direkt von einem Meßgerät, mit einem externem Editor erfaßt oder z.B. WinWord(Umwandlung in Ascii (als 'nur Text') nicht vergessen!)

PAD und MISSOVER

sind Optionen der Anweisung INFILE

Infile 'd:\text.dat‘ Pad;Infile 'd:\text.dat‘ Missover;

Allgemein

Infile ‘Pfad\Datei‘ <Missover> <Pad>;

Page 30: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 30

Zeit für die

Übungen zu Kapitel 2

Themen

1. Die Oberfläche von SAS Version 9.1 (8.2)2. SAS-Tabellen: Datenschritt I3. SAS-Basisprozeduren Print, Sort4. Statistik am Beispiel von Means und Ttest5. Tabellen verknüpfen: Datenschritt II6. Schleifenprogrammierung: Datenschritt III7. Weitere SAS/Base Prozeduren: Transpose, Tabulate …8. Output Delivery System (Ods)9. SAS-Makroprogrammierung10. Weitere SAS Prozeduren: Fsedit, Insight …

Page 31: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 31

Prozedur PrintDarstellen der Datenwerte einer SAS-Tabelle im Ausgabefenster

Der einfachste Aufruf

Proc Print Data=sasuser.adressen;Run;

gibt die SAS-Tabelle sasuser.adressenvollständig mit allen Variablen und Beobachtungen aus.

Einschränkungen / Änderungen

Nur bestimmte VariablenAnweisung Var

Nur bestimmte Beobachtungen / TeilmengeDateioptionen Obs= und Firstobs=Anweisung Where

Beobachtungen in einer anderen ReihenfolgeProzedur Sort

Listen getrennt nach bestimmten GruppenAnweisung By

Page 32: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 32

Anweisung Var

Sollen nicht alle Variablen ausgegeben oder die Variablen in anderer Reihenfolge dargestellt werden, verwendet man die Anweisung Var.

Proc Print Data=sasuser.adressen;Var name alter;

Run;

Variablenbereiche

Benennung einzelner Variablen:Var name alter;

mit geänderter Reihenfolge:Var wohnort alter name;

Gleicher Präfix und numerische Endung:Var tag1-tag5;

Variablenbereiche innerhalb der Datei:Var name--alter;

Page 33: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 33

Variablen ausschließen - Drop=

Sollen alle Variablen bis auf wenige dargestellt werden, verwendet man die Dateioption Drop=:

Proc PrintData=sasuser.adressen(Drop=sex);Run;

Die Dateioptionen folgen dem Tabellennamen in Klammern: (Drop=Variable|Variablenliste)

Teilmengen

Normalerweise werden Prozedurschritte für alle Beobachtungen ausgeführt.Bei großen Tabellen testet man den Prozedurschritt zunächst mit wenigen Fällen.Manchmal teilt man die Beobachtungen auf und führt Prozedurschritte nur für ausgewählte Beobachtungen aus. Einsatz der

Dateioptionen Obs= und Firstobs=Anweisung Where!

Page 34: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 34

Firstobs=, Obs=

Die Dateioptionen folgen in Klammern dem Tabellennamen:Proc Print

Data=sasuser.adressen(Firstobs=11 Obs=15);Run;

Firstobs= Nummer der ersten Beobachtung, die verarbeitet wirdObs= Nummer der letzten Beobachtung, die verarbeitet wirdFirstobs <= Obs

Where-Anweisung

Beschränkung auf Untergruppen durch Formulierung einer logischen Bedingung, die von den Beobachtungen erfüllt werden muss.

Proc Print Data=sasuser.adressen;Where alter>15;

Run;

Where ist eine lokale Anweisung, die für fast jede Prozedur verwendet werden kann.

Page 35: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 35

Logische Bedingungen

Numerische VariablenWhere wert=1; Where wert>1;

TextvariablenWhere id=‘DORLE‘;Where ort in('HD','MA','KA');

Vergleichsoperatoren= eq gleich ^= ne ungleich> gt größer < lt kleiner>=ge größer oder gleich <= le kleiner

in in der Liste enthalten oder gleich

Kombinierte Bedingungen

KombinationWhere sex=1 and alter>20;Where alter<20 or wohnort="Heidelberg";

Logische Operatoren& and sowohl als auch | or mindestens eins von beiden^ not nicht (oder auch ~)

Klammern können die Lesbarkeit erhöhenWhere (sport>2 or sport=.) and alter>20;

Page 36: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 36

Weitere Operatoren

Between-And Where x between 1 and 5;Contains Where a contains 'Dr.';Is null|Is missingLike

Genaue Hinweise und Beispiele im

SAS-Anwenderhandbuch im Netzunter dem Stichwort Selektion

Andere Reihenfolge der Fälle

Um die Beobachtungen (=Zeilen) der SAS-Tabelle in einer anderen Reihenfolge darzustellen, muß die Tabelle zunächst mit der Prozedur Sort sortiert werden. Anschließend kann die sortierte Tabelle mit der Prozedur Print im Ausgabefenster angezeigt werden.

1. Proc Sort ... ; Run;2. Proc Print ...; Run;

Page 37: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 37

Prozedur Sort

Sortieren erfolgt nach bestimmten Kriterien, die mit der BY-Anweisung formuliert werden.

Proc Sort Data=sasuser.adressen;By alter;

Run;sortiert die Beobachtungen nach Alter (in aufsteigender Reihenfolge)

Prozedur erzeugt keine Ausgabe.

Mehrfache Sortierkriterien

Beispiel: TelefonbuchInnerhalb einer By-Gruppe wird weiter nach dem nächsten Kriterium sortiert:

Proc Sort Data=sasuser.adressen;By wohnort alter name;

Run;

Die Reihenfolge der Variablen entscheidet über die Anordnung der Beobachtungen.

Page 38: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 38

Sortierung in neuer TabelleSoll eine SAS-Tabelle zwar sortiert, das Resultat aber in einer neuen Tabelle gespeichert werden, um die Ausgangstabelle nicht zu verändern, setzt man die Option Out= ein.

Proc Sort Data=sasuser.adressenOut=kurs.sp;

By alter;Run;

Getrennte Liste – Anweisung By

Mit einem Prozeduraufruf erhält man getrennte Listen für Untergruppen.Die Anweisung By benennt die Variable(n), die die Untergruppen definiert.Voraussetzung: SAS-Tabelle ist nach der oder den BY-Variablen sortiert.

Proc Print Data=sasuser.adressen;Var name alter;By sport;

Run;

Page 39: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 39

Häufiger Fehler mit ByERROR: Data Set ...... is not sorted in ascending sequence. The current by-group has Min. = ... and the next by-group has Min. = ...

Abhilfe: Einen Prozedur SORT-Schritt vorneweg ausführen.

Proc Sort Data=sasuser.adressen;By sport;

Proc Print Data=sasuser.adressen; ...

Beschriftungen

Jede Seite im Ausgabefenster kann Titel- und Fußzeilen enthalten. Standardtitel: The SAS SystemEigene Titel- und Fußzeilen machen die Ergebnisdarstellungen für Außenstehende verständlicher.TITLE und FOOTNOTE sind globale Anweisungen, d.h. sie werden außerhalb von Daten- und Prozedurschritten definiert.

Page 40: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 40

Beispiele

Title1 ’Experiment von Fisher’;Title2 ’Vergleich von 3 Irisarten';Footnote ’Umfang: je 50 Blüten’;

Proc Print Data=kurs.iris;Run;

Hinweise

Es können bis zu 10 Titel- und Fußzeilen definiert werden.

Als globale Anweisungen gelten sie so lange, bis sie geändert oder zurückgesetzt werden.

Zurücksetzung:

Title ; Footnote ;

Page 41: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 41

Globale Einstellungen - Optionen

Beim Start der SAS-Sitzung belegt das SAS-System viele Schalter vor durch

Konfigurationsfile Sasv9.cfgAnweisungen, die zu Beginn der SAS-Sitzung ausgeführt werden (Datei Autoexec.sas)

Nachträgliche Änderung von Einstellungen durch den Benutzer ist möglich durch

Titel- und FußzeilenOptionen (z.B. Seitennumerierung)

Einige globale EinstellungenAusgabe des Datums Date

Nodate

Anzeige der Seitennummern Number / Nonumber

Verändern der Seitennummer Pageno=n

Page 42: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 42

Änderung der Einstellungen

auf zwei Arten

Options-Fenster: Tools > Options > System ..Anweisung Options

Options Nodate Nonumber;Options Nodate Pageno=5;

Options ist eine globale Anweisung.

SAS System Options

Kommando Option Menü Tools > Options > System …

Page 43: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 43

SpezialitätenZum Schluß noch zwei Spezialitäten der Prozedur Print:

Darstellung der LabelsBerechnung von Spaltensummen

Die Prozedur Print und Labels

Die Prozedur Print zeigt standardmäßig keine Labels an.Zur Erinnerung: Labels sieht/definiert man mit der Anweisung Label oder im Variablenfenster.Erst durch Hinzunahme der Option Labelwerden sie angezeigt:Proc Print Data=sasuser.adressen

Label;Run;

Page 44: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 44

Spaltensummen mit SumWerte von numerischen Variablen können mit der Anweisung Sum spaltenweisesummiert werden.

Proc Print Data=sasuser.adressen;Sum alter;

Run;

Zusammenfassung der SyntaxProc Sort Data=SAS-Tabelle

<out=SAS-Tabelle>;By Variable|Variablenliste;

Proc Print Data=SAS-Tabelle <label>;<Var Variable|Variablenliste;><sum Variable|Variablenliste;><Where Logische Bedingung;>

title ...;footnote ...; (Drop=...) options ...;

Page 45: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 45

Literatur

Prozeduren Print und Sort sind Bestandteil von SAS Base:

SAS Procedures Guide

Globale Anweisungen und Dateioptionen

SAS Language Guide

Zeit für die

Übungen zu Kapitel 3

Page 46: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 46

Themen

1. Die Oberfläche von SAS Version 9.1 (8.2)2. SAS-Tabellen: Datenschritt I3. SAS-Basisprozeduren Print, Sort4. Statistik am Beispiel von Means und Ttest5. Tabellen verknüpfen: Datenschritt II6. Schleifenprogrammierung: Datenschritt III7. Weitere SAS/Base Prozeduren: Transpose, Tabulate …8. Output Delivery System (Ods)9. SAS-Makroprogrammierung10. Weitere SAS Prozeduren: Fsedit, Insight …

Prozedur Means

Means (neben Freq und Univariate) ist eine grundlegende Prozedur für die deskriptive Statistik. Sie berechnet wichtige Kennwerte (=statistische Maßzahlen), die in direktem Zusammenhang mit dem Mittelwert stehen, für quantitative Merkmale.Z.B. Mittelwert, Median, Maximum, Minimum, Standardabweichung, Konfidenzintervalle ...

Page 47: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 47

Einfachster Aufruf

Proc Means Data=urz.iris;Run;berechnet für alle numerischen Variablen (auch für blume !) die Kennwerte N Anzahl der nichtfehlenden WerteMean MittelwertStd Dev StandardabweichungMin/Max kleinster/größter Wertund stellt diese im Ausgabefenster in Form einer Tabelle dar.

Anweisung Var

beschränkt die Liste der Variablen, für die Kennwerte berechnet werden.

Proc Means Data=urz.iris;Var sl pl sw pw;

Run;

Alternative Lösung:Proc Means Data=kurs.iris(Drop=blume);Run;

Page 48: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 48

Anweisung Class

Berechnung der Kennwerte getrennt für die durch die Class-Variablen definierten Gruppen

Proc Means Data=urz.iris;Var sl;Class blume;

Run;

Tabelle braucht nicht sortiert (nach blume) vorliegen.

Anweisung Output

Übertragung der Kennwerte in eine neue SAS-Tabelle

Proc Means Data=urz.iris;Var sl;Output out=iris_sl;

Run;

Die Kennwerte werden im Ausgabefenster angezeigt, gleichzeitig wird die SAS-Tabelle iris_sl angelegt.

Page 49: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 49

Mit Output erzeugte Tabelle

iris_sl hat

- 5 Beobachtungen für die fünf Kennwerte (N, Mean, Std, Min, Max) und

- 4 Variablen _Type_, _Freq_, _Stat_ und die eigentliche Variable sl, die die Kennwerte enthält.

Option Noprint

Die Option Noprint unterdrückt die Dar-stellung der Kennwerte im Ausgabefenster.

Proc Means Data=urz.iris Noprint;Var sl;Output out=iris_sl;

Run;

Das Ergebnis ist die neue SAS-Tabelle iris_sl.

Page 50: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 50

Prozedur Ttest

Vergleich von zwei Gruppen hinsichtlich derenErwartungswertet-Test

für gleiche und ungleiche Varianzenfür unabhängige u. abhängige Gruppen

VarianzenF-Test

Zur Statistik

Wie lautet die Null- und wie die Alternativhypothese für den t-Test?Wie wird der Test durchgeführt?Und lautet die Testentscheidung?

Und jetzt das ganze für den F-Test!

Page 51: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 51

Beispiel: Unabhängiger t-TestTeststatistik T

wo

xi Mittelwerte, si Standardabweichungen, ni Fälle

Testentscheidung: Wenn |T|>tn1+n2-2,1-α/2 ist, wird H0 verworfen.

2

21

2121

~11||

−++

−= nn

p

tnns

xxT

s n s n sn np

2 1 12

2 22

1 2

1 12

=− + −

+ −( ) ( )

Einfachster Aufruf

Proc Ttest Data=urz.blutbild;Class pille;Var calcium;

Run;

Page 52: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 52

The TTEST Procedure

Statistics

Lower CL Upper CL Lower CL Upper CLVariable PILLE N Mean Mean Mean Std Dev Std Dev Std Dev Std Err

CALCIUM 1 90 98.818 99.878 100.94 4.4124 5.0588 5.929 0.5332CALCIUM 2 92 98.077 99.098 100.12 4.3045 4.9282 5.7649 0.5138CALCIUM Diff (1-2) -0.681 0.78 2.2407 4.5264 4.9932 5.5683 0.7403

T-Tests

Variable Method Variances DF t Value Pr > |t|

CALCIUM Pooled Equal 180 1.05 0.2935CALCIUM Satterthwaite Unequal 180 1.05 0.2936

Equality of Variances

Variable Method Num DF Den DF F Value Pr > F

CALCIUM Folded F 89 91 1.05 0.8039

Kennwerte

t-Test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit

(=Ws. unter Nullhypothese)

F-Test

Interpretation t-Test

Was sagt Pr > |t| 0.2935 aus?

Wenn Pr>|t| kleiner gleich dem vorgegebenen Signifikanzniveau α ist, kann die Nullhypothese H0 abgelehnt werden.

Wenn Pr>|t| ≤ α, dann H0 ablehnen.

Page 53: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 53

Abhängiger t-Test

Proc TtestData=us_sozialerhebung_91;

Paired mausbild*vausbild;Run;

The TTEST Procedure

Statistics

Lower CL Upper CL Lower CL Upper CL StdDifference N Mean Mean Mean Std Dev Std Dev Std Dev Err

mausbild - vausbild 974 -0.189 0.0072 0.2031 2.9825 3.115 3.2598 0.0998

T-Tests

Difference DF t Value Pr > |t|

mausbild - vausbild 973 0.07 0.9426

Kennwerte

t-Test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit

(=Ws. unter Nullhypothese)

Page 54: Das Datenanalysesystem SAS - Universitaetsrechenzentrum · URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung C. Ortseifen 2 Literatur Kursunterlagen (über URZ-Homepage

URZ-Blockkurs SS 2005 SAS - Einführung in die Programmierung

C. Ortseifen 54

Zusammenfassung der SyntaxProc Means Data=SAS-Tabelle <Noprint>;

<Var Variable|Variablenliste;><Output out=SAS-Tabelle;><Class Variable|Variablenliste;>

Proc Ttest Data=SAS-Tabelle;Class Variable|Variablenliste;<Var Variable|Variablenliste;><Paired Variable1*Variable2;>

<Where Logische Bedingung;><By Variable|Variablenliste;>