En el $G^TG$ operación $G^T$ $6 \times 8$ matriz, y $G$$8 \times 6$. Por lo tanto, la multiplicación de la matriz producirá un $6 \times 6$ matriz.
Frente a los comentarios y la cuestión de fondo, vamos a suponer que tenemos una matriz correspondiente a los retornos de los diferentes stocks (en las columnas) frente a los 5 años consecutivos (en las filas) - completamente ficticios poblaciones y años:
yah(y) gog(g) ms(m)
Yr.1 1 8 1
Yr.2 -4 9 3
Yr.3 5 10 4
Yr.4 7 3 5
Yr.5 8 7 6
Vamos a llamar a esta matriz $A$. Queremos calcular las correlaciones entre los diferentes vectores de devoluciones, uno para cada empresa, "empaquetada" en la matriz de $A$.
La varianza-covarianza de la matriz de la cartera, asumiendo la igualdad de participaciones será:
$\Large \sigma(A) = \frac{G^TG}{n-1}$ $G$ siendo la media centrada en las observaciones y $n-1$ correspondiente al número de observaciones menos $1$.
La media de centrado (o de humillación) de la matriz $G$ es:
yah goog ms
Yr.1 -2.4 0.6 -2.8
Yr.2 -7.4 1.6 -0.8
Yr.3 1.6 2.6 0.2
Yr.4 3.6 -4.4 1.2
Yr.5 4.6 -0.4 2.2
Y la varianza-covarianza de la matriz:
$$\begin{bmatrix}
& y & g & m \\
y & 24.30 &-6.70 & 6.85\\
g & -6.70 & 7.30 & -2.15 \\
ms & 6.85 & -2.15 & 3.70 \\
\end{bmatrix}
$$
So it went from the $5 \times 3$ $$ matrix to a $3 \times 3$ matrix.
The operations involved in calculating the correlation matrix are similar, but the data points are standardized by dividing each one by the standard deviation of the returns of each company (column vectors), right after centering the data points by subtracting the column means as in the covariance matrix:
$$\pequeño cor(A)=\tiny\frac{1}{n-1}\pequeño\begin{bmatrix}
\frac{y_1 - \bar{a}}{sd(ya)} & \frac{y_2 - \bar{y}}{sd(y)} & \frac{y_3 - \bar{y}}{sd(y)} & \frac{y_4 - \bar{y}}{sd(ya)} &\frac{y_5 - \bar{y}}{sd(y)} \\
\frac{g_1 - \bar{g}}{sd(g)} & \frac{g_2 - \bar{g}}{sd(g)} & \frac{g_3 - \bar{g}}{sd(g)} & \frac{g_4 - \bar{g}} {sd(g)}& \frac{g_5 - \bar{g}}{sd(g)}\\
\frac{m_1 - \bar{m}}{sd(m)}& \frac{m_2 - \bar{m}}{sd(m)} &\frac{m_3 - \bar{m}}{sd(m)} & \frac{m_4 - \bar{m}}{sd(m)}
& \frac{m_5 - \bar{m}}{sd(m)}\\
&&\color{blue} {3\times 5 \,\text{matrix}}
\end{bmatrix}
\begin{bmatrix}
\frac{y_1 - \bar{y}}{sd(y)} & \frac{g_1 - \bar{g}}{sd(g)} & \frac{m_1 - \bar{m}}{sd(m)} \\
\frac{y_2 - \bar{y}}{sd(y)} & \frac{g_2 - \bar{g}}{sd(g)} & \frac{m_2 - \bar{m}}{sd(m)} \\
\frac{y_3 - \bar{y}}{sd(y)} &\frac{g_3 - \bar{g}}{sd(g)} & \frac{m_3 - \bar{m}}{sd(m)} \\
\frac{y_4 - \bar{y}}{sd(y)} & \frac{g_4 - \bar{go}}{sd(g)} & \frac{m_4 - \bar{m}}{sd(m)} \\
\frac{y_5 - \bar{y}}{sd(y)} & \frac{g_5 - \bar{g}}{sd(g)} & \frac{m_5 - \bar{m}}{sd(m)} \\
&\color{blue} {5\times 3 \,\text{matrix}}
\end{bmatrix}$$
One more quick thing for completeness sake: We have so far a clunky matrix as the result, but in general we want to estimate the portfolio variance - 1 portfolio; 1 variance. To do that we multiply the matrix of variance-covariance of $$ to the left and to the right by the vector containing the proportions or weightings in each stock - $W$. Since we want to end up with a scalar single number, it is unsurprising that the algebra will be: $W^T\,\sigma(A)\,W$, with the vector of weights (fractions) being in this case $\color{blue}{3}\times \color{blue}{1}$ to match perfectly on the left as $W^T$, and on the right as $W$.
Código en R:
Ficticio conjunto de datos de ganancias en miles de millones, porcentaje (?) - la matriz a:
yah = c(1, - 4, 5, 7, 8)
goog = c(8, 9, 10, 3, 7)
ms = c(1, 3, 4, 5, 6)
returns <- cbind(yah, goog, ms)
row.names(returns) =c("Yr.1","Yr.2","Yr.3","Yr.4", "Yr.5")
Centrada en la matriz (G) de menosprecio devuelve:
demeaned_returns <- scale(returns, scale = F, center = T)
Manual y R de la función de cálculo de la varianza-covarianza de la matriz:
(var_cov_A = (t(demeaned_returns)%*%demeaned_returns)/(nrow(returns)-1))
cov(returns) # the R in-built function cov() returns the same results.
Matriz de correlación de cálculo:
Tenemos que dividir por la desviación estándar de la columna-sabio:
demeaned_scaled_returns <- scale(returns, scale = T, center = T)
y, a continuación, proceder como en el anterior:
(corr_A = (t(demeaned_scaled_returns) %*% demeaned_scaled_returns)/(nrow(returns)-1))
cor(returns) # Again, the R function returns the same matrix.