La matriz asignada para la tarea corta, fue la #7
x <- matrix(c(4,1,3,
2,5,7,
8,3,9,
6,7,2
),nrow=4,ncol=3,byrow =(TRUE))
print(x)
## [,1] [,2] [,3]
## [1,] 4 1 3
## [2,] 2 5 7
## [3,] 8 3 9
## [4,] 6 7 2
meanx <- apply(x, 2,mean)
sdx <- apply(x, 2,sd)
print(meanx)
## [1] 5.00 4.00 5.25
print(sdx)
## [1] 2.581989 2.581989 3.304038
## X centrada es:
X <- sweep(x, 2, meanx, FUN = "-")
print(X)
## [,1] [,2] [,3]
## [1,] -1 -3 -2.25
## [2,] -3 1 1.75
## [3,] 3 -1 3.75
## [4,] 1 3 -3.25
Se utiliza la función SVD para encontrar los vectores y valores singulares de X,siendo X la matriz centrada.
vvs <- svd(X)
print(vvs)
## $d
## [1] 5.991288 4.472136 4.105419
##
## $u
## [,1] [,2] [,3]
## [1,] -0.24718715 -0.6324555 -0.537492802
## [2,] 0.07499755 -0.3162278 0.802729946
## [3,] 0.76375594 0.3162278 -0.258218631
## [4,] -0.59156634 0.6324555 -0.007018513
##
## $v
## [,1] [,2] [,3]
## [1,] 0.2873999 7.071068e-01 -0.6460660
## [2,] -0.2873999 7.071068e-01 0.6460660
## [3,] 0.9136753 -2.220446e-16 0.4064449
U <- vvs$u
V <- vvs$v
D <- diag(vvs$d)
Como se sabe, la matriz X se puede “factorizar” o “descomponer” en valores y vectores singulares de la siguiente manera: X= UDt(V), donde:
U= vectores singulares a izquierda.
V= vectores singulares a derecha, pero en este caso, se utiliza la transpuesta.
D= valores singulares.
Veamos que la descomposición que se realizó anteriormente fue correcta
X <- U%*%D%*%t(V)
print(X)
## [,1] [,2] [,3]
## [1,] -1 -3 -2.25
## [2,] -3 1 1.75
## [3,] 3 -1 3.75
## [4,] 1 3 -3.25
Al multiplicar UDt(V) obtenemos X, lo que quiere decir que la descomposición en vectores y valores singulares esta bien.
Ahora, miremos los diferentes tipos de biplot que se pueden realizar, se debe tener presente que:
F= UD^(c/2)
G= VD^(1-c)/2
Donde c toma valores entre [0,1]
Al ser c=0.5, las matrices F y G quedan de la siguiente forma:
F= UD^(1/4)
G= VD^(1/4)
D_c0.5 <- sqrt(D)
D_c0.5 <- D_c0.5^(1/2)
F_c0.5 <- round(U%*%D_c0.5[,1:2],2)
G_c0.5 <- round(V%*%D_c0.5[,1:2],2)
print(F_c0.5)
## [,1] [,2]
## [1,] -0.39 -0.92
## [2,] 0.12 -0.46
## [3,] 1.19 0.46
## [4,] -0.93 0.92
print(G_c0.5)
## [,1] [,2]
## [1,] 0.45 1.03
## [2,] -0.45 1.03
## [3,] 1.43 0.00
Al observar las gráficas anteriores, se nota que los puntos están bastante separados entre sí, al igual que los vectores. Esto sugiere que las filas de X son muy diferentes entre sí, al igual que sus columnas.
Al ser c=0, las matrices F y G quedan de la siguiente forma:
F= U
G= VD^(1/2)
D_c0 <- sqrt(D)
F_c0 <-round(U[,1:2],2)
G_c0 <- round(V%*%D_c0[,1:2],2)
print(F_c0)
## [,1] [,2]
## [1,] -0.25 -0.63
## [2,] 0.07 -0.32
## [3,] 0.76 0.32
## [4,] -0.59 0.63
print(G_c0)
## [,1] [,2]
## [1,] 0.70 1.5
## [2,] -0.70 1.5
## [3,] 2.24 0.0
En esta representación, G esta en coordenadas
principales,recordando que G= VD^(1/2).Al analizar el gráfico, se
observa que los vectores están bastante separados, lo que indica que las
columnas de la matriz X presentan diferencias significativas entre
sí.
Al ser c=1, las matrices F y G quedan de la siguiente forma:
F= UD^(1/2)
G= V
D_c1 <- sqrt(D)
F_c1 <- round(U%*%D_c1[,1:2],2)
G_c1 <- round(V[,1:2],2)
print(F_c1)
## [,1] [,2]
## [1,] -0.61 -1.34
## [2,] 0.18 -0.67
## [3,] 1.87 0.67
## [4,] -1.45 1.34
print(G_c1)
## [,1] [,2]
## [1,] 0.29 0.71
## [2,] -0.29 0.71
## [3,] 0.91 0.00
En este caso, F esta en coordenadas
principales,recordando que F= UD^(1/2). Al analizar el gráfico, se
observa una notable separación entre los puntos, lo que sugiere que las
filas de la matriz X difieren considerablemente entre sí