Seminar Stochastik im WS 02/03

Slides:



Advertisements
Ähnliche Präsentationen
Schnelle Matrizenoperationen von Christian Büttner
Advertisements

13. Transformationen mit Matrizen
Übung zur Numerische Geologie
Programmieren in Logik
Seminar „Extrapolationsmethoden für zufällige Felder“
der Universität Oldenburg
Lösung von linearen Gleichungssystemen - Grundlagen
Lösung von linearen Gleichungssystemen - Grundlagen
FH-Hof Einbindung von JavaScript Anweisungen
Java: Dynamische Datentypen
Logische Vektoren in R Jonathan Harrington.
Grundlagen der R Programmiersprache
Formant-Analysen von Vokalen (2) Jonathan Harrington 1, 2 Struktur und Abbildung einer Trackdatei 3, 4. Anwendung von vorhandenen und eigenen Funktionen.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Beispiele für Gleichungssysteme
Eigenwerttechniken Matrixalgebra 7.2 Hauptkomponentenanalyse
DVG Klassen und Objekte
Einführung in die Programmierung Anweisungen und Datentypen
Folie 1 § 30 Erste Anwendungen (30.2) Rangberechnung: Zur Rangberechnung wird man häufig die elementaren Umformungen verwenden. (30.1) Cramersche Regel:
Tutorium
Matrix-Algebra Grundlagen 1. Matrizen und Vektoren
Wirtschaftsinformatik
Titel des Vortrags Name des Vortragenden Seminar
Mathematik STATISTIK Viktoria Kozdron, 5AK VBS Augarten.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Lineare Algebra Komplizierte technologische Abläufe können übersichtlich mit Matrizen dargestellt werden. Prof. Dr. E. Larek
Wissenschaftliche Programmierung mit Python - für Meteorologie und Atmosphärenforschung Martin G. Schultz Teil 3: Numpy.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
§20 Der Rang einer Matrix Jede (m,n)-Matrix kann auch als ein n-Tupel von Spaltenvektoren geschrieben werden: wobei (20.1) Definition:
Folie 1 Kapitel IV. Matrizen Inhalt: Matrizen als eigenständige mathematische Objekte Zusammenhang zwischen Matrizen und linearen Abbildungen Produkt von.
§23 Basiswechsel und allgemeine lineare Gruppe
Einführung in die Matrizenrechnung
Einführung in die Programmierung
Einführung in die Programmiersprache C 4
Parallel Matrix Multiplication
Lineare Algebra, Teil 2 Abbildungen
Kapitel 10 Multikollinearität
MathML Seminar XML-Technologien Von Primo Cirrincione.
Kapitel 4 Annahmen des linearen Regressionsmodells
Befehle in SQL Erläuterungen.
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Einführung in Datenbankmodellierung und SQL
Programmierung 1. Einführung Seite 1
Variablenkonzept Klassisch, in Java Basistyp
REBOL. Was ist REBOL frei verfügbar plattformübergreifend highly reflective flexibel kompakt interpretiert.
Multivariate Statistische Verfahren
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Multivariate Statistische Verfahren
Multivariate Statistische Verfahren
Multivariate Statistische Verfahren
§22 Invertierbare Matrizen und Äquivalenz von Matrizen
Structured Query Language
Übersicht Nachtrag zu Ausdrücken
Folie 1 §21 Das Produkt von Matrizen (21.1) Definition: Für eine (m,n)-Matrix A und eine (n,s)-Matrix B ist das (Matrizen-) Produkt AB definiert als (21.2)
Wozu Maple? Symbolische Algebra Manche Sachen soll man besser nicht von Hand machen –kleine Rechnungs Fehler können mehrere Millionen werden – am besten.
6. Thema: Arbeiten mit Feldern
Graphische Datenverarbeitung
 Sortigkeit oder Arität
Version vom Max-Flow in Orientierten Matroiden Winfried Hochstättler & Robert Nickel Fernuniversität in Hagen Lehrstuhl für Diskrete Mathematik.
Grundlagen der R Programmiersprache Modul G WS 07/08.

PCA Principal Component Analysis. Gliederung PCA – Warum eigentlich? PCA – Was ist zu tun? Was passiert eigentlich? Anwendungen Zusammenfassung.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Umgang mit R unter Windows Stand: R: Software R für Windows (XP etc.) Version 3.0R Linksammlung zu R: R-Studio.
Independent Component Analysis: Analyse natürlicher Bilder Friedrich Rau.
 Präsentation transkript:

Seminar Stochastik im WS 02/03 Einführung in R Seminar Stochastik im WS 02/03 Ein Vortrag von Viktoria Idt Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften Abt. Stochastik, Abt. Zahlentheorie und Wahrscheinlichkeitstheorie

Was ist R? Past: S – entwickelt als kommerzielles interpretiertes Datenanalyse- und Grafik-System durch die Bell-Laboratories. Present: R – Open Source Version von S (www.r-project.org) Future: Omega Project – Statistisches Analyse-System mit Augenmerk auf Javaintegration und webbasierte Anwendung (experimentell).

R Anweisungen (Commands) Groß- und Kleinschreibung sind zu beachten (z.B. A und a sind unterschiedliche Variablen). Elementare Anweisungen bestehen entweder aus Ausdrücken oder Zuweisungen. Verschiedene Anweisungen werden durch ';' oder Enter getrennt und können mit geschweiften Klammern ('{' und '}') zu Blöcken zusammen gefasst werden. Kommentarzeilen beginnen mit der Raute ('#') > # hier kommt ein Beispiel > x<-1; A <- "Statistik"; compar <- TRUE; z <- 1i > "Seminar" -> B > assign("x",10)

Objekte Alle Variablen, Daten, Funktionen und Ergebnisse werden in Form von Objekten gespeichert und besitzen dann einen Namen. Der Name eines Objektes muss mit einem Buchstaben anfangen und kann Buchstaben, Zahlen (0-9) und Punkte ('.') enthalten. Namen dürfen nicht mit einer Zahl beginnen. > ls() listet die Objekte, die im Speicher vorhanden sind, auf. Dabei erscheinen nur die Objektnamen. > ls(pat = "m") listet die Objekte mit bestimmten Eigenschaften auf. > ls.str() lässt Details der Objekte erscheinen. > rm() löscht die Objekte.

Innere Attribute der Objekte Alle Objekte haben zwei innere Attribute: den Modus (numeric, character, complex, and logical) und die Anzahl der Komponenten. > x<- 1; A <- "Statistik"; compar <- TRUE; z<- 1i > mode(x); mode(A); mode(compar); mode(z) [1] "numeric" [1] "character" [1] "logical" [1] "complex" > length(x); length(A); [1] 1

Vektoren Die Möglichkeiten der Zuweisung eines Vektors: > x <- c(10.4, 5.6, 3.1, 6.4, 21.7) > y <- c(x, 0, x) > y [1] 10.4 5.6 3.1 6.4 21.7 0.0 10.4 [8] 5.6 3.1 6.4 21.7 1:30 entspricht dem Vektor c(1,2.....,29,30). Der Operator ':' hat die höchste Priorität. Zum Vergleich: 1:10-1 = 0:9 aber 1:(10-1) = 1:9 > 1/x [1] 0.09615385 0.17857143 0.32258065 0.15625000 [5] 0.04608295

Arithmetik mit Vektoren Die elementare arithmetische Funktionen sind die üblichen +,-,*,\ und ^ für die Potenz. Auch die log, exp, sin, cos, tan, sqrt haben ihre übliche Bedeutung. max() , min() geben das größte bzw.das kleinste Element des Vektors, range(x) entspricht dem Vektor c(min(x),max(x)), sum(x) der Summe der Elemente, prod(x) dem Produkt der Elemente. mean(x) ist analog zu sum(x)/length(x) (Mittelwert/Erwartungs- wert). var(x) ist analog zu sum((x-mean(x))^2)/(length(x)-1).

Matrizen Eine Matrix ist ein Vektor mit einem Attribut (dim), welches seinerseits ein Vektor mit 2 Komponenten ist und die Anzahl der Reihen und Spalten der Matrix definiert. Eine Matrix kann deshalb mit der Funktion 'matrix()' erzeugt werden: matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) Die Option byrow gibt an, ob die Werte, die durch „data“ gegeben sind, spaltenweise oder zeilenweise (wenn TRUE) gefüllt werden. Die Option dimnames ermöglicht die Benennung der Zeilen und Spalten.

Beispiele für Matrizen > matrix(data=5, nr=2, nc=2) [,1] [,2] [1,] 5 5 [2,] 5 5   > matrix(1:6, 2, 3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > matrix(1:6, 2, 3, byrow=TRUE) [1,] 1 2 3 [2,] 4 5 6

Arithmetik mit Matrizen > B <- t(A) Berechnet die Transponierte von A.   > A %*% B Matrix-Multiplikation > x %*% A %*% x Matrix-Vektor-Multiplikation Der Vektor x wird automatisch in einen Zeilen- oder Spaltenvektor umgewandelt, je nach dem was die Multiplikation verlangt. > solve(A,b) Löst das lineare Gleichungssystem A*x = b. > solve(A) liefert die Inverse von A.

Eigenwerte & Eigenvektoren Die Funktion eigen(Sm) berechnet die Eigenwerte und die Eigenvektoren einer symmetrischen Matrix. Das Ergebnis ist eine Liste von zwei Komponenten, genannt values und vectors. > evals <- eigen(Sm)$values liefert nur die Eigenwerte zurück. > evals <- eigen(Sm)$vec liefert die Matrix der korrespondierenden Eigenvektoren.

Weitere Objekte Arrays Die Listen Arrays können aus Vektoren durch die Funktion array() erzeugt werden: array(data_vector, dim_vector) > Z <- array(1:24, c(3,4,2)) Die Listen In R ist die Liste ein Objekt, welches eine Folge von Objekten, den Komponenten, beinhaltet. > Lst <- list(name=“Homer Simpson", wife="Marge", no.children=3, child.ages=c(1,8,10))

Data.Frame() Für die Erstellung von Tabellen, ist es möglich ein Data-Frame mit der Funktion data.frame() zu erzeugen. Die Vektoren müssen in dem Frame alle gleicher Länge sein. Falls einer kürzer ist, wird er mit seinen ersten Einträgen erweitert. Im Frame kann man die Bezeichnung der Spalten umbenennen: > x <- 1:4; M <- c(10, 35); > data.frame(A1=x,A2=M) A1 A2 1 1 10 2 2 35 3 3 10 4 4 35

NA und NaN NA hält den Platz eines Elementes oder Wertes in dem Vektor frei, wenn dieses nicht verfügbar „not available“ ist. is.na(x) gibt einen logischen Vektor der Länge x zurück, mit TRUE nur an der Stelle von NA > z <- c(1:3,NA); ind <- is.na(z) [1] 1 2 3 NA [1] FALSE FALSE FALSE TRUE NaN (Not a Number) ist eine andere Art von "unbekannten" Werten, die durch numerisches Rechnen verursacht werden: > 0/0; Inf-Inf [1] NaN

Rechnen mit komplexen Zahlen > sqrt(-17) gibt ein NaN und eine Warnung zurück: [1] NaN Warning message: NaNs produced in: sqrt(-17) > sqrt(-17+0i) wird als Quadratwurzel einer komplexen Zahl berechnet

Ausführung aus Dateien und Umleitung der Ausgaben in eine Datei > source("commands.R") wenn Befehle in einer Datei gespeichert sind (z.B. 'Commands.R'), so können sie jederzeit in R damit aufgerufen werden, (in Windows ist es auch im Datei-Menu) > sink("record.lis") Mit dieser Funktion werden alle nachfolgende Ausgaben (Outputs) von der Console in eine externe Datei 'Record.lis' übertragen und mit > sink() kann man wieder auf die Console zurückschalten.

Das Einlesen der Daten aus Dateien Wenn die erste Zeile der Datei einen Namen/Bezeichnung für jede Variable des „data-frames“ hat, und jede nachfolgende Zeile einen Zeilenzähler und die Werte zu jeder Variable besitzt, so kann man die Daten mit der Funktion read.table() einlesen. z.B.: Price Floor Area Rooms Age Cent.heat 01 52.00 111.0 830 5 6.2 no 02 54.75 128.0 710 5 7.5 no Auslesen der Daten mit: > HousePrice <- read.table("houses.data")  Beim Fehlen des Zeilenzählers: > HousePrice <- read.table("houses.data", header=TRUE)

Programmieren in R Schleifen und Anweisungen: > for(Bedingung){..} > while (Bedingung){..} > if (Bedingung){..} Funktionen: > MyFun <- function(Parameter){..} diese wird genau die gleichen Eigenschaften besitzen wie auch die anderen Funktionen in R. Programme: Ein R-Programm wird in einer Datei im ASCII Format gespeichert und mit '.R ' gekennzeichnet. Es kann mit source(“Programmname.R“) aufgerufen werden.

Hilfe in R > help(solve) liefert Informationen zu einem beliebigen Funktionsnamen z.B. solve. > ?solve ist eine alternative Abfrage. > help("[[") liefert Informationen über eine Eigenschaft. > help.start() ruft die Hilfe in html- Format auf. > ?help.search sucht nach Details und Beispielen. > example(topic) ruft Beispiele zu einem Hilfethema auf.

Verteilungen Folgende Funktionen gibt es, um die Verteilungsfunktion P(X<=x) 'p', die Wahrscheinlichkeitsfunktion/Dichte 'd', die Quantilfunktion 'q' und die Simulation der Verteilung 'r' zu berechnen. Verteilung R Bezeichnung Zusätzliche Argumente binomial binom size, prob chi-squared chisq df, ncp exponential exp rate geometric geom prob hypergeometric hyper m, n, k normal norm mean, sd Poisson pois lambda >#Verteilungsfunktion (x) der Standartnormalverteilung an der Stelle x=2,3 > pnorm(2.3) [1] 0.9892759

Graphische Oberfläche mit R Es gibt zwei Arten von graphischen Funktionen: die high level plotting functions, welche einen neuen Graphen erzeugen, und die low-level plotting functions, welche neue Elemente zu den bereits erzeugten Graphen hinzufügen.

high-level plotting functions plot(x) zeichnet die Werte von x (als Werte der y-Achse) geordnet nach der x-Achse. plot(x,y) die Werte von x als x-Koordinate die von y, als y- Koordinate boxplot(x) "Box-und-Whiskers“-Plot hist(x) Histogramm symbols(x,y,..) zeichnet in die Koordinaten, die von x, y übergeben wurden, die Symbole(Kreise,Quadrate, Sterne..)

low-level plotting functions points(x,y) fügt Punkte hinzu. lines(x,y) fügt Linien hinzu.   segments(x0,y0,x1,y1) zeichnet Linie vom Punkt(x0,y0) zu(x1,y1). abline(h=y) zeichnet eine Horizontale zur Ordinate y. abline(v=x) zeichnet eine Vertikale zur x. title() fügt einen Titel hinzu. > x <- rnorm(10); y <- rnorm(10) > plot(x, y, xlab="Zehn Zufallsvariablen", ylab="Die anderen zehn Werte", xlim=c(-2, 2), ylim=c(-2, 2), pch=22, col="red", bg="yellow", main="Wie zeichne ich einen Graphen in R")

Packages in R für die Extrapolation Folgende Packages können importiert werden: akima Splines fields und sgeostat Kriging geoR und geoRglm Geostatistik spatstat Punktprozess   Um die Daten aus den anderen packages zu laden benutzt man da Argument package z.b.: > data(package="akima")