5 votos

La implementación de Ledoit Lobo contracción estimador dentro del paquete de R tawny

Quiero implementar la contracción de la intensidad dada por Ledoit y el Lobo, ver aquí la página 13. Ellos definen $y_{es}$ con $1\le i\le N$ y $1\le t\le t$ ser el rendimiento de las acciones $i$ en vez de $t$. Por otra parte, $z_i:=\bar{y}_i:=\frac{1}{T}\sum_{t=1}^Ty_{es}$ la media del estimador de la $i$º de stock. Como explican en el óptimo de la contracción de la intensidad estimador está dada por (por simplicidad que me caiga el sombrero de notación)

$$\kappa = \frac{\pi\rho}{\gamma}$$

Tengo una pregunta acerca de la aplicación de $\pi$. Ellos definen

$$\pi_{ij} = \frac{1}{T}\sum_{t=1}^T((y_{it}-z_i)(y_{jt}-z_j)-s_{ij})^2$$

Yo quería implementar esto en una forma eficiente. El paquete 'rojizo' tiene un preimplemented función de este. He comprobado el código fuente, que puede ser encontrado aquí en el archivo de la contracción.R. Ellos usan (copio):

# Sum of the asymptotic variances
# returns : T x N (zoo) - Matrix of asset returns
# sample : N x N - Sample covariance matrix
# Used internally.
# S <- cov.sample(ys)
# ys.p <- shrinkage.p(ys, S)
shrinkage.p <- function(returns, sample)
{
  T <- nrow(returns)
  N <- ncol(returns)
  ones <- rep(1,T)
  means <- t(returns) %*% ones / T
  z <- returns - matrix(rep(t(means), T), ncol=N, byrow=TRUE)

  term.1 <- t(z^2) %*% z^2
  term.2 <- 2 * sample * (t(z) %*% z)
  term.3 <- sample^2
  phi.mat <- (term.1 - term.2 + term.3) / T

  phi <- list()
  phi$sum <- sum(phi.mat)
      phi$diags <- diag(phi.mat)
  phi
}

La entrada es la transpuesta $y$ como lo definimos ser $T\times N$ matriz. Su producción final que me interesa es la siguiente:

phi.mat <- (term.1 - term.2 + term.3) / T

Si su código funciona correctamente (que seguro que lo hace) es cierto que $(i,j)$ de entrada de phi.mat es igual a $\pi_{i,j}$. Sin embargo, este es el punto que no puedo averiguar por qué esto es cierto. Ya en R suma / resta de matrices es elementwise debe ser cierto que term.1 es igual a

$$\sum_{t=1}^T(y_{it}-z_i)^2(y_{jt}-z_j)^2$$

y term.2 , equivalente a

$$2\sum_{t=1}^T(y_{it}-z_i)(y_{jt}-z_j)s_{ij}$$

y por último term.3 , equivalente a

$$\sum_{t=1}^T s_{ij}^2$$

Comprendo term.3. Sin embargo, term.1 y term.2 no están claras para mí. Supongo que la comprensión de uno de ellos me va a ayudar a entender a la otra. Por lo tanto, permite centrarse en term.1:

Pregunta ¿por Qué es cierto que $(i,j)$ de entrada de su código term.1 es igual a $\sum_{t=1}^T(y_{it}-z_i)^2(y_{jt}-z_j)^2$? No es la matriz del producto, que ellos sugieren, igual a
$$\sum_{t=1}^T(y_{it}-z_i)(y_{tj}-z_j)$$ y la matriz de rendimientos está claro que no es simétrica?

3voto

La pregunta que se formula puede ser explicado por estas dos líneas de código

e   means <- t(returns) %*% ones / T
z <- returns - matrix(rep(t(means), T), ncol=N, byrow=TRUE)
term.1 <- t(z^2) %*% z^2 e

Aquí vuelve es TxN que le da la matriz ${y_{nt}}$, donde n ha i y j elementos ; significa es TxN de la matriz ${z_i}$ , el mismo significa para cada uno de los activos para la serie de tiempo. Por lo tanto, la línea 2 del código anterior, le z variable que es la matriz ${y_{nt}-z_i}$. Cuando usted toma una transposición y multiplica obtener una suma de cruz multiplicación de los elementos. Los elementos fueron cuadrado al hacer z^2. por lo tanto, usted está tomando un transpuesta de la matriz de los cuadrados de los elementos como $({y_{nt}-z_i})^2$ y multiplicando por la matriz $({y_{nt}-z_i})^2$. Que es la forma de conseguir la cruz de la multiplicación de los cuadrados de los elementos de plazo.1. Asimismo, para el trimestre 2, el código utiliza t(z) y t(z^2), el cual explica los elementos que no son cuadrados. Espero que esto lo explica todo.

-1voto

philcruz Puntos 311

Creo que la "^2" la operación se realiza elemento a elemento en esta instancia. La matriz cuadrada de R es ... um... diferente. La memoria me falla exactamente en la notación.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X