############################################################################### ## Inhalt: ## Eine erste Beispielsitzung mit R ## vgl. Abschnitt 0.7 im Skript von Ruckdeschel und Kohl ############################################################################### help.start() # startet die Hilfe # #in R einzuladen: # library (MASS) # x<-rnorm(50) # generiert 50 uiv N(0,1) # verteilte Variablen # und schreibt sie in den Vektor x y<-rnorm(50) # h<-chull(x,y) # berechnet die konvexe Huelle # der Punkte z[.]=(x[.],y[.]) # plot(x,y) #plotet die Punkte x,y # polygon(x[h],y[h]) # zeichnet die Huelle ein # objects() # listet die R-Objekte, die z.Z. # im .Data- DIR liegen # rm(x,y,h) # loescht die Objekte x,y,h # x<-rnorm(10000) y<-rnorm(10000) # generiert 1000 Paare uiv N(0,1) # verteilter Variablen # hist(c(x,y+2),25) # Histogramm einer Mischung # von NV-s: 25 Saeulen, # 25 ^= Argument "nclass" # und Verschiebung um 2 in der 2. Komp. # require(MASS) dd <- kde2d(x,y) # Kontour Persp.- und 3D-Plot) contour(dd) persp(dd, theta=-30, phi=30, d=5) image(dd) # rm(x,y) # demo(persp) demo(image) # x<-seq(1,20,0.5) # erzeugt (1,1.5,2,...,19.5,20) #besser mit Argumentbezeichnungen! (aber hier: #Zitat aus V:R:99) # x # listet den Inhalt auf # w<- 1+ x/2 # als Gewichtvektor y<- x + w*rnorm(x) # dum<-data.frame(x,y,w) # erzeugt Data-Frame # aus x,y,w dum # und listet den Inhalt # rm(x,y,w) # fm<- lm( y ~ x, data=dum) # passt eine einfache # lineare Regression von y auf x an summary(fm) # und listet die Zusammenfassung # fm1<- lm( y ~ x, data=dum, weight=1/w^2) # passt eine gewichtete lineare Regression # von y auf x mit Gewichten 1/w^2 an summary(fm1) # und listet die Zusammenfassung # library(modreg) # laedt die Library modreg # lrf <- loess(y ~ x, data=dum) # passt eine lokale, glatte # Regression von y auf x an (mit "loess") # attach(dum) # macht die Attribute von dum # als Variablen verfuegbar plot(x,y) # Scatterplot von y gg x # lines(spline(x,fitted(lrf))) # plottet die lokale Regressionslinie abline(0,1,lty=3) # fuegt die tatsaechliche # Regressionsgerade ein (mit einem # anderen Linientyp) abline(fm) # fuegt die ungewichtete # Regressionsgerade ein # abline() bezieht die noetige Information # dazu aus dem Objekt fm abline(fm1,lty=4) # fuegt die gewichtete # Regressionsgerade ein -- im Linientyp 4 # # Ausgabe moeglich ueber Kontextmenu # (rechte/mittlere Maustaste) # plot(fitted(fm),resid(fm), xlab="eingepasste Werte", ylab="Residuen") # ein Standard-Diagnose-Plot # zum Checken der Homoskedastizitaet # hier: Heterosked. - sichtbar? qqnorm(resid(fm)) qqline(resid(fm)) # Normal-Scores-Plot zum Check der # NV-Annahme (Schiefe, Kurtosis, # Ausreisser) detach() # abloesen des DataFrames von # der Suchliste rm(fm,fm1,lrf,dum) # aufraeumen # # Der Hill-Datensatz: # Rekorde in schottischen Bergrennen # gegen Streckenlaenge # und Hoehenmeter # data(hills) # laden des Hill-Datensatzes hills # listing # pairs(hills) attach(hills) # plot(dist, time) if(interactive()) identify(dist, time, row.names(hills)) abline(lm(time ~ dist)) # interaktives Labeln der Datenpunkte # abline(lqs(dist, time), lty=3, col=4) # robuste Regression mit lts detach() # # Michelson-Datensatz (1879) zur Messung # der Lichtgeschwindigkeit # data(michelson) attach(michelson) search() # welche Daten stehen R zur Verfuegung? plot.factor(Expt, Speed, main="Speed of Light Data", xlab="Experiment No.") # Vergleich der 5 Experimente anhand # einfacher Boxplots fm <- aov(Speed ~ Run + Expt) # ANOVA-Analyse als randomisiertes # Block-Design mit "runs" und "Experiment" # als Faktoren summary(fm) fm0 <- update(fm, . ~ . - Run) # Modell-Fit unter Weglassung der # unsinnigen Faktoren "runs" und # Vergleich der beiden Modelle # mithilfe einer formalen ANOVA anova(fm0, fm) # die ANOVA detach() # aufraeumen rm(fm, fm0) # aufraeumen