Cálculo de Desviación Estándar en Series de Tiempo con NumPy

Clase 23 de 29Curso de Introducción al Álgebra Lineal: Vectores

Contenido del curso

Vectores

Resumen

Cuando trabajamos con grandes cantidades de datos, necesitamos herramientas que nos digan qué tan dispersos están esos datos respecto a un valor central. La desviación estándar es precisamente esa herramienta, y comprenderla desde la perspectiva de vectores abre la puerta a aplicaciones poderosas en ciencia de datos, estadística e inversiones.

¿Qué son las series de tiempo y por qué importan?

Un vector no solo representa una cantidad geométrica. También puede funcionar como una serie de tiempo [0:08], es decir, una secuencia de mediciones ordenadas: una medida en el tiempo uno, otra en el tiempo dos, y así sucesivamente hasta el tiempo n. Los tiempos no se registran de forma explícita, sino que quedan implícitos conforme agregamos datos al vector.

Por ejemplo, si nuestro vector es x, la componente x₀ corresponde a la primera medida, x₁ a la segunda, x₂ a la tercera y así hasta la medida n. Esta forma de pensar los vectores resulta muy útil porque más adelante permite interpretar incluso matrices como series de tiempo multidimensionales [1:19].

¿Cómo se construye el vector de-meaned y qué representa?

Para calcular la desviación estándar, primero necesitamos un vector auxiliar llamado vector de-meaned o vector sin promedio [2:22]. Se define como:

  • x̃ = x − avg(x) · 1

Donde 1 es un vector con el promedio de x en todas sus entradas. Esta operación garantiza que el promedio de x̃ sea cero [2:42]. Es decir, le quitamos el sesgo del promedio para observar cómo se distribuyen los elementos respecto a ese valor central.

¿Qué es la desviación estándar de un vector?

La desviación estándar de un n-vector x es el RMS (root mean square) del vector de-meaned [3:04]. En fórmula:

  • std(x) = ‖x − avg(x) · 1‖ / √n

Esta cantidad nos dice la variación típica por la cual cada entrada se desvía del promedio del vector [3:26].

¿Cómo se interpreta con una distribución gaussiana?

Imagina que mides la altura de todas las personas de tu trabajo. Al graficar esos datos obtienes un histograma [4:27] que, con suficientes mediciones, tiende a seguir una distribución gaussiana [4:34]. El valor central de esa campana es el promedio (mu) [4:47]. Una desviación estándar (sigma) a cada lado del promedio captura aproximadamente el 68.2% de los datos [5:00].

Esto tiene aplicaciones prácticas directas. Si registras cuánto te pagan por trabajos freelance, sabrías que:

  • Tu ingreso esperado es el valor central (promedio).
  • La cota mínima y máxima probables están a una sigma de distancia [5:38].
  • Eventos fuera de esa ventana pueden ocurrir, pero son menos frecuentes.

¿Cómo calcular la desviación estándar en Python con NumPy?

Consideremos el vector [1, -2, 3, 2]. Su promedio es 1, y el vector sin promedio resulta [0, -3, 2, 1], con una desviación estándar de 1.87 [6:22].

python import numpy as np

x = np.array([1, -2, 3, 2])

Promedio

np.mean(x) # Resultado: 1.0

Vector de-meaned

u = np.array([1, 1, 1, 1]) xt = x - np.mean(x) * u # [0, -3, 2, 1]

Verificar promedio cero

np.mean(xt) # Resultado: 0.0

Desviación estándar manual

np.linalg.norm(xt) / np.sqrt(len(xt)) # 1.87

Desviación estándar con función directa

np.std(x) # 1.87

La función np.std [8:07] realiza todo el cálculo de forma directa sobre el vector original, sin necesidad de construir el vector de-meaned manualmente.

¿Qué significa una desviación estándar igual a cero?

Si std(x) = 0, entonces todas las componentes del vector son idénticas [5:55], es decir, x es un múltiplo escalar del vector 1. Una desviación muy pequeña indica que las entradas son similares entre sí, aunque no exactamente iguales.

¿Qué relación existe entre RMS, promedio y desviación estándar?

Existe una identidad fundamental [9:33]:

  • rms(x)² = avg(x)² + std(x)²

Esta relación conecta las tres medidas escalares más importantes de un vector. En estadística, el promedio se denota como μ (mu) y la desviación estándar como σ (sigma) [9:03]. Además, en la práctica es común encontrar la corrección de Bessel [9:25], que usa √(n−1) en lugar de √n, y es la versión que NumPy utiliza por defecto con np.std(x, ddof=1).

Con estas herramientas ya es posible avanzar hacia aplicaciones financieras, como calcular el riesgo y los retornos esperados de una inversión. ¿Has aplicado la desviación estándar en algún proyecto propio? Comparte tu experiencia.

      Cálculo de Desviación Estándar en Series de Tiempo con NumPy