# rm(list=ls())
options(OutDec = ",")
#==============================================================================
# Exemplo
#==============================================================================
SIGMA <- matrix(c( 1,-2,0,-2,5,0,0,0,2),3,3,T)
print(SIGMA ) # matriz simetrica e positiva definida
[,1] [,2] [,3] [1,] 1 -2 0 [2,] -2 5 0 [3,] 0 0 2
#==============================================================================
# Decomposicao em valores singulares
#==============================================================================
W <- eigen(SIGMA)
print(W)
eigen() decomposition
$values
[1] 5,8284271 2,0000000 0,1715729
$vectors
[,1] [,2] [,3]
[1,] -0,3826834 0 0,9238795
[2,] 0,9238795 0 0,3826834
[3,] 0,0000000 1 0,0000000
#==============================================================================
# Autovalores
#==============================================================================
lambda <- W$values
print(diag(lambda)) # matriz diagonal dos autovalores
[,1] [,2] [,3] [1,] 5,828427 0 0,0000000 [2,] 0,000000 2 0,0000000 [3,] 0,000000 0 0,1715729
#==============================================================================
# Autovetores
#==============================================================================
P <- W$vectors
print(P) # matriz com autovetores por coluna
[,1] [,2] [,3] [1,] -0,3826834 0 0,9238795 [2,] 0,9238795 0 0,3826834 [3,] 0,0000000 1 0,0000000
#==============================================================================
# Proporcao acumulada da variacao total
#==============================================================================
print(lambda/sum(lambda))
[1] 0,72855339 0,25000000 0,02144661
#==============================================================================
# correlacao de Y_j com as variaveis X's
#==============================================================================
sigma <- sqrt(diag(SIGMA)) #Desvios padrao de X_1, X_2 e X_3
print("==== Correlação de Y_1 com X1, X2 ou X_3 ====")
print(P[,1]*sqrt(lambda[1])/sigma)
print("==== Correlação de Y_2 com X1, X2 ou X_3 ====")
print(P[,2]*sqrt(lambda[2])/sigma)
print("==== Correlação de Y_3 com X1, X2 ou X_3 ====")
print(P[,3]*sqrt(lambda[3])/sigma)
[1] "==== Correlação de Y_1 com X1, X2 ou X_3 ====" [1] -0,9238795 0,9974842 0,0000000 [1] "==== Correlação de Y_2 com X1, X2 ou X_3 ====" [1] 0 0 1 [1] "==== Correlação de Y_3 com X1, X2 ou X_3 ====" [1] 0,38268343 0,07088902 0,00000000