23
Dr. Peter Bewerunge © 2011 HMS Analytical Software GmbH SAS und R -Ein ungleiches Paar- 15. KSFE in Heidelberg 25. Februar 2011

SAS und R - · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

  • Upload
    ngoliem

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

SAS und R

-Ein ungleiches Paar-

15. KSFE in Heidelberg – 25. Februar 2011

Page 2: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH 2

Über uns

• HMS Analytical Software ist seit 21 Jahren IT-Spezialist für Datenanalysesysteme und Business Intelligence

• Leistungen– Beratung, Konzeption und Validierung– Kundenspezifische Entwicklung– Projektmanagement und -unterstützung– Schulung und Support

• Branchen– Life Science (Pharma, Medizingeräte)– Banken und Versicherungen– und andere

• Technologien– Analytics: SAS, Microsoft Business Intelligence, R– Anwendungsentwicklung: Java und Microsoft .NET

Page 3: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Agenda

• Konzept hinter SAS und R

• Installation und Support

• Wie werden Programme erstellt?

• SAS-Makros vs. R Funktionen

• Performancevergleich bei großen Datenmengen

• Schnittstellen von SAS zu R und umgekehrt

• Fazit

3

Page 4: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Konzept hinter SAS

• 1970 Entstehung des Auswerteprogramms Statistical Analysis Software an der NC State University

• 1976 Gründung des SAS Institute, Sitz in Cary, North Carolina. Kommerzielles Software-Produkt.

• weltweit größte Software-Firma in Privatbesitz[1]– ca. 11.500 Angestellten– ca. 2.43 Milliarden Jahresertrag in 2010

• Kunden in ca. 50.000 Unternehmen in 100 Ländern• Fokus auf:

– Datenintegration / Data Warehousing– Business Intelligence / Data Mining– Forschung und Entwicklung– vielfältige in sich kompatible Produktlandschaft– Lizenzmodell –> SAS kann man nicht kaufen

4

Page 5: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Konzept hinter R

• 1993 erstmals in einer Mailing-Liste verteilt[1]

• Open Source Software unter der General Public Licence (GNU)– kostenlose Nutzung– geschätzte 2 Millionen Nutzer[2]

• Focus auf:– statistische Berechnungen – Graphiken

• R Foundation– gemeinnütziger Verein mit Sitz in Wien– Mitglieder bestehen aus dem R Development Core-Team, 19 Personen– offizielle Stimme des R Projekts– Besitz und Verwaltung des Copyrights der Software und Dokumentation

• Vielzahl an frei verfügbaren Zusatzpaketen– werden von weltweit verteilten R-Programmieren nach Bedarf

entwickelt und nicht vom R Development Core-Team

5

Page 6: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Fokus des Vergleichs von SAS und R

• Gegenstand des Vergleichs

– SAS Language mit der SAS-Fensterumgebung (Display Manager)

– R Environment

• Nicht Gegenstand des Vergleichs

– SAS Enterprise Guide

– Weitere Frontends der SAS-Plattform

6

Page 7: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Installation und Support

SAS– Download-Center / DVD

– Langer Installationsprozess

– SAS Foundation• PROC CORR, PLOT, …

• MACRO

– Weitere Module• SAS STAT, GRAPH, …

– Support:• Online

• Hotline (06221 415 - 200)

• Training

• Newsletter

7

R– Download von CRAN

– Kurzer Installationsprozess

– R „Base“• Recommended / Base

Packages

– „Support“ / Hilfe:• Mailing-Listen

• R-Journal

• Bug-Tracking

• R-Search

Page 8: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Wie werden Programme erstellt?

8

SAS Fensterumgebung R Environment

Page 9: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Wie werden Programme erstellt?

10

SAS Code • Aufbau in Blöcken

• DATA STEP

zentraler Baustein

z.B. erzeugen von Daten

Zusammenführen von Daten

• PROZEDUR

zentraler Baustein

Spezielle Funktionalitäten

• Datenstrukturen

- numerische Werte

- alphanumerische Werte

- Tabellen

- Matrizen (nur bei IML)

- Makrovariablen

Page 10: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Wie werden Programme erstellt?

11

• Zeilenbasierte Programmierung

• Objektorientierte Datenstrukturen

Vektor

Matrix

Dataframe

....

• R-Funktionen

spezielle Funktionalitäten

R Code

• Optimiert auf Matrixmanipulationen

Page 11: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

SAS-Makros vs. R-Funktionen

SAS-Makrosprache

12

- Abspeichern von wiederkehrenden Programmsequenzen

- Makros werden vom Makro-Prozessor verarbeitet

- Makrovariablen speichern Text. Der Gültigkeitsbereich kann lokal oder global sein.

- Erstellung von Makro-Bibliotheken

- Makros arbeiten nach dem Textersetzungsprinzip

Page 12: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

SAS-Makros vs. R-Funktionen

R-Funktionen

13

- Abspeichern von wiederkehrenden Programmsequenzen

- mehrere Funktionenwerden in der Regel zu Paketen (eigene Hilfe, Manuals usw.) zusammengefasst

- Variablen innerhalb der Funktion haben lokalen Gültigkeitsbereich

Page 13: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Performancevergleich bei großen Datenmengen

Pseudocode:

14

start = Systemzeit;

Erzeuge Daten durch aneinanderhängen von

Daten1 und Daten2; /*512 Byte*/

Sortiere Daten nach Spalte1 & Spalte2;

Selektiere * wo SpalteXY = „ABCD“;

ende = Systemzeit;

dauer = ende – start;

Page 14: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Performancevergleich bei großen Datenmengen

15

0

5

10

15

20

25

30

35

40

45

504

0

54

0

10

40

15

40

20

40

25

40

30

40

Tausende

Bere

chnungsdauer

[sec]

Zeilen des Datensatz

Page 15: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Performancevergleich bei großen Datenmengen

16

0

100

200

300

400

500

600

700

8004

0

54

0

10

40

15

40

20

40

25

40

30

40

35

40

40

40

45

40

50

40

55

40

Tausende

Bere

chnungsdauer

[sec]

Zeilen des Datensatz

Mit R kam es zum Abbruch

Page 16: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Performancevergleich bei großen Datenmengen

17

1)

2)

3)

4)

R bei großen Datenmengen

Page 17: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Performancevergleich bei großen Datenmengen

• Intel Core Duo CPU, 2.53 GHz, 2GB RAM• SAS 9.2• R 2.11.1

18

R schneller bei durchgeführten Operationen - R lädt Daten in Arbeitsspeicher - Limitierung durch Größe des Arbeitsspeichers

SAS kann große Datenmengen verarbeiten- Daten werden pro Verarbeitungsschritt von der

Festplatte gelesen und wieder geschrieben- Berechnungsdauer entsprechend höher- Verwendung des Hauptspeichers ebenfalls möglich

(SASFILE-Anweisung)

Page 18: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Schnittstelle SAS IML 9.22 zu R

19

• IML muss lizensiert und installiert sein• SAS muss mit Option RLANG gestartet werden• Kompatibel mit R Version R-2.10.1

Start-Statement R-Code

End-Statement R-Code

Page 19: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Schnittstelle SAS IML 9.22 zu R

20

Subroutine SAS Quelle R Ziel-Objekt

ExportDataSetToR SAS data set R data frame

ExportMatrixToR SAS/IML matrix R matrix

Subroutine R Ziel-Objekt SAS Quelle

ImportDataSetFromR R expression SAS data set

ImportMatrixFromR R expression SAS/IML matrix

Datenimport von R zu SAS:

Datenexport von SAS zu R:

Page 20: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Schnittstelle R zu SAS

• Keine direkte Schnittstelle zu SAS implementiert

21

• Aufruf von SAS aus R mittels System-Befehl:

• Datenimport in R:

• Aufruf des SAS-Programms:

Page 21: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Qualität der Software

SAS

– kundenorientiert

– Installation / Operational –Qualification Tool

– Entwickler arbeiten lokal im Team

– definierte Testabläufe

22

R

– entwicklerorientiert

– Installation Qualification-Tool (vorhanden aber fehlerhaft)

– Entwickler weltweit verteilt

– Zusatzpakete sind meist nur unzulänglich geprüft

Page 22: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH

Fazit

• Es wurde SAS Language und R dargestellt– SAS Plattform besitzt eine Fülle an Frontends, Server,

Metadatenverwaltung, Middleware-Komponenten

• Unterschiedliche – Entstehungsgeschichten– Ansprüche an den Nutzer– Performance bei großen Datenmengen– Installation und Support

• Ähnliche– Entwicklungsumgebung– Aufbau von wiederverwendbarem Code

• Gemeinsame– Schnittstelle

• Persönlicher Eindruck– SAS mit besser geprüfter Qualität– R schneller bei neuen Entwicklungen– R sehr gut integrierbar in SAS mit SAS IML 9.22– Kein pauschales besser oder schlechter

23

Page 23: SAS und R -   · PDF fileSchnittstelle SAS IML 9.22 zu R 20 Subroutine SAS Quelle R Ziel-Objekt ExportDataSetToR SAS data set R data frame ExportMatrixToR SAS/IML matrix R matrix

Dr. Peter Bewerunge© 2011 HMS Analytical Software GmbH 24

Vielen Dank!

Dr. Peter BewerungeDipl. Ing. (FH) Biotechnologie

Softwareentwickler

HMS Analytical Software GmbHRohrbacher Str. 26 • 69115 HeidelbergTelefon +49 6221 6051-0

[email protected]

Besuchen Sie uns auf unserem Messestand im Hörsaalgebäude Chemie! Dort• können Sie im Anschluss mit dem Referenten diskutieren• finden Sie Demos zu diesem Vortrag • können Sie sich über das Angebot von HMS informieren• gibt es Jobangebote • gibt es Informationen für Studenten zu Praktika und

Abschlussarbeiten bei HMS