Calcule la desviación estándar móvil en pandas

Olorunfemi Akinlua 16 febrero 2024
  1. Obsoleta la función rolling_std() para calcular la desviación estándar móvil
  2. Use la función rolling() para calcular la desviación estándar móvil
Calcule la desviación estándar móvil en pandas

Las estadísticas son una gran parte del análisis de datos, y el uso de diferentes herramientas estadísticas revela información útil. Python y Pandas nos permiten usar funciones rápidamente para obtener valores estadísticos importantes desde la media hasta la desviación estándar.

Este artículo discutirá cómo calcular la desviación estándar móvil en Pandas.

Obsoleta la función rolling_std() para calcular la desviación estándar móvil

La desviación estándar es la raíz cuadrada de la varianza, pero en un período de tiempo móvil, necesitamos una herramienta más completa llamada desviación estándar móvil (o desviación estándar móvil). Con la desviación estándar móvil, podemos obtener una medida del movimiento (volatilidad) de los datos dentro del marco de tiempo móvil, que sirve como indicador de confirmación.

Anteriormente, y más probablemente en el código estadístico heredado, para calcular la desviación estándar móvil, verá el uso de la función rolling_std() de Pandas, que se utilizó anteriormente para realizar dicho cálculo. Sin embargo, después de pandas 0.19.0, para calcular la desviación estándar móvil, necesitamos la función rolling(), que cubre todos los cálculos de la ventana móvil desde la media hasta la desviación estándar.

Use la función rolling() para calcular la desviación estándar móvil

Con la función rolling(), no necesitamos una función específica para la desviación estándar móvil. Tenemos que usar la función rolling() para obtener los cálculos de ventanas móviles para un conjunto de datos y aplicar las funciones estadísticas populares, como mean, std, etc., para lograr nuestros valores estadísticos móviles (o móviles). .

Para ilustrar, crearemos una serie temporal aleatoria (de 2015 a 2025) utilizando la biblioteca numpy.

Código:

import pandas as pd
import numpy as np

df = pd.Series(np.random.randn(4000), index=pd.date_range("1/1/2015", periods=4000))

print(df)

Producción :

2015-01-01   -0.143644
2015-01-02   -1.035695
2015-01-03    0.338760
2015-01-04   -0.002474
2015-01-05   -1.598976
                ...
2025-12-09    1.227600
2025-12-10   -1.188466
2025-12-11   -0.740481
2025-12-12   -0.674217
2025-12-13   -1.089239
Freq: D, Length: 4000, dtype: float64

Luego, use la función rolling() en el DataFrame, después de lo cual aplicamos la función std() en el valor de retorno rolling().

print(df.rolling(window=60).std())

Producción :

2015-01-01         NaN
2015-01-02         NaN
2015-01-03         NaN
2015-01-04         NaN
2015-01-05         NaN
                ...
2025-12-09    0.889344
2025-12-10    0.902873
2025-12-11    0.894309
2025-12-12    0.898170
2025-12-13    0.894943
Freq: D, Length: 4000, dtype: float64

Ahora, tenemos la desviación estándar móvil del conjunto de datos aleatorios que desarrollamos.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn