どうも、月見(@Suzuka14144156)です。
今回の記事では、Pythonによるローリング統計の表示方法を解説したいと思います。
よって、この記事では、このような悩みをお持ちの方におすすめです。
- ローリング統計とは?
- ローリング統計はどのように使うの?
- Pythonでどのように表示するの?
ローリング統計とは?
- ローリング統計とは、ある一定期間における最大値、最小値、平均値、中央値、標準偏差のことです。
詳細は、以下の本で解説されています。
ローリング統計のイメージは、例えば、ビットコインの時系列データを用いると、以下のグラフになります。
一定期間の各統計量が可視化され、分析がしやすくなります。
ローリング統計の使い方
ローリング統計は、おおきく以下二つを把握することができます
- トレンド
- ボラティリティ
トレンド
筆者は、時系列データの大まかなトレンドを把握するのに用います。
例えば以下の図に示すように、緑(mean)の線の傾きが右肩上がりであれば、上昇トレンド、右肩下がりなら下落トレンドだと判断できます。
ボラティリティ
また、maxとminの幅からは、ボラティリティ(変動幅)を把握することができます。
Pythonによるローリング統計の環境の構築
今回は、Anacondaを用います。
Anacondaをインストール
以下の記事を参考にしてください。
Python Anacondaとは?|インストール〜Jupyter Notebookの立ち上げ
JupyterLabの起動
コマンドプロンプトから、以下のコードを入力ください。
jupyter lab
以下赤枠のアイコンをクリック。
これで起動します。
ライブラリのインストール
- plotly:グラフの表示
- pandas:データ処理
- pandas_data:価格取得
- yfinance:ヤフーファイナンス
以下以外のライブラリは、デフォルトでインストールされているはずです。
plotlyのインストール
コマンドプロンプトから、以下のコードを入力ください。
conda install -c plotly plotly
jupyter labでうまく表示されない場合は、以下の記事を参考にしてみてください。
【Python】Plotly と Jupyter Labでグラフが表示されない場合の解決方法
pandas_dataのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install pandas_datareader
yfinanceのインストール
コマンドプロンプトから、以下のコードを入力ください。
pip install yfinance
Pythonによるローリング統計のコード
ビットコインの価格の取得
import datetime
import pandas_datareader.data as pdr
#日付
start = "2015-1-01"
end = datetime.date.today()
#ビットコイン
tickers = ['BTC-USD',]
#ビットコインのデータを取得
data = pdr.get_data_yahoo(tickers, start, end)
今回は、2015年の1月~現在までのビットコインの価格を取得します。
ローリング統計量の計算
import warnings
#警告無視
warnings.simplefilter('ignore')
rolling_data = data['Adj Close']
#20日間のデータで統計量を算出
window = 20
#ローリング統計量の算出
rolling_data['min'] = data['Adj Close'].rolling(window = window).min()
rolling_data['mean'] = data['Adj Close'].rolling(window = window).mean()
rolling_data['std'] = data['Adj Close'].rolling(window = window).std()
rolling_data['median'] = data['Adj Close'].rolling(window = window).median()
rolling_data['max'] = data['Adj Close'].rolling(window = window).max()
rolling_data['ewma'] = data['Adj Close'].ewm(halflife=0.5,min_periods=window).mean()
plotlyによる可視化
import plotly.graph_objects as go
fig = go.Figure(data=[
go.Scatter(x=rolling_data.index, y=rolling_data['BTC-USD'], name="BTC-USD"),
go.Scatter(x=rolling_data.index, y=rolling_data['min'], name="min"),
go.Scatter(x=rolling_data.index, y=rolling_data['mean'], name="mean"),
go.Scatter(x=rolling_data.index, y=rolling_data['max'], name="max"),
])
fig.show()
Pythonでファイナンスのデータ分析の勉強方法
本
私は、以下の本で勉強しました。
かなり詳しく書かれており、とてもオススメの本です。
Udemy
Udemyはオンライン口座です。
一度購入すれば、ずっと閲覧できるのでオススメです。
私の記事
私のブログでも解説していますので参考にしてみてください。
【Python x 仮想通貨】分析方法のまとめ(テクニカル分析など)
その他参考記事
まとめ
今回の記事では、Pythonによるローリング統計の表示方法を解説しました。
私のブログではほかにも、仮想通貨の自動トレードの方法などを解説しているのでぜひ参考にしてみてください。
無料で閲覧可能で、コードをコピペして動かすことができます。
【Python|cctx】ビットコイン自動取引ツールの作成方法まとめ
コメント