In [1]:
# rm(list=ls()) 
options(OutDec = ",")
#==============================================================================
# Descricao: representacao de dados multivariados no R
#==============================================================================
p       <- 2                     # numero de variaveis
n       <- 4                     # tamanho da amostra
X       <- matrix(0,p,n)         # definindo X
X[1, ]  <- c( 4,  5,  4,  3)     # valores de X_{1i}
X[2, ]  <- c(42, 52, 48, 58)     # valores de X_{1i}
ones    <- matrix(1,n,1)         # vetor de uns
xbar    <- (X%*%ones) / n        # vetor de medias
sdX     <- apply(X,1,"sd")       # desvio padrao das variaveis
D.half  <- diag(sdX,p,p)         # matriz Delta^{1/2}
X.xbar  <- X-xbar%*%t(ones)      # matriz (X - xbarra*ones')
W       <- X.xbar%*%t(X.xbar)    # somas dos desvios ao quadrados e cruzados
S       <- W/(n-1)               # matriz de covariancias
ID.half <- solve(D.half)         # matriz Delta^{-1/2}
R       <- ID.half%*%S%*%ID.half # matriz de correlacoes
print(xbar) # vetor de medias 
print(S)    # matriz de covariancias
print(R)    # matriz de correlacoes
     [,1]
[1,]    4
[2,]   50
           [,1]     [,2]
[1,]  0,6666667 -2,00000
[2,] -2,0000000 45,33333
           [,1]       [,2]
[1,]  1,0000000 -0,3638034
[2,] -0,3638034  1,0000000
In [2]:
#==============================================================================
# Outra forma de calcular xbarra, S e R utilizando funcoes do R
#
# IMPORTANTE: note a transposicao da matriz X para o calculo de S e R
#
#==============================================================================
print(apply(X,1,"mean")) # vetor (linha) de medias 
print(var(t(X)))         # matriz de covariancias  
print(cor(t(X)))         # matriz de correlacoes
[1]  4 50
           [,1]     [,2]
[1,]  0,6666667 -2,00000
[2,] -2,0000000 45,33333
           [,1]       [,2]
[1,]  1,0000000 -0,3638034
[2,] -0,3638034  1,0000000