Medidas de dispersión y riesgo bajista de los rendimientos
Resumen
El documento repasa medidas de cuánto se dispersan las observaciones en torno a un valor central. Define el rango, la desviación absoluta media, la varianza y la desviación estándar, y señala que la desviación estándar se expresa en las mismas unidades que las observaciones y que las desviaciones al cuadrado son prácticas para algunos métodos de optimización. La desigualdad de Chebyshev proporciona un límite inferior, independiente de la distribución, para la proporción de observaciones dentro de un número especificado de desviaciones estándar, aunque el ejemplo muestra que este límite puede ser impreciso.
Para analizar rendimientos, la clase distingue la variación bajista de la variación total mediante la semivarianza y la semidesviación, que se centran en las observaciones por debajo de la media; las versiones respecto a un objetivo miden, en cambio, las desviaciones por debajo de un umbral elegido. Estas medidas pueden describir distintos aspectos del riesgo, pero sus valores muestrales son solo estimaciones. Las series temporales financieras pueden presentar cambios en las medias y las varianzas, por lo que la dispersión histórica no garantiza que el riesgo futuro sea similar. Los ejemplos del documento ilustran definiciones, no ofrecen un método de previsión ni demuestran que una medida sea preferible en todos los casos.
Ideas clave
- El rango, la desviación absoluta media, la varianza y la desviación estándar resumen distintos aspectos de la dispersión de los datos.
- La desviación estándar se expresa en las unidades de medida originales, mientras que la varianza utiliza unidades al cuadrado.
- La desigualdad de Chebyshev ofrece un límite inferior independiente de la distribución para las observaciones próximas a la media, pero puede ser impreciso.
- La semivarianza y la semidesviación se centran en las observaciones por debajo de la media, mientras que las variantes respecto a un objetivo miden desviaciones por debajo de un umbral elegido.
- Las estadísticas de dispersión histórica son estimaciones muestrales y quizá no representen el riesgo futuro si cambian las condiciones financieras.
Etiquetas
Texto completo
# Measures of Dispersion
<a href="https://www.quantrocket.com"><img alt="QuantRocket logo" src="https://www.quantrocket.com/assets/img/notebook-header-logo.png"></a>
© Copyright Quantopian Inc.<br>
© Modifications Copyright QuantRocket LLC<br>
Licensed under the [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/legalcode).<br>
<a href="https://www.quantrocket.com/disclaimer/">Disclaimer</a>
***
[Quant Finance Lectures (adapted Quantopian Lectures)](Introduction.ipynb) › Lecture 7 - Variance
***
# Measures of Dispersion
By Evgenia "Jenny" Nitishinskaya, Maxwell Margenot, and Delaney Mackenzie.
<a href="https://youtu.be/0AWY0odmjSs?t=62" target="_blank">Quantopian video for this lecture ↗</a>
Dispersion measures how spread out a set of data is. This is especially important in finance because one of the main ways risk is measured is in how spread out returns have been historically. If returns have been very tight around a central value, then we have less reason to worry. If returns have been all over the place, that is risky.
Data with low dispersion is heavily clustered around the mean, while data with high dispersion indicates many very large and very small values.
Let's generate an array of random integers to work with.
```python
# Import libraries
import numpy as np
np.random.seed(121)
```
```python
# Generate 20 random integers < 100
X = np.random.randint(100, size=20)
# Sort them
X = np.sort(X)
print('X: %s' %(X))
mu = np.mean(X)
print('Mean of X:', mu)
```
## Range
Range is simply the difference between the maximum and minimum values in a dataset. Not surprisingly, it is very sensitive to outliers. We'll use `numpy`'s peak to peak (ptp) function for this.
```python
print('Range of X: %s' %(np.ptp(X)))
```
## Mean Absolute Deviation (MAD)
The mean absolute deviation is the average of the distances of observations from the arithmetic mean. We use the absolute value of the deviation, so that 5 above the mean and 5 below the mean both contribute 5, because otherwise the deviations always sum to 0.
$$ MAD = \frac{\sum_{i=1}^n |X_i - \mu|}{n} $$
where $n$ is the number of observations and $\mu$ is their mean.
```python
abs_dispersion = [np.abs(mu - x) for x in X]
MAD = np.sum(abs_dispersion)/len(abs_dispersion)
print('Mean absolute deviation of X:', MAD)
```
## Variance and standard deviation
The variance $\sigma^2$ is defined as the average of the squared deviations around the mean:
$$ \sigma^2 = \frac{\sum_{i=1}^n (X_i - \mu)^2}{n} $$
This is sometimes more convenient than the mean absolute deviation because absolute value is not differentiable, while squaring is smooth, and some optimization algorithms rely on differentiability.
Standard deviation is defined as the square root of the variance, $\sigma$, and it is the easier of the two to interpret because it is in the same units as the observations.
```python
print('Variance of X:', np.var(X))
print('Standard deviation of X:', np.std(X))
```
One way to interpret standard deviation is by referring to Chebyshev's inequality. This tells us that the proportion of samples within $k$ standard deviations (that is, within a distance of $k \cdot$ standard deviation) of the mean is at least $1 - 1/k^2$ for all $k>1$.
Let's check that this is true for our data set.
```python
k = 1.25
dist = k*np.std(X)
l = [x for x in X if abs(x - mu) <= dist]
print('Observations within', k, 'stds of mean:', l)
print('Confirming that', float(len(l))/len(X), '>', 1 - 1/k**2)
```
The bound given by Chebyshev's inequality seems fairly loose in this case. This bound is rarely strict, but it is useful because it holds for all data sets and distributions.
## Semivariance and semideviation
Although variance and standard deviation tell us how volatile a quantity is, they do not differentiate between deviations upward and deviations downward. Often, such as in the case of returns on an asset, we are more worried about deviations downward. This is addressed by semivariance and semideviation, which only count the observations that fall below the mean. Semivariance is defined as
$$ \frac{\sum_{X_i < \mu} (X_i - \mu)^2}{n_<} $$
where $n_<$ is the number of observations which are smaller than the mean. Semideviation is the square root of the semivariance.
```python
# Because there is no built-in semideviation, we'll compute it ourselves
lows = [e for e in X if e <= mu]
semivar = np.sum( (lows - mu) ** 2 ) / len(lows)
print('Semivariance of X:', semivar)
print('Semideviation of X:', np.sqrt(semivar))
```
A related notion is target semivariance (and target semideviation), where we average the distance from a target of values which fall below that target:
$$ \frac{\sum_{X_i < B} (X_i - B)^2}{n_{<B}} $$
```python
B = 19
lows_B = [e for e in X if e <= B]
semivar_B = sum(map(lambda x: (x - B)**2,lows_B))/len(lows_B)
print('Target semivariance of X:', semivar_B)
print('Target semideviation of X:', np.sqrt(semivar_B))
```
## These are Only Estimates
All of these computations will give you sample statistics, that is standard deviation of a sample of data. Whether or not this reflects the current true population standard deviation is not always obvious, and more effort has to be put into determining that. This is especially problematic in finance because all data are time series and the mean and variance may change over time. There are many different techniques and subtleties here, some of which are addressed in other lectures in this series.
In general do not assume that because something is true of your sample, it will remain true going forward.
## References
* "Quantitative Investment Analysis", by DeFusco, McLeavey, Pinto, and Runkle
---
**Next Lecture:** [Statistical Moments](Lecture08-Statistical-Moments.ipynb)
[Back to Introduction](Introduction.ipynb)
---
*This presentation is for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation for any security; nor does it constitute an offer to provide investment advisory or other services by QuantRocket LLC ("QuantRocket"). Nothing contained herein constitutes investment advice or offers any opinion with respect to the suitability of any security, and any views expressed herein should not be taken as advice to buy, sell, or hold any security or as an endorsement of any security or company. In preparing the information contained herein, the authors have not taken into account the investment needs, objectives, and financial circumstances of any particular investor. Any views expressed and data illustrated herein were prepared based upon information believed to be reliable at the time of publication. QuantRocket makes no guarantees as to their accuracy or completeness. All information is subject to change and may quickly become unreliable for various reasons, including changes in market conditions or economic circumstances.*Se muestra íntegramente con atribución según la licencia de la fuente. Licencia: CC BY 4.0
Este resumen lo redactó el agente de investigación de Stratmill a partir del original; no es una copia de la fuente.