Das Datenanalysesystem SAS

Ähnliche Dokumente
Programmierung. C. Ortseifen 1. Literatur. Das Datenanalysesystem SAS. Kursaufbau. Weitere Literatur

C. Ortseifen 1. Kursaufbau. Das Datenanalysesystem SAS. Literatur. Weitere Literatur

Das Datenanalysesystem SAS

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

7. Globale Einstellungen

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

SAS-Online Dokumentation: zu finden über Internetsuche nach sas online documentation

Dateneingabe und Transformation Übersicht

Unterlagen zu: Das Datenanalysesystem SAS SS 2000

Von SAS nach SPSS und umgekehrt

Einführung in SPSS Wintersemester 2000/2001

Probleme beim Projekt-Speichern

3. Bestehende Dateien

1 Univariate Statistiken

PROC NPAR1WAY. zum Durchführen des U-Tests für zwei unverbundene Stichproben (für quantitative nicht-normalverteilte Merkmale)

Häufigkeiten, Mittelwerte Korrelationen u.a.m.

Einführung in SPSS Wintersemester 2000/2001

PROC MEANS. zum Berechnen statistischer Maßzahlen (für quantitative Merkmale)

SAS Format: Fallen und Tricks

KSFE 4. Konferenz der SAS -Anwender

4. Datumsvariablen u.a.m

THEMA: SAS CERTIFIED BASE PROGRAMMER FOR SAS 9 DIE VORBEREITUNG BRINGT S! KARIN GROSS

Einführung in SPSS Wintersemester 2000/2001

SAS-Umgebung. Dr. Carina Ortseifen Universitätsrechenzentrum. 17. KSFE 2013 Ulm. 17. KSFE 2013 Ulm: Carina Ortseifen Der Datenschritt 1

Abfragen (Queries, Subqueries)

6.4 Der Kruskal-Wallis Test

Übersicht der wichtigsten MySQL-Befehle

Mehrere Datensätze zu einem Datensatz zusammenführen

Algorithmen und ihre Programmierung

SAS-Kurs: SS 09. Helmut Küchenhoff, Cornelia Oberhauser, Monia Mahling, Vroni Fensterer, Sara Wadle. 8. Juni 2009

SAS-Kurs: Sommer 2010

SAS-Benutzertreff am URZ

Effektives Arbeiten mit SAS

Übereinstimmungsmaße in der PROC FREQ Option AGREE bei nichtsymmetrischen Tabellen eine Macro-Lösung

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

SAS-Tipp #6: Schneller als Proc Summary

Makrofunktion zur Übernahme von Abfragekriterien aus externen Quellen, z.b. einer Excel Datei, in SAS Code (PROC SQL)

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

7 Vergleich mehrerer verbundener Stichproben 7.1 Friedman Rang-Varianzanalyse

Deskriptive Statistiken

Übersicht Shell-Scripten

Wie kann ich die Ausgabe als Excel speichern?

Statistik IV Übung mit Stata 10. Statistik IV. 3. Datenaufbereitung II und erste Auswertungen. Göttingen 27. Mai Dozent: Jürgen Leibold

Einfaktorielle Varianzanalysen

Übung zur Vorlesung: Mikroökonometrie. Mi. 9:45-11:15 Uhr PC-Pool und Barbara Hanel

Import von Text-Dateien. Einzelne Wörter einlesen.

Statistik mit MAXQDA Stats

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 4. Dezember 2006

Basis-Kurs Statistik und SPSS für Mediziner Lösungen. SPSS-Übung Dateneingabe und -aufbereitung

Jede Kombination von 7 Spalten erzeugen

Einführung LänderInformationsSystem für Anlagen LIS-A Version Auswertungen

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester 2009, Statistik mit SPSS

Spalten aufsummieren?!

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

32 Verschiedenes Datendatei-Informationen, Codebuch. Fortsetzung der Seiten in der 8. Auflage

Möglichkeiten der SAS Software für die Analyse großer Datentabellen

Wie erreiche ich was?

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 9. Dezember 2004

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

SQL Data Manipulation Language (DML) und Query Language (QL)

Einführung in SPSS für Windows

Umbenennung von Spaltennamen über Schleife(n)

Daten aus SPSS-18 Proc Format...

Copyr i g ht 2014, SAS Ins titut e Inc. All rights res er ve d. What s New im SAS Enterprise Guide 7.

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester 2009, Statistik mit SPSS

Kurzanleitung für SPSS Statistics 22

SAS-Treff am URZ 14. März 2003

SURFJGGDWD IODHFKH SORW\[ ]FWRS \HOORZFWH[W EODFN

Schritt für Schritt-Einführung in die Prozedur Tabulate

Oracle 10g Einführung

Inhaltsverzeichnis HÄUFIGKEITSTABELLEN... 1

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Xpert - Europäischer ComputerPass. Peter Wies. Tabellenkalkulation (mit Excel 2010) 1. Ausgabe, 5. Aktualisierung, Juli 2013

Hallo Jessi, wenn ich das. DATA aufg3_b; vari='<.0001'; IF &wil_two_test. le vari THEN pwert=0.0001;

Einführung in MATLAB

NICHT TRIVIAL: MAKROVARIABLEN - GLOBAL ODER LOKAL

Erzeugung und Veränderung von Tabellen

Kurzanleitung zur Erstellung eines Reports von ClassiX aus

Einführung in SPSS. Sitzung 2: Datenbereinigung und Datenmanagement. Knut Wenzig. 15. Dezember 2005

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

4.1 Aufbau und Eingabe von Formeln

Datenbank und Tabelle mit SQL erstellen

Stopp-Listen. Die Funktion von Stopp-Listen. Das Fenster zur Verwaltung der Stopp-Listen

Handbuch ky2help Version 4. Grundlagen und Administration. Version 1.7 KYBERNA AG T F

Tabellenkalkulation. Tabellenkalkulation

1.5 Berechnung von Rangzahlen

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Erste Schritte in etab

Transkript:

Das Datenanalysesystem SAS Einführung in die 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 C. Ortseifen 1

Literatur Kursunterlagen (über URZ-Homepage Software > Statistik > Kurse > SAS anklicken) SAS Online-Hilfe (Hilfe-Menü) SAS Online-Doku im WWW http://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 Netz www.urz.uni-heidelberg.de/statistik/sas-ah Dort im Kapitel 5: Carina Ortseifen: Der SAS-Kurs Weitere Lehrbücher über die URZ-Homepage www.urz.uni-heidelberg.de: Software > Statistik > SAS > Weitere Hinweise/Literatur > Lehrbücher zu SAS C. Ortseifen 2

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 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight C. Ortseifen 3

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-Tabelle Variable, Beobachtung, Wert Format, Informat, Label (Etikett) Bibliothek Datenschritt Prozedurschritt Anweisung, global, lokal C. Ortseifen 4

Themen 1. Die Oberfläche von SAS Version 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight SAS Version 9 Installiert ist: SAS 9.1.3 Englisch und Deutsch Programmierumgebung (Code-Fenster) mit Windows-Elementen: Menüleiste Icons Editor-, Log- und Outputfenster Explorer und Resultfenster C. Ortseifen 5

Menüleiste SAS- Explorer Kommando -zeile Editorfenster (Code) Symbolleiste (Tools) Protokollfenster (Log) Ausgabefenster (Output) Arbeitsweise SAS-Programme in den Editor laden (oder neu schreiben), ausführen und Ergebnisse betrachten Programm ausführen über Menü (Run > Submit), Icon, Funktionstaste F3, RM Submit All oder Kommando Submit Hilfe zu einzelnen Prozeduren Kommando help Prozedurname Beispiel: help Print C. Ortseifen 6

Bibliotheken verwalten (Libname) über den SAS Explorer Doppelklick 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 Libname Fenster: Neue Bibliothek im Explorer SAS/EG vergibt eigene Bibliotheksnamen. (Anzeige zur Ziehen der Tabelle ins Code-F.) C. Ortseifen 7

Neue SAS-Bibliothek anlegen Name der Bibliothek Schalter für permanente Bibliotheken Ordner- Angabe SAS Explorer Ähnlich wie Windows-Explorer viele Funktionalitäten auf rechter Maustaste (RM) Anzeige und Bearbeiten von Tabellen, Bibliotheken und Katalogen Erzeugen neuer Bibliotheken, Filerefs, Tabellen und Katalogen Kopieren und Export von Dateien C. Ortseifen 8

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 > Properties liefert: Allgemeine Optionen Details Indizes Spalten (= Variablenfenster) Eintragungen, die sich ändern lassen, haben Popup-Menü. C. Ortseifen 9

Variablenfenster (auch über RM > View columns) Anzeige der Variablen samt Eigenschaften Name, 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 Viewtable Tabelle umbenennen: Tabelle markieren, RM > Rename Mit View > Up one level kehrt man eine Ebene im Explorer zurück (oder dem Icon ). C. Ortseifen 10

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 C. Ortseifen 11

Themen 1. Die Oberfläche von SAS Version 9 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight Erzeugen von SAS-Tabellen: Wie und wo liegen die Daten vor? SAS Tabelle EG: Einfügen > Daten Datenschritt mit Set Prozedur SQL Fremdformat von anderer Anwendung (Excel) EG: Daten einfügen EG: Extras > Daten importieren ASCII-Datei (Rohwerte) EG: Extras > Daten importieren Datenschritt mit Infile Anmerkung: Auf dem Papier EG: Enterprise Guide Datenschritt mit Datalines (oder Nicht EG: nur mit normalem Cards) SAS ausführbar Nicht EG: Prozedur Fsedit mit ohne: im Code-Fenster vom Option New= EG C. Ortseifen 12

Aufbau von SAS-Programmen Globale Anweisungen Datenschritte Prozedurschritte LIBNAME lib 'C:\'; Data lib.abc; Set lib.abc; y=x+10; Proc Freq Data=lib.abc; TABLES a*b; SAS-Anweisungen Daten- und Prozedurschritte bestehen aus Anweisungen. Anweisungen werden durch ein Schlüsselwort 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; C. Ortseifen 13

Meldungen im Protokollfenster Note Hinweis zur Abfolge des Programms (Dauer, welche Datei(en) wurde(n) angelegt/gelöscht) Warning SAS ist auf einen behebbaren Fehler gestoßen. Der Daten- oder Prozedurschritt wurde vollständig ausgeführt. Error Der Fehler konnte nicht behoben werden. Der Programmschritt wurde abgebrochen. Programm1.sas Data sasuser.adressen; Input name $ vorname $ ort $ alter; Datalines; Meier Hans Walldorf 25 Schulze Karin Mannheim 27 Müller Horst Nußloch 31 Was macht dieses Programm, wenn man es ausführt? Was ist die Aufgabe des Datenschritts? Was tun die einzelnen Anweisungen? C. Ortseifen 14

Programm2.sas Data kurs.neu; Set sasuser.adressen; gruppe=1; land= D ; If alter<30 Then typ= junior ; Else typ= senior ; 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 + Datenwerte Input + Cards + Datenwerte Infile + Input (Datalines und Cards sind synonyme Anweisungen.) oder 2. aus vorhandenen SAS-Tabellen: Set C. Ortseifen 15

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 beginnt d.h. Data- oder Proc-Anweisung, eine Run-Anweisung auftritt oder nach den Datenzeilen nach einer Datalinesoder Cards-Anweisung C. Ortseifen 16

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; C. Ortseifen 17

Programm2 - Die Zuweisung Data kurs.neu; Set sasuser.adressen; gruppe=1; land= D ; If alter<30 Then typ= junior ; Else typ= senior ; 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 ; Der Wert der Variable typ wird in Abhängigkeit von einer Bedingung bestimmt (hier abhängig vom Alter). C. Ortseifen 18

Hinweis Die Anweisungen im Datenschritt werden von oben nach unten für jede einzelne Beobachtung 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; Programm3 Data kurs.neu; Set kurs.neu; If typ= senior Then Delete; Welche SAS-Tabelle wird erzeugt? Wird sie aus Rohwerten oder einer SAS-Tabelle erzeugt? Wie heißt diese? Was macht die Anweisung Delete? C. Ortseifen 19

Zuweisung von Konstanten Numerische Variablen Variable=Wert; x=3; y=0.2; z=.; Text- (Alphanumerische, Character-) Variablen Variable='Zeichenkette'; oder Variable="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. C. Ortseifen 20

SAS-Funktionen Funktionsname(Argument<,Argument2<,..>>) Arithmetische Funktionen Sqrt(x) Exp(x) y=sqrt(x); y=sqrt(2); 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) Std(x,y,z) y=mean(a,b,c); y=std(1,2,3); C. Ortseifen 21

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 ; 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 Language Dictionary > Dictionary of Language Elements > Functions and CALL Routines C. Ortseifen 22

Data eins; a=1; b=2; c=3; Eine Übung für alle Data zwei; Set eins; a=4; Data drei; a=1; a=2; a=3; Data vier; Fragen 1. Welche SAS-Tabellen werden erzeugt? 2. Wie viele Variablen haben diese? 3. Wieviele Beobachtungen? 4. Welche Werte? Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger St. Ilgen 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD C. Ortseifen 23

Programm1.sas Data sasuser.adressen; Input name $ vorname $ ort $ alter; Datalines; Meier Hans Walldorf 25 Schulze Karin Mannheim 27 Müller Horst Nußloch 31 Zum Programm1.sas Datenwerte stehen in einer Liste durch Leerzeichen getrennt. => Listengesteuert Die 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. beendet den Datenschritt. C. Ortseifen 24

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 Datenschritts teilt dem SAS-System mit, dass im Anschluss die Datenwerte folgen ist die letzte Anweisung des Datenschritts Die Datenwerte werden durch ein Semikolon beendet, das in einer neuen Zeile stehen muss. C. Ortseifen 25

Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger St. Ilgen 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD 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 25 van SchulzKarin Heidelberg 27 Karl Helmut 51 C. Ortseifen 26

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. Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger St. Ilgen 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD C. Ortseifen 27

Formatgesteuertes Einlesen ist angezeigt bei Textwerten länger als 8 Zeichen oder anderen Nicht-Standardwerten, wie Datumsangaben und Zahlen mit Kommas: Format Data kurs.firma; Input name :$50. gebdatum :Ddmmyy10. zahl1 :Comma10.2 zahl2 :Commax10.2; Datalines; Meier 01.01.1960 10,000.00 12,45 Leuthäuser-Schnarrenberger. 1.00 13,50 Karl 29.02.2000 1,000,000 100,50 Zahl, Text bis zu... Zeichen Rohwert-Typen Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger. 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz 19 Jens Pfluger St. Ilgen 24 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Liste/frei Spalten (1-5) Format (:$10.) Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Nussloch 19 Jens Pfluger Heidelberg 24 Mehrere Zeilen pro Beobachtung (#1, /) Mehrere Beobachtungen pro Zeile (@@) INFILE + Hans Müller Walldorf 25 Jutta Schreiner Mannheim 31 Uwe Schulz Jens Pfluger Heidelberg 24 Liste/Format + MISSOVER Hans Müller Walldorf Jutta Schreiner Mannheim Uwe Schulz Nussloch Jens Pfluger Heidelberg Spalten + PAD C. Ortseifen 28

Werte in externen Dateien Anstelle der Anweisung Datalines verwendet man dann INFILE vor Input Data kurs.klasse; Infile 'd:\klasse.dat'; Input name $ alter; 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>; C. Ortseifen 29

Zeit für die Übungen zu Kapitel 2 Themen 1. Die Oberfläche von SAS Version 9.1 (8.2) 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. Weitere SAS Prozeduren: Fsedit, Insight C. Ortseifen 30

Prozedur Print Darstellen der Datenwerte einer SAS-Tabelle im Ausgabefenster Der einfachste Aufruf Proc Print Data=sasuser.adressen; gibt die SAS-Tabelle sasuser.adressen vollständig mit allen Variablen und Beobachtungen aus. Einschränkungen / Änderungen Nur bestimmte Variablen Anweisung Var Nur bestimmte Beobachtungen / Teilmenge Dateioptionen Obs= und Firstobs= Anweisung Where Beobachtungen in einer anderen Reihenfolge Prozedur Sort Listen getrennt nach bestimmten Gruppen Anweisung By C. Ortseifen 31

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; 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; C. Ortseifen 32

Variablen ausschließen - Drop= Sollen alle Variablen bis auf wenige dargestellt werden, verwendet man die Dateioption Drop=: Proc Print Data=sasuser.adressen(Drop=sex); 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! C. Ortseifen 33

Firstobs=, Obs= Die Dateioptionen folgen in Klammern dem Tabellennamen: Proc Print Data=sasuser.adressen(Firstobs=11 Obs=15); Firstobs= Nummer der ersten Beobachtung, die verarbeitet wird Obs= Nummer der letzten Beobachtung, die verarbeitet wird Firstobs <= 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; Where ist eine lokale Anweisung, die für fast jede Prozedur verwendet werden kann. C. Ortseifen 34

Logische Bedingungen Numerische Variablen Where wert=1; Where wert>1; Textvariablen Where 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 Kombination Where 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öhen Where (sport>2 or sport=.) and alter>20; C. Ortseifen 35

Weitere Operatoren Between-And Where x between 1 and 5; Contains Where a contains 'Dr.'; Is null Is missing Like Genaue Hinweise und Beispiele im SAS-Anwenderhandbuch im Netz unter 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... ; 2. Proc Print...; C. Ortseifen 36

Prozedur Sort Sortieren erfolgt nach bestimmten Kriterien, die mit der BY-Anweisung formuliert werden. Proc Sort Data=sasuser.adressen; By alter; sortiert die Beobachtungen nach Alter (in aufsteigender Reihenfolge) Prozedur erzeugt keine Ausgabe. Mehrfache Sortierkriterien Beispiel: Telefonbuch Innerhalb einer By-Gruppe wird weiter nach dem nächsten Kriterium sortiert: Proc Sort Data=sasuser.adressen; By wohnort alter name; Die Reihenfolge der Variablen entscheidet über die Anordnung der Beobachtungen. C. Ortseifen 37

Sortierung in neuer Tabelle Soll 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.adressen Out=kurs.sp; By alter; 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; C. Ortseifen 38

Häufiger Fehler mit By ERROR: 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 System Eigene 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. C. Ortseifen 39

Beispiele Title1 Experiment von Fisher ; Title2 Vergleich von 3 Irisarten'; Footnote Umfang: je 50 Blüten ; Proc Print Data=kurs.iris; 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 ; C. Ortseifen 40

Globale Einstellungen - Optionen Beim Start der SAS-Sitzung belegt das SAS- System viele Schalter vor durch Konfigurationsfile Sasv9.cfg Anweisungen, 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ßzeilen Optionen (z.b. Seitennumerierung) Einige globale Einstellungen Ausgabe des Datums Date Nodate Anzeige der Seitennummern Number / Nonumber Verändern der Seitennummer Pageno=n C. Ortseifen 41

Ä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 C. Ortseifen 42

Spezialitäten Zum Schluß noch zwei Spezialitäten der Prozedur Print: Darstellung der Labels Berechnung 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 Label werden sie angezeigt: Proc Print Data=sasuser.adressen Label; C. Ortseifen 43

Spaltensummen mit Sum Werte von numerischen Variablen können mit der Anweisung Sum spaltenweise summiert werden. Proc Print Data=sasuser.adressen; Sum alter; Zusammenfassung der Syntax Proc 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...; C. Ortseifen 44

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 C. Ortseifen 45

Themen 1. Die Oberfläche von SAS Version 9.1 (8.2) 2. SAS-Tabellen: Datenschritt I 3. SAS-Basisprozeduren Print, Sort 4. Statistik am Beispiel von Means und Ttest 5. Tabellen verknüpfen: Datenschritt II 6. Schleifenprogrammierung: Datenschritt III 7. Weitere SAS/Base Prozeduren: Transpose, Tabulate 8. Output Delivery System (Ods) 9. SAS-Makroprogrammierung 10. 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... C. Ortseifen 46

Einfachster Aufruf Proc Means Data=urz.iris; berechnet für alle numerischen Variablen (auch für blume!) die Kennwerte N Anzahl der nichtfehlenden Werte Mean Mittelwert Std Dev Standardabweichung Min/Max kleinster/größter Wert und 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; Alternative Lösung: Proc Means Data=kurs.iris(Drop=blume); C. Ortseifen 47

Anweisung Class Berechnung der Kennwerte getrennt für die durch die Class-Variablen definierten Gruppen Proc Means Data=urz.iris; Var sl; Class blume; 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; Die Kennwerte werden im Ausgabefenster angezeigt, gleichzeitig wird die SAS-Tabelle iris_sl angelegt. C. Ortseifen 48

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 Darstellung der Kennwerte im Ausgabefenster. Proc Means Data=urz.iris Noprint; Var sl; Output out=iris_sl; Das Ergebnis ist die neue SAS-Tabelle iris_sl. C. Ortseifen 49

Prozedur Ttest Vergleich von zwei Gruppen hinsichtlich deren Erwartungswerte t-test für gleiche und ungleiche Varianzen für unabhängige u. abhängige Gruppen Varianzen F-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! C. Ortseifen 50

Beispiel: Unabhängiger t-test Teststatistik T wo s T x 1 2 = ~ tn + n 1 n x i Mittelwerte, s i Standardabweichungen, n i Fälle Testentscheidung: Wenn T >t n 1+n2-2,1-α/2 ist, wird H 0 verworfen. s p 1 x + 1 n ( n 1) s + ( n 1) s n + n 2 2 1 1 2 2 2 2 p = 1 2 2 1 2 2 Einfachster Aufruf Proc Ttest Data=urz.blutbild; Class pille; Var calcium; C. Ortseifen 51

The TTEST Procedure Kennwerte Statistics Lower CL Upper CL Lower CL Upper CL Variable 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.5332 CALCIUM 2 92 98.077 99.098 100.12 4.3045 4.9282 5.7649 0.5138 CALCIUM Diff (1-2) -0.681 0.78 2.2407 4.5264 4.9932 5.5683 0.7403 t-test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit (=Ws. unter Nullhypothese) T-Tests Variable Method Variances DF t Value Pr > t CALCIUM Pooled Equal 180 1.05 0.2935 CALCIUM Satterthwaite Unequal 180 1.05 0.2936 F-Test Equality of Variances Variable Method Num DF Den DF F Value Pr > F CALCIUM Folded F 89 91 1.05 0.8039 Interpretation t-test Was sagt Pr > t 0.2935 aus? Wenn Pr> t kleiner gleich dem vorgegebenen Signifikanzniveau α ist, kann die Nullhypothese H 0 abgelehnt werden. Wenn Pr> t α, dann H 0 ablehnen. C. Ortseifen 52

Abhängiger t-test Proc Ttest Data=us_sozialerhebung_91; Paired mausbild*vausbild; The TTEST Procedure Statistics Kennwerte Lower CL Upper CL Lower CL Upper CL Std Difference 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-test mit Freiheitsgrad, Teststatistik, Irrtumswahrscheinlichkeit (=Ws. unter Nullhypothese) T-Tests Difference DF t Value Pr > t mausbild - vausbild 973 0.07 0.9426 C. Ortseifen 53

Zusammenfassung der Syntax Proc 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;> C. Ortseifen 54