### Tutorium 4 ### ## Aufgabe 1 ## # a) # Einlesen der Daten atem <- read.table("http://www.stat.uni-muenchen.de/service/datenarchiv/atem/atemwege.asc", header=T, na.strings=-1) # NA <=> -1 str(atem) table(is.na(atem)) # Entfernen der fehlenden Daten atem <- na.omit(atem) # Man hat von urspruenglich 1549 noch 1322 vollstaendige Beobachtungen zur Verfuegung # Fehlende Werte gibt es v.a. in den Zielgroessenvariablen. table(atem$sex) # sex ist mit 1,2 kodiert, sollte sinnvollerweise dummy-codiert sein, dh. mit 0,1 # 0: maennlich; 1: weiblich atem$sex <- atem$sex-1 # b) # Multivariates Regressionsmodell mit 4 Zielgroessen entspricht # 4 einzelnen LINEAREN Regressionsmodellen! # => Schaetze 4 getrennte lineare Modelle fvc.lm <- lm(fvc~raumu+schnu+huste+sex+gewi, data=atem) summary(fvc.lm) pef.lm <- lm(pef~raumu+schnu+huste+sex+gewi, data=atem) summary(pef.lm) fef50.lm <- lm(fef50~raumu+schnu+huste+sex+gewi, data=atem) summary(fef50.lm) fef75.lm <- lm(fef75~raumu+schnu+huste+sex+gewi, data=atem) summary(fef75.lm) # Koeffizientenmatrix der 4 einzelnen linearen Modellen in B speichern: B <- matrix(0,nrow=6,ncol=4) # Anzahl Zeilen: p+1 (Anzahl Einflussgroessen + Intercept) # Anzahl Spalten: q (Anzahl Zielgroessen) B[,1]<-coefficients(fvc.lm) B[,2]<-coefficients(pef.lm) B[,3]<-coefficients(fef50.lm) B[,4]<-coefficients(fef75.lm) # Matrix der Parameterschaetzungen aus getrennter Schaetzung der linearen Modelle B # z.B. entspricht 1. Zeile dem Interceptvektor der einzelnen linearen Modelle! # c) # Alternativ auch multivariate Schaetzung mit gemeinsamer Response-Matrix moeglich multi.lm <- lm(cbind(fvc,pef,fef50,fef75)~raumu+schnu+huste+sex+gewi, data=atem) # Wenn man die Summary betrachtet, erhaelt man eine Liste der Outputs der einzelnen # multiplen Modelle (vgl. oben) summary(multi.lm) # Matrix der Parameterschaetzungen aus multivariater Schaetzung aequivalent zu b) B.multi <- coefficients(multi.lm) B==B.multi # bzgl. der standard errrors und somit der Signifikanzen stimmen die Modelle # auch ueberein # P-Wert-Matrix der 4 einzelnen linearen Modellen in P1 speichern: P1 <- matrix(0,nrow=6,ncol=4) P1[,1] <- summary(fvc.lm)$coefficients[,"Pr(>|t|)"] P1[,2] <- summary(pef.lm)$coefficients[,"Pr(>|t|)"] P1[,3] <- summary(fef50.lm)$coefficients[,"Pr(>|t|)"] P1[,4] <- summary(fef75.lm)$coefficients[,"Pr(>|t|)"] P1 # P-Wert-Matrix der 4 Zielvariablen vom multivariaten Modell in P2 speichern: P2 <- cbind(summary(multi.lm)[[1]]$coefficients[,"Pr(>|t|)"], summary(multi.lm)[[2]]$coefficients[,"Pr(>|t|)"], summary(multi.lm)[[3]]$coefficients[,"Pr(>|t|)"], summary(multi.lm)[[4]]$coefficients[,"Pr(>|t|)"]) P2 P1==P2