3 votos

Diferencia entre propiedades estadísticas de los retornos logarítmicos y los retornos simples

Dada una serie de tiempo de rendimientos diarios simples, ¿cómo se verá la media y la desviación estándar de los rendimientos logarítmicos y los rendimientos simples? Pienso que la media de los rendimientos simples será más alta debido a la reducción de la volatilidad. Pero estoy confundido acerca de la desviación estándar.

Intenté el siguiente experimento:

mu = 0.0005
sigma = 0.01
for _ in range(10):
  log_rets = np.random.normal(mu, sigma, 10000)
  simple_rets = np.expm1(log_rets)

  log_mean    = np.expm1(log_rets.mean())
  simple_mean = simple_rets.mean()
  print(f"Media: {log_mean:.6f} vs {simple_mean:.6f}")

  log_std    = np.expm1(log_rets.std())
  simple_std = simple_rets.std()
  print(f"Desv. Estándar: {log_std:.6f} vs {simple_std:.6f}")

Media: 0.000430 vs 0.000480
Desv. Estándar: 0.010075 vs 0.010030

Media: 0.000646 vs 0.000695
Desv. Estándar: 0.009959 vs 0.009916

Media: 0.000481 vs 0.000531
Desv. Estándar: 0.010110 vs 0.010064

Media: 0.000394 vs 0.000442
Desv. Estándar: 0.009882 vs 0.009840

Media: 0.000604 vs 0.000655
Desv. Estándar:  0.010152 vs 0.010110

Media: 0.000342 vs 0.000393
Desv. Estándar:  0.010067 vs 0.010021

Media: 0.000399 vs 0.000449
Desv. Estándar:  0.010039 vs 0.009996

Media: 0.000579 vs 0.000628
Desv. Estándar:  0.009954 vs 0.009912

Media: 0.000409 vs 0.000459
Desv. Estándar:  0.010004 vs 0.009959

Media: 0.000205 vs 0.000255
Desv. Estándar:  0.009993 vs 0.009946

¿Alguna indicación/aclaración será útil?

3voto

scottishwildcat Puntos 146

Intento traducir tu código a variables aleatorias, entonces las cosas podrían estar claras. Supongamos que $X$ es normal con $X\sim N(\mu,\sigma^2)$. Este es tu logaritmo de retorno. Entonces $Y = \exp(X)$ es lognormal con esperanza $$E[Y] = \exp(\mu + \sigma^2/2)$$ y varianza $$V[Y] = (\exp(\sigma^2)-1) \exp(2\mu + \sigma^2)$$ (ver por ejemplo, https://es.wikipedia.org/wiki/Distribución_log-normal).

Entonces lo que calculas como log_mean es
$$\exp(E[X])-1 = \exp(\mu)-1 \approx 1 + \mu + 1/2 \mu^2 -1 = \mu + 1/2 \mu^2$$ y la simple_mean es $$E[\exp(X)-1] = E[\exp(X)]-1 = \exp(\mu + \sigma^2/2)-1 \approx \mu + \sigma^2/2 + 1/2 \left( \mu^2 + 2 \mu \sigma^2/2 + \sigma^4/4 \right)$$ Asumiendo que $\mu$ y $\sigma$ son números pequeños, comparamos $ \mu + 1/2 \mu^2 $ con $ \mu + 1/2 \mu^2 + \sigma^2/2$.

En resumen, tu simple_mean debería ser aproximadamente $\sigma^2/2$ más grande que log_mean.

Para la varianza podríamos hacer cálculos similares a los anteriores. ¿Cómo te funciona lo anterior? Lo que ves es que solo se usó la aproximación de la función exponencial $$\exp(x) \approx 1 + x + x^2/2$$ y los momentos de la lognormal.

EDICIÓN: Comparemos los términos de desviación estándar.

Tenemos log_std que es $$\exp(\sqrt{V[X]})-1 = \exp( \sigma )-1 \approx \sigma + 1/2 \sigma^2$$. Pregunta aquí: ¿por qué aplicas $\exp(x)-1$ a la desviación estándar? Observación: con $\sigma= 0.1$ pero estimado a partir de la muestra, este resultado es consistente con los valores que publicaste.

El término para simple_std es más complejo:

$$\sqrt{V[\exp(X)-1]} = \sqrt{V[\exp(X)]} = ((\exp(\sigma^2)-1) \exp(2\mu + \sigma^2))^{1/2}.$$ Luego reaparece un término bien conocido $$\sqrt{(\exp(\sigma^2)-1)} \exp(\mu + 1/2\sigma^2),$$ que puede aproximarse de la siguiente manera (considerando solo términos cuadráticos): $$\sqrt{ 1+ \sigma^2 -1 } (1 + \mu + \sigma^2 + \mu^2 + \mu \sigma^2 ).$$ Simplificando los primeros términos obtenemos $$\sigma (1 + \mu + \sigma^2 + \mu^2 + \mu \sigma^2).$$ Nuevamente, conservando solo términos cuadráticos como máximo, obtenemos $$\sigma + \mu \sigma.$$

Entonces, creo que la comparación de las desviaciones estándar depende de los valores específicos de $\mu$ y $\sigma$. En tu ejemplo $\sigma^2/2 = 2.5 * 10^{-5}$ y $\mu\sigma = 5 * 10^{-6}$. Por lo tanto, dejando de lado los errores de muestreo, log_std debe ser un poco más alto, ¡lo cual es cierto! :)

0 votos

Aplico exp(x)1 a la desviación estándar para llevar las unidades de vuelta a términos porcentuales. ¿No debería hacerse? De lo contrario, std(simple_returns) estará en diferentes unidades, ¿cierto? @richi-wa?

0 votos

@quantpadawan Estoy de acuerdo ... además, el cálculo muestra que la transformación tiene sentido.

2voto

Jo Liss Puntos 1273

El logaritmo de rendimiento tiene algunas propiedades matemáticas interesantes que pueden ser útiles en algunos modelos. Aquí hay algunas propiedades que podrían ayudar:

  • Los rendimientos logarítmicos son más útiles si desea tener en cuenta la capitalización (más fácil de calcular)
  • Si los precios siguen una distribución log-normal, entonces los rendimientos logarítmicos también seguirán una distribución normal (probablemente el caso de uso más importante)
  • Si los rendimientos están cerca de cero, entonces el rendimiento logarítmico es una mejor aproximación del rendimiento real (piense en situaciones de puntos base).
  • Un número grande positivo tiene menos impacto en la función logarítmica y un número grande negativo tiene un gran impacto (por lo que si su cartera cae un 50%, necesita aumentar un 100% para recuperarse)

La mayoría de lo anterior proviene de las propiedades logarítmicas.

0 votos

Si los rendimientos están cerca de cero, entonces el rendimiento logarítmico es una mejor aproximación del rendimiento real (piensa en la situación de puntos base). Una aclaración: el error de aproximación al utilizar rendimientos logarítmicos para aproximar rendimientos simples es menor cuando los rendimientos simples están cerca de cero que cuando están lejos de cero. En este último caso, el error de aproximación puede ser bastante grande. Pero ten en cuenta que esta declaración compara rendimientos logarítmicos con rendimientos logarítmicos, no rendimientos logarítmicos con rendimientos simples.

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