# rm(list=ls())
options(OutDec = ",")
#==============================================================================
# Exemplo
#==============================================================================
# Matriz de covariancias
#==============================================================================
SIGMA <- matrix(c( 1,4,4,100),2,2,T)
print(SIGMA) # matriz simetrica e positiva definida
[,1] [,2] [1,] 1 4 [2,] 4 100
#==============================================================================
# Decomposicao em valores singulares
#==============================================================================
W <- eigen(SIGMA)
print(W)
eigen() decomposition
$values
[1] 100,1613532 0,8386468
$vectors
[,1] [,2]
[1,] 0,04030552 -0,99918740
[2,] 0,99918740 0,04030552
#==============================================================================
# Autovalores
#==============================================================================
lambda <- W$values
print(diag(lambda)) # matriz diagonal dos autovalores
[,1] [,2] [1,] 100,1614 0,0000000 [2,] 0,0000 0,8386468
#==============================================================================
# Autovetores
#==============================================================================
P <- W$vectors
print(P) # matriz com autovetores por coluna
[,1] [,2] [1,] 0,04030552 -0,99918740 [2,] 0,99918740 0,04030552
#==============================================================================
# Proporcao acumulada da variacao total
#==============================================================================
print(lambda/sum(lambda))
[1] 0,991696566 0,008303434
#==============================================================================
# correlacao de Y_j com as variaveis X's
#==============================================================================
sigma <- sqrt(diag(SIGMA))
print("==== Correlação de Y_1 com X1, X2 ou X_3 ====")
P[,1]*sqrt(lambda[1])/sigma
print("==== Correlação de Y_2 com X1, X2 ou X_3 ====")
P[,2]*sqrt(lambda[2])/sigma
[1] "==== Correlação de Y_1 com X1, X2 ou X_3 ===="
[1] "==== Correlação de Y_2 com X1, X2 ou X_3 ===="
#==============================================================================
# Matriz de correlacoes
#==============================================================================
Rho <- cov2cor(SIGMA)
#==============================================================================
# Decomposicao em valores singulares
#==============================================================================
U <- eigen(Rho)
delta <- U$values #autovalores
Q <- U$vectors # autovetores
print(U)
print("==== Matriz diagonal dos autovalores ")
print(diag(delta))
print("==== Matriz com autovetores por coluna ====")
print(Q)
print("==== Proporcao acumulada da variacao total ====")
print(delta/sum(delta))
eigen() decomposition
$values
[1] 1,4 0,6
$vectors
[,1] [,2]
[1,] 0,7071068 -0,7071068
[2,] 0,7071068 0,7071068
[1] "==== Matriz diagonal dos autovalores "
[,1] [,2]
[1,] 1,4 0,0
[2,] 0,0 0,6
[1] "==== Matriz com autovetores por coluna ===="
[,1] [,2]
[1,] 0,7071068 -0,7071068
[2,] 0,7071068 0,7071068
[1] "==== Proporcao acumulada da variacao total ===="
[1] 0,7 0,3
#==============================================================================
# Correlacao de Z1 com as variaveis X's
#==============================================================================
print("==== Correlação de Y_1 com X1 ou X2 ====")
print(Q[,1]*sqrt(delta[1])/1)
print("==== Correlação de Y_2 com X1 ou X2 ====")
print(Q[,2]*sqrt(delta[2])/1)
[1] "==== Correlação de Y_1 com X1 ou X2 ====" [1] 0,83666 0,83666 [1] "==== Correlação de Y_2 com X1 ou X2 ====" [1] -0,5477226 0,5477226