2025-03-31 公開 / 2025-03-31 更新
正規分布していないデータに対して標準偏差を当たり前のように使うのは、どうも気持ち悪いといつも感じています。そこで、データの分布形状を前提としないメジアン(中央値)を利用した統計量を使い始めています。そのため、必ずデータの分布を明かにするようにしています。
毎週末の日経平均株価のまとめで、ヒストグラムと Q-Q プロットの作成に使用しているコードをベースにした JupyterLab 向けのサンプルを紹介します。
下記の OS 環境で動作確認をしています。
![]() |
Fedora Linux 41 Workstation | x86_64 |
Python | 3.13.2 | |
jupyterlab | 4.3.5 | |
matplotlib | 3.10.1 | |
pingouin | 0.5.5 | |
seaborn | 0.13.2 |
JupyterLab を起動して、最初に必要なサンプルをインポートします。
import matplotlib.pyplot as plt import pingouin as pg import seaborn as sns import yfinance as yf
過去 3 年分の週足データを取得します。
code = 'N225' symbol = '^%s' % code ticker = yf.Ticker(symbol) # 週足で過去 3 年分のデータを取得 df = ticker.history(period='3y', interval='1wk')
ヒストグラムと Q-Q プロットを横に並べてプロットします。
fig, axes = plt.subplots(1, 2, figsize=(12, 5)) # ヒストグラム sns.histplot( df['Close'], kde=True, ax=axes[0] ) axes[0].set_xlabel("Close") axes[0].set_ylabel("count") axes[0].grid(axis = 'y') axes[0].set_title('Histogram') # Q-Q プロット pg.qqplot(df['Close'], s=10, ax=axes[1]) axes[1].set_title('Q-Q plot') axes[1].grid() plt.suptitle('Weekly data for %s (%s), n = %d' % (ticker.info['longName'], symbol, len(df))) plt.savefig('0_report_weekly_histogram_qqplot_%s.png' % code) plt.show()
下記のようなプロットが表示されます。
0 件のコメント:
コメントを投稿