# 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
#==============================================================================
# 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