# Programm zur Durchführung einer PCA

# V 0.1 vom 7.1.2005

# (c) Dr. Alexander Preuß

# Eine vollständige Datenmatrix X muss vorhanden sein!



# Bestimmung von I und J

I <- nrow(X)

J <- ncol(X)

# Bestimmung min(I,J)

r <- min(I,J)

# Bestimmung der Matrix EinsII 

EinsII <- matrix(rep(1, times=I*I), ncol = I)

# Bestimmung der Matrix XQuer, die die mittleren Zeilenprofile von X enthält

XQuer <- (1/I)*EinsII%*%X

# Bestimmung der Matrix A

A <- X - XQuer

# Eigenwertzerlegung von A'A

L <- eigen(t(A)%*%A)$values
E <- eigen(t(A)%*%A)$vectors

# Bildung der Matrix E12, die die beiden größten Eigenvektoren enthält

E12 <- E[1:J,1:2]

# Bildung der Hauptkoordinaten für die Zeilen

K12 <- A%*%E12

# Bestimmung der Anpassungsgüte

Summe_L <- sum(L)
G1 <- L[1]/Summe_L
G2 <- L[2]/Summe_L
G <- G1 + G2

# Graphische Ausgabe der Hauptkoordinaten

plot(K12[1:I,1],K12[1:I,2], pch=".",xlab="1. Achse", ylab="2. Achse")
abline(h=0)
abline(v=0)

for (i in 1:I) {text(K12[i,1],K12[i,2],rnamen[i],col="red")}









