# Beispiel multiple Regression # (Daten aus Wirtz & Nachtigall, 2002, S. 178) library(Rcmdr) # Das Paket muss, bevor es geladen werden kann, zuvor extra # installiert worden sein. In ihm ist die Funktion scatter3d() # enthalten, die unten benutzt wird. Das Paket setzt die Pakete # 'tcltk' und 'car' voraus, die ebenfalls zuvor extra installiert # worden sein müssen. Desweiteren müssen für die unten benutzte # Funktion scatter3d() die Pakete 'rgl' und 'mgcv' extra instal- # liert worden sein. Falls kein dreidimensionales Streudiagramm # der Werte mit eingezeichneter Regressionsebene gezeichnet # werden soll, kann auf das Paket 'Rcmdr' und die übrigen genann- # ten Pakte verzichtet werden. # HINWEIS: Interaktive Arbeit mit dem RCommander ist in den folgenden Analysen # nicht nötig. Wer die Daten (s.u.) nicht mit dem RCommander analysie- # ren will, kann den RCommander beenden, indem im RCommander unter dem # Menüpunkt "File" "-> Exit -> From Commander" gewählt wird. Die # Funktion scatter3d(), die unten benutzt wird, funktioniert nach erst- # maligem Laden von 'Rcmdr' trotzdem. options(digits=3,scipen=5) # Die Pfadangabe muss entsprechend angepasst werden, dabei den letzten Vorwärts- # Schrägstrich (/) nicht vergessen: Pfad='' # Rohdaten: fitness=c(1,6,7,15,12,4,12,13,14,10) gewicht=c(87,73,66,62,68,92,60,70,71,64) lungvol=c(42,43,44,54,45,46,50,46,54,47) FitDat=data.frame(gewicht,lungvol,fitness) FitDat # Die gespeicherte Datendatei (FitDat.RData) kann bei Bedarf mit dem RCommander # (der oben via library(Rcmdr) oben geladen wurde) mittels eines Klicks auf das # Feld geladen werden. Dann können die Daten auch mit den # Funktionen des RCommanders analysiert werden (ist allerdings nicht nötig): save(FitDat,file=paste(Pfad,'FitDat.RData',sep='')) # ------------------------------------------------------------------------------ # Beispiel multiple Regression: # z-Standardisierung aller Variablen: gewicht.z = scale(gewicht) lungvol.z = scale(lungvol) fitness.z = scale(fitness) mean(daten) sd(daten) cor(daten) # Regression mit unstandardisierten Regressionskoeffizienten: summary(lm(fitness~gewicht)) # Regression mit standardisierten Regressionskoeffizienten: summary(lm(fitness.z~gewicht.z)) # Regression mit unstandardisierten Regressionskoeffizienten: summary(lm(fitness~lungvol)) # Regression mit standardisierten Regressionskoeffizienten: summary(lm(fitness.z~lungvol.z)) # Regression mit unstandardisierten Regressionskoeffizienten: summary(lm(lungvol~gewicht)) # Regression mit standardisierten Regressionskoeffizienten: summary(lm(lungvol.z~gewicht.z)) # Regression mit unstandardisierten Regressionskoeffizienten: regmod = lm(fitness~gewicht+lungvol) summary(regmod) # Regression mit standardisierten Regressionskoeffizienten: summary(lm(fitness.z~gewicht.z+lungvol.z)) # Dreidimensionales Streudiagramm mit eingezeichneter Regressionsebene. Setzt # das Laden des Pakets 'Rcmdr' voraus (s.o.): # # Die Grafik kann mit dem rechteckigen Symbol rechts in der oberen Fensterleiste # vergrößert werden. Mit gedrückter linker Maustaste lässt sich die Grafik auch # rotieren: scatter3d(x=lungvol,y=fitness,z=gewicht,fit="linear",bg="white",grid=T, xlab="Lungenvolumen",ylab="Fitness", zlab="Gewicht") # Falls die nächste Befehlszeile mit identify3d() auskommentiert wird, können # die Fälle in der Grafik identifiziert und beschriftet werden, indem ein Recht- # eck mit gedrückter rechter Maustaste um die Punkte gezeichnet wird. Die Iden- # tifizierung der Punkte wird beendet, indem mit der rechten Maustaste in die # Grafik geklickt wird: # # identify3d(x=lungvol,y=fitness,z=gewicht,labels=row.names(FitDat),col='blue')