Die Sprache R und die R-Bibliothek für räumliche Extrapolation 1. Einige Extrapolationspakete in R: 2. Beispiele von Extrapolationspaketen 1 1- Einige Extrapolationspakete in R: • adapt multidimensionale , numerische Integration. adaptive Quadrature bis zu 20 dimensional • deldir Delaunay Triangulation and Dirichlet (Voronoi) Tesselation • fields Tools für räumliche Datensammlungen und Programme für Kurvenund Funktionen-Anpassung. • gafit Generische Algorithmen Zur Kurvenanpassungen • geoR Funktionen für geostatistiche Datenanalyse • grasper Verallgemeinerte Analyse der Regression und räumliche Vorhersagen in R 2 • gss allgemeine Glättung von Splines • iswr Einführung in die Statistik in R • msm Multistate Markov models in continuous time • muhaz Paket zum Erzeugen einer glatten Schätzung der Zufallsfunktion für kritische Werte • odesolve Gewöhnliche Differentialgleichungen • Random fields Simulation and Analysis of Random Fields • spatstat Simulation von 2 dimensionalen Punktmodellen • splanes Spatials and Space-time Point Pattern Analysis • tseries Time series analysis and computational finance. 3 Hinweis: Die Installation eines Pakets unter R erfolgt wie folgt: Paket herunterladen und • unter Windows: im {R-Home}/library -Verzeichnis kopieren • unter Linux /Unix: R INSTALL Paket.tar • alternativ R starten und install.package(‘Paket‘) eingeben 2. Beispiele von Extrapolationspaketen 2-1 Das Paket Akima Anwendung: cubic spline extrapolation Aufruf: • Ergebnis = interp(x,y,z) • Oder mit zusätzlichen Parametern interp(x,y,z,xo,yo,ncp,extrap), interp.new(...), interp.old(...) 4 benötigte Eingaben •X Ein Vektor mit der X-Koordinate der Meßpunkte •Y Ein Vektor mit der Y-Koordinate der Meßpunkte •Z Die gemessenen Werte • X0 X-Koordinaten des Ausgabe-Gitters • Y0 Y-Koordinaten des Ausgabe-Gitters • Ncp Anzahl der zusätzlichen Punkte, die in der Berechnung der partiellen Ableitung bei jedem Punkt benutzt werden soll • Extrap Sollen nicht definierte Werte ersetzt werden? 5 Implementierung: > werte = read.table('test0.dat') > werte 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 398 399 400 401 402 403 404 405 406 407 408 409 410 V1 V2 78 0 92 0 53 2 118 2 180 2 28 5 172 5 196 5 56 6 92 6 178 6 0 7 124 7 V3 1 1 0 1 0 0 0 0 0 1 0 0 1 117 133 174 26 0 2 51 144 155 25 29 97 55 1 1 0 1 1 1 0 1 1 1 1 1 1 194 194 194 195 196 196 196 196 196 197 197 197 198 Meßorte Tatsächliche Werte das boolesche Modell: 6 > # Bibliothek laden > library(akima) > # Funktion vom Paket aufrufen und Extrapolation durchführen > # die x,y und z-Koordinaten wurden früher ausgelesen und in ‘werte‘ > # gespeichert > bild =interp.new(werte$V1,werte$V2,werte$V3,extrap=TRUE) > # Bild anzeigen > image(bild,main='geschätzte Werte') Originalbild 7 ># ein anderes Fenster öffnen > windows() > image(a) > contour(a,add=TRUE ,main='Darstellung mit isolinien') Originalbild 8 2-2 das Paket Fields - Funktion Tps Anwendung: thin plate spline fitting Aufruf: Ergebnis = Tps(M,z) wobei •M Matrix mit den Meßstellen •z die Meßwerten sind. 9 Implementierung: > library(fields) > tabelle = read.table('test0.dat') > M = matrix(nc=2,nr=410) > M[,1]=tabelle$V1;M[,2]=tabelle$V2 > z=tabelle$V3 > bild = Tps(M,z) ># Anzeigen >surface(bild,type='I',main='thin plate splines regression') Originalbild 10 -Funktion stats Berechnet die allgemeinen Statistiken eines Datensatzes Aufruf: stats(x) wobei x ein Vektor , eine Matrix, oder eine Liste mit den zu bearbeitenden Daten ist. > test = matrix( rnorm(40),nc=4) > test [,1] [,2] [,3] [,4] [1,] 0.8558990 0.78164733 -0.3399095 -1.25745506 [2,] -0.7450166 -2.19926569 2.0638275 4.03476790 [3,] -0.4670831 -0.35056298 -0.0682312 0.02454136 [4,] -0.2473589 -1.17434882 -1.7119517 0.05066576 [5,] 0.7765930 -0.56373543 0.5910227 -0.06191312 [6,] 0.9452108 0.62275970 1.4570585 -0.34027899 [7,] -1.8537570 0.99369978 0.9913790 -0.77783609 [8,] 0.2235473 -0.74028294 -0.7828707 1.14223477 [9,] -0.3107069 -0.03890155 -2.4991293 -0.37005791 [10,] 0.4786146 -1.10437317 -0.4329951 -0.28446861 > stats(test) [,1] [,2] [,3] [,4] N 10.00000000 10.0000000 10.00000000 10.00000000 mean -0.03440577 -0.3773364 -0.07317997 0.21602000 Std.Dev. 0.87328546 0.9993411 1.40467400 1.47739582 min -1.85375698 -2.1992657 -2.49912925 -1.25745506 Q1 -0.42798903 -1.0133506 -0.69540179 -0.36261318 median -0.01190584 -0.4571492 -0.20407034 -0.17319087 Q3 0.70209839 0.4573444 0.89128990 0.04413466 max 0.94521081 0.9936998 2.06382752 4.03476790 missing values 0.00000000 0.0000000 0.00000000 0.00000000 11 2-3 das Paket spatstat bechäftigt sich mit der räumlichen Statistik • rMatClust Erzeugt ein zufälliges Punktmodell mit dem Matterncluster prozess Aufruf: rMatClust(lambda, r, mu, win = owin(c(0,1),c(0,1))) Parameter: Lambda : Intensity of the Poisson process of cluster centres. r: Radius parameter of the clusters. mu: Mean number of points per cluster. win: Window in which to simulate the pattern. > library(spatstat) >test = rMatClust(100, 0.05, mu=0.4, win=owin(c(0,5),c(0,5))) > plot(test,main=‚Matternclusterprozess') 12 rpoispp Erzeugt ein zufälliges Punktmodell mit dem homogenen und nicht homogenen Poisson prozess Aufruf: rpoispp(lambda, max, win, ...) Parameter: lambda: Intensity of the Poisson process. Either a single positive number, or a `function(x,y, ...)'. max: An upper bound for the value of `lambda(x,y)', if `lambda' is a function. win: Window in which to simulate the pattern. > pp <- rpoispp(100, win=owin(c(0,10),c(0,10))) > plot(pp,main='rpoispp') 13 Außerdem gibt es mittels dem ‘Sjava’ Interface jetzt die Möglichkeit, eine Anbindung von der Sprache java nach R (und umgekehrt ) zu schaffen. Damit kann man z.B. von R aus Graphischen Oberflächen (mittels Java GUIs) darstellen, oder R -Funktionen in einem Java Programm ausführen Dokumentation • Information über die Sprache R und die verfügbare Pakete findet man unter www.r-project.org , • Informationen über das Java-Interface für R findet man unter www.omegahat.org 14