In [1]:
# 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
In [2]:
#==============================================================================
# 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

In [3]:
#==============================================================================
# Autovalores
#==============================================================================
lambda <- W$values  
print(diag(lambda))  # matriz diagonal dos autovalores
         [,1]      [,2]
[1,] 100,1614 0,0000000
[2,]   0,0000 0,8386468
In [4]:
#==============================================================================
# Autovetores
#==============================================================================
P      <- W$vectors
print(P)             # matriz com autovetores por coluna
           [,1]        [,2]
[1,] 0,04030552 -0,99918740
[2,] 0,99918740  0,04030552
In [5]:
#==============================================================================
# Proporcao acumulada da variacao total
#==============================================================================
print(lambda/sum(lambda))
[1] 0,991696566 0,008303434
In [6]:
#==============================================================================
# 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. 0,403380210463107
  2. 0,999993187922509
[1] "==== Correlação de Y_2 com X1, X2 ou X_3 ===="
  1. -0,915032461613652
  2. 0,00369108501342003
In [7]:
#==============================================================================
# Matriz de correlacoes
#==============================================================================
Rho    <- cov2cor(SIGMA)
In [8]:
#==============================================================================
# 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
In [9]:
#==============================================================================
# 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