#Aufgabe 1 #Einlesen der Daten wetter <- read.table("wetter.txt",header=T) X.wetter <- wetter[,-1] #a) mean.wetter <- colMeans(X.wetter) mean.wetter cov.wetter <- cov(X.wetter) cov.wetter cor.wetter <- cor(X.wetter) cor.wetter #Beim Betrachten der Kovarianzmatrix fällt auf, dass die Wettervariablen deutlich #unterschiedliche Varianzen haben, insb. die von X4 ist dominant. #b) help(princomp) #Die Funktion princomp() ermöglicht die Durchführung einer PCA. #PCA auf Basis der Korrelationsmatrix (cor=T) pca.wetter.cor <- princomp(X.wetter,cor=T) #Vorsicht: Die standard deviations geben hier die Wurzeln der Eigenwerte an. #Mit der Funktion screeplot() kann man die Beiträge der einzelnen Hauptkomponenten #zur Gesamtvarianz graphisch darstellen. Die Höhe der Balken entspricht dann den #Eigenwerten par(mfrow=c(1,2)) screeplot(pca.wetter.cor) #über loadings() erhält man die zugehörigen Eigenvektoren. ev.wetter.cor <- loadings(pca.wetter.cor) ev.wetter.cor #c) #Dasselbe mit der Kovarianzmatrix: cor=F setzen pca.wetter.cov <- princomp(X.wetter,cor=F) screeplot(pca.wetter.cov) ev.wetter.cov <- loadings(pca.wetter.cov) ev.wetter.cov #loadings() gibt Einträge mit Werten nahe null gar nicht aus; man kann sich die #vollständigen Eigenvektoren mit ev.wetter.cov[,1], etc. ausgeben lassen #d) #Da die Hauptkomponentenanalyse (PCA) nicht skaleninvariant ist, sollten die Variablen #zunächst geeignet skaliert werden, zB. durch Standardisierung zu Varianz 1, um #Varianzen in der selben Größenordnung zu erhalten. Da im nicht-standardisierten #Fall, dh. beim Betrachten der Kovarianzmatrix, die Varianz der Kovariable X4 #deutlich größer ist, wird bei der PCA fast nur diese eine Rolle spielen. Das #erkennt man sowohl an den Screeplots als auch beim durch die Hauptkomponenten #erklärten Anteil der Gesamtstreuung: betrachte summary(pca.wetter.cor) #und summary(pca.wetter.cov)