Pandas でローリング標準偏差を計算する

Olorunfemi Akinlua 2024年2月16日
  1. ローリング標準偏差を計算する rolling_std() 関数の廃止
  2. rolling() 関数を使用してローリング標準偏差を計算する
Pandas でローリング標準偏差を計算する

統計はデータ分析の大部分を占めており、さまざまな統計ツールを使用すると有用な情報が明らかになります。 Python と Pandas を使用すると、関数をすばやく使用して、平均から標準偏差までの重要な統計値を取得できます。

この記事では、Pandas でローリング標準偏差を計算する方法について説明します。

ローリング標準偏差を計算する rolling_std() 関数の廃止

標準偏差は分散の平方根ですが、移動時間枠では、ローリング標準偏差 (または移動標準偏差) と呼ばれるより包括的なツールが必要です。 ローリング標準偏差を使用すると、確認指標 として機能する移動時間枠内のデータの移動 (ボラティリティ) の測定値を取得できます。

従来の統計コードでは、ローリング標準偏差を計算するために、Pandas の rolling_std() 関数が使用されていました。 ただし、pandas 0.19.0 の後、ローリング標準偏差を計算するには、rolling() 関数 が必要です。これは、平均値から標準偏差までのすべてのローリング ウィンドウ計算をカバーします。

rolling() 関数を使用してローリング標準偏差を計算する

rolling() 関数を使用すると、標準偏差をローリングするための特定の関数は必要ありません。 rolling() 関数を使用して、データセットのローリング ウィンドウ計算を取得し、meanstd などの一般的な統計関数を適用して、ローリング (または移動) 統計値を取得する必要があります。 .

説明のために、numpy ライブラリを使用してランダム化された時系列 (2015 年から 2025 年まで) を作成します。

コード:

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)

出力:

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

次に、DataFrame で rolling() 関数を使用します。その後、rolling() の戻り値に std() 関数を適用します。

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

出力:

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

これで、開発したランダム化されたデータセットのローリング標準偏差が得られました。

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