En estadística el coeficiente de correlación también juega un papel muy importante a la hora de medir relaciones entre variables. La correlación entre dos variables \((x_j,x_k)\) se calcula como: \[ r_{jk} = \dfrac{s_{jk}}{s_j\, s_k} \] la cual mide su relación linea. Esta información para una variable multivariada puede presentarse de forma compacta en la matriz de correlaciones. Esta matriz también es simétrica, donde en la diagonal principal será siempre 1, que es la correlación de cada variable consigo misma y los demás valores serán las correlaciones entre variables. \[ R = \begin{pmatrix} 1 & r_{12} & \cdots & r_{1p} \\ r_{21} & 1 & \cdots & r_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ r_{p1} & r_{p2} & \cdots & 1 \end{pmatrix} \] Las matrices de covarianza y correlación las podemos escribir de forma matricial de la siguiente manera: \[ S = DRD, \quad R = D^{-1}SD^{-1} \] donde \(D\) es la matriz diagonal con las desviaciones estándar de las variables.
Para este ejemplo trabajaremos nuevamente con la base de datos acciones
. Esta base presenta 34 observaciones y 3 variables. Las
observaciones corresponden a distintas acciones que cotizan en el
mercado y las variables a tres medidas de rentabilidad de estas acciones
durante un período de tiempo. Las variables son : \(x_1\) es la rentabilidad efectiva por
dividendos, \(x_2\) es la proporción de
beneficios que va a dividendos y \(x_3\) el cociente entre precio por acción y
beneficios.
Para calcular la matriz de covarianzas en R se usa el siguiente código:
acciones <- read.csv("acciones.csv")
X <- data.matrix(acciones[,-1])
# Matriz de covarianzas
S <- cov(X)
round(S,2)
## X1 X2 X3
## X1 29.10 100.44 -15.70
## X2 100.44 576.23 -18.55
## X3 -15.70 -18.55 22.57
# Histogramas
par(mfrow=c(2,2))
hist(X[,1], main = "Rentabilidad por dividendos",xlab=" ")
hist(X[,2], main = "Proporción de beneficios que va a dividendos",xlab=" ")
hist(X[,3], main = "Cociente entre precio por acción y beneficios",xlab=" ")
Los elementos de la diagonal principal de esta matriz son las
varianzas y los demás valores corresponden a las
covarianzas. Como las dimensiones de las variables son
distintas, no tiene sentido calcular medidas promedio.
Los histogramas de las tres variables han mostrado una clara falta de normalidad. Una posibilidad, que estudiaremos con más detalle en el próximo módulo, es transformar las variables para facilitar su interpretación. Tomando logaritmo en los datos, la matriz de covarianzas de las variables transformadas es:
log_S <- cov(log(X))
round(log_S,2)
## X1 X2 X3
## X1 0.36 0.15 -0.19
## X2 0.15 0.14 -0.03
## X3 -0.19 -0.03 0.16
Si observamos con cuidado, notamos que los logaritmos modifican dramáticamente los resultados. Los datos ahora son más homogéneos y la variable de mayor varianza pasa a ser \(x_1\), el logaritmo de la rentabilidad efectiva, mientras que la menor es \(x_2\), el logaritmo de la proporción de beneficios que va a dividendos. Por otra parte, la relación entre \(x_3\) y \(x_1\) es negativa, mientras que la relación entre \(x_1\) y \(x_2\) es positiva. La otra relación \(x_2\) y \(x_3\) es bastante débil. Una ventaja adicional de los logaritmos es que hace las variables independientes de la escala de medida. Por tanto, al tomar logaritmos en las variables las varianzas pueden compararse aunque los datos tengan distintas dimensiones.
Otra manera de analizarlo como mencionamos, es por medio de la matriz de correlaciones. Esta se calcula así:
R <- cor(X)
round(R,2)
## X1 X2 X3
## X1 1.00 0.78 -0.61
## X2 0.78 1.00 -0.16
## X3 -0.61 -0.16 1.00
Podemos destacar una buena relación positiva entre las variables \(x_1\) y \(x_2\), una relación aceptable negativa entre \(x_1\) y \(x_3\) y una relación débil entre \(x_2\) y \(x_3\).
Definimos la matriz de datos centrados como la matriz resultante de restar cada dato su media: \[ \widetilde{X} = X-{\bf 1}\cdot \overline{\bf x} \] la cual con ayuda de la definición del vector de medias, se puede reescribir como:
\[\begin{align*} \widetilde{X} & = X-\dfrac{1}{n} {\bf 1}\cdot {\bf 1}^t \cdot X \\ & = \left(I-\dfrac{1}{n} {\bf 1}\cdot {\bf 1}^t\right)X \\ & = H X \end{align*}\]
donde, si definimos a \(J\) como la matriz de unos,\((J={\bf 1}\cdot {\bf 1}^t)\), podemos definir la matriz \(H\) como:
\[ H = I - \dfrac{1}{n}J \]
Ciertas características multivariadas se expresan muy bien a partir de la matriz de datos centrados. Por ejemplo, a partir de esta matriz podemos definir la matriz de covarianzas \(S\) como se muestra a continuación: \[ S = \dfrac{1}{n-1} \widetilde{X}^t \widetilde{X}= \dfrac{1}{n-1} X^t H X \]
Continuando con la base de datos
acciones
, podemos corroborar que
la matriz \(S\) se pueda escribir a
partir de la matriz de datos centrados.
En R será necesario el siguiente código:
# Construimos la matriz H
n <- 34
I <- diag(n)
J <- matrix(1,ncol=n,nrow=n)
H <- I-(1/(n))*J
# Construimos la matriz S por medio de matriz de datos centrados
X_tilde <- H%*%X
S_tilde <- (1/(n-1))*(t(X_tilde)%*%X_tilde)
identical(round(S,2),round(S_tilde,2))
## [1] TRUE
# Construimos la matriz S por medio de H
S_H <- (1/(n-1))*(t(X)%*% H %*%X)
identical(round(S,2),round(S_H,2))
## [1] TRUE
Es simétrica: \(H^t H\).
Es idempotente: \(H^2=H\).
Los valores propios de \(H\) siempre son 0 o 1.
\(H\cdot {\bf 1}={\bf 0}\) o \({\bf 1}^t \cdot H= {\bf 0}\).
A modo de ejemplo, podemos tomar una matriz \(H\) cualquiera y ver si se cumplen las propiedades. Pero recuerden que para hacer la prueba de cada propiedad se debería hacer de forma general.
El código en R sería:
# Ejemplo de H
I = diag(4)
J = matrix(1, 4, 4)
H = I - (1/4) * J
H
## [,1] [,2] [,3] [,4]
## [1,] 0.75 -0.25 -0.25 -0.25
## [2,] -0.25 0.75 -0.25 -0.25
## [3,] -0.25 -0.25 0.75 -0.25
## [4,] -0.25 -0.25 -0.25 0.75
# Propiedades:
# 1. Simétrica
identical(t(H),H)
## [1] TRUE
# 2. Idempotente
H2 <- H%*%H
identical(H%*%H,H)
## [1] TRUE
# 3. Valores propios de H
round(eigen(H)$values)
## [1] 1 1 1 0
# 4. H*1=0 o t(1)*H=0
uno <- rep(1,4)
H%*% uno
## [,1]
## [1,] 0
## [2,] 0
## [3,] 0
## [4,] 0
t(uno)%*%H
## [,1] [,2] [,3] [,4]
## [1,] 0 0 0 0
\[ \]