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 件のコメント:
コメントを投稿