Berechnen Sie die rollierende Standardabweichung in Pandas

Olorunfemi Akinlua 16 Februar 2024
  1. Veraltete Funktion rolling_std() zur Berechnung der Rolling-Standardabweichung
  2. Verwenden Sie die Funktion rolling(), um die Rolling-Standardabweichung zu berechnen
Berechnen Sie die rollierende Standardabweichung in Pandas

Statistik ist ein großer Teil der Datenanalyse, und die Verwendung verschiedener statistischer Tools liefert nützliche Informationen. Python und Pandas ermöglichen es uns, schnell Funktionen zu verwenden, um wichtige statistische Werte vom Mittelwert bis zur Standardabweichung zu erhalten.

In diesem Artikel wird erläutert, wie die rollierende Standardabweichung in Pandas berechnet wird.

Veraltete Funktion rolling_std() zur Berechnung der Rolling-Standardabweichung

Die Standardabweichung ist die Quadratwurzel der Varianz, aber über einen gleitenden Zeitrahmen benötigen wir ein umfassenderes Werkzeug namens rollierende Standardabweichung (oder gleitende Standardabweichung). Mit rollierender Standardabweichung können wir eine Messung der Bewegung (Volatilität) der Daten innerhalb des sich bewegenden Zeitrahmens erhalten, die als Bestätigungsindikator dient.

Früher, und wahrscheinlicher in Legacy-Statistikcode, werden Sie zur Berechnung der rollierenden Standardabweichung die Pandas-Funktion rolling_std() sehen, die zuvor für diese Berechnung verwendet wurde. Nach Pandas 0.19.0 benötigen wir jedoch zur Berechnung der rollierenden Standardabweichung die rolling() Funktion, die alle rollenden Fensterberechnungen vom Mittelwert bis zur Standardabweichung abdeckt.

Verwenden Sie die Funktion rolling(), um die Rolling-Standardabweichung zu berechnen

Mit der Funktion rolling() brauchen wir keine spezielle Funktion für die rollierende Standardabweichung. Wir müssen die Funktion rolling() verwenden, um die rollierenden Fensterberechnungen für einen Datensatz zu erhalten, und die gängigen statistischen Funktionen wie mean, std usw. anwenden, um unsere rollierenden (oder gleitenden) statistischen Werte zu erhalten .

Zur Veranschaulichung erstellen wir eine randomisierte Zeitreihe (von 2015 bis 2025) mit der Bibliothek numpy.

Code:

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)

Ausgang:

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

Verwenden Sie dann die Funktion rolling() auf dem DataFrame, danach wenden wir die Funktion std() auf den Rückgabewert rolling() an.

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

Ausgang:

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

Jetzt haben wir die rollierende Standardabweichung des von uns entwickelten randomisierten Datensatzes.

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