Kij <- as.matrix (read.table ("datos.txt")) k <- sum (Kij) Fij <- Kij / k Fi. <- apply (Fij, 1, sum) F.j <- apply (Fij, 2, sum) Pi <- diag (1/Fi.) %*% Fij Pj <- Fij %*% diag (1/F.j) d2i <- function (i1,i2) sum ((Pi[i1,]-Pi[i2,])^2 / F.j)
d2j <- function (j1,j2) sum ((Pj[j1,]-Pj[j2,])^2 / Fi.)
Di <- Pi %*% diag (1/sqrt(F.j)) Dj <- diag (1/sqrt(Fi.)) %*% Pj
n <- nrow (Kij)
p <- ncol (Kij)
J <- matrix (1, n, p)
Ci <- Di - J %*% diag (sqrt (F.j)) Cj <- Dj - diag (sqrt (Fi.)) %*% J
Ind <- diag(Fi.) %*% J %*% diag(F.j) X <- (Fij - Ind) / sqrt(Ind) T <- t(X) %*% X Xa <- Fij / sqrt(Ind) Ta <- t(Xa) %*% Xa W <- X %*% t(X) Wa <- Xa %*% t(Xa)
auto.i <- eigen (T)
auto.iA <- eigen (Ta)
auto.j <- eigen (W)
auto.jA <- eigen (Wa)
landa.i <- auto.i$values landa.iA <- auto.iA$values
landa.j <- auto.j$values landa.jA <- auto.jA$values
U <- auto.iA$vectors
V <- auto.jA$vector V <- Xa %*% U %*% diag (1 / sqrt (landa.iA)) U <- U[,-1] V <- V[,-1]
landa <- landa.iA[-1] pv <- 100 * landa / sum (landa) cbind (landa, pv, cumsum(pv)) psi.i <- Di %*% U phi.j <- t(Dj) %*% V Ca.i <- diag(Fi.) %*% psi.i^2 %*% diag(1/landa) Ca.j <- diag(F.j) %*% phi.j^2 %*% diag(1/landa) distancias.i <- apply (psi.i, 1, function (x) sum(x^2)) distancias.j <- apply (phi.j, 1, function (x) sum(x^2)) Cr.i <- diag (1 / distancias.i) %*% psi.i^2 Cr.j <- diag (1 / distancias.j) %*% phi.j^2
print (round (cbind (F.j,
phi.j[,1:3],
Ca.j[,1:3],
Cr.j[,1:3]),
3))
print (round (cbind (Fi.,
psi.i[,1:3],
Ca.i[,1:3],
Cr.i[,1:3]),
3))
coor.i <- psi.i[,1:2] coor.j <- phi.j[,1:2] plot (rbind (coor.i, coor.j),
type = "n", xlab = "eje 1º", ylab = "eje 2º")
text (coor.i, labels = rownames (Kij), col = "red")
text (coor.j, labels = colnames (Kij), col = "blue")
bondad.i <- apply (Cr.i[,1:2], 1 ,sum)
bondad.j <- apply (Cr.j[,1:2], 1 ,sum)
plot (rbind (coor.i, coor.j),
type = "n", xlab = "eje 1º", ylab = "eje 2º")
text (coor.i, labels = rownames (Kij), col = rgb(1,0,0,bondad.i))
text (coor.j, labels = colnames (Kij), col = rgb(0,0,1,bondad.j))