### Tutorium 5 ### ## Aufgabe 2 ## miete <- read.table("http://www.stat.uni-muenchen.de/service/datenarchiv/miete/miete03.asc", header=T) miete <- miete[c("nm", "wfl","nmqm", "bj")] head(miete) # a) # PCA mit Kovarianzmatrix (eig.cov <- eigen(cov(miete))) (notscaled <- prcomp(miete, scale=FALSE)) # Standard deviations = Wurzel der Eigenwerte sqrt(eig.cov$values) # Rotation bzw. Eigenvektoren entsprechen den Ladungen # Vorzeichen der Eigenvektoren duerfen sich auch unterscheiden, # da Eigenvektoren die Richtung von Kovariablen (gleich oder entgegengesetzt) angeben. # b) # Anteil erklaerter Streuung screeplot(notscaled, type="lines") # 1. HK erklaert 98.48% der Gesamtstreuung cumsum(eig.cov$values)/sum(eig.cov$values) # Visualisierung der Ladungen barplot(notscaled$rotation, beside=T, legend=T, args.legend = list(x = "topleft")) # PCA nicht sinnvoll, da Kovarianzmatrix verwendet wurde (bzw. Datensatz nicht skaliert wurde) # Jede Hauptkomponente wird hauptsaechlich durch eine Variable ausgedrueckt. # c) # PCA mit skalierten Datensatz (eig.cor <- eigen(cor(miete))) # Korrelationsmatrix entspricht einer "skalierte Kovarianzmatrix" (scaled <- prcomp(miete, scale=TRUE)) # Standard deviations = Wurzel der Eigenwerte sqrt(eig.cor$values) # Rotation bzw. Eigenvektoren entsprechen den Ladungen cumsum(eig.cor$values)/sum(eig.cor$values) screeplot(scaled,type="lines") barplot(scaled$rotation, beside=T, legend=T, args.legend = list(x = "topleft"))