[ipywidgets] 36. F分布の自由度をIntSliderで調整して表示

ipywidgets

はじめに

F分布とは、統計の分野で分散分析(ANOVA)などに用いられる確立分布である。ここでは、分布のパラメータである自由度をIntSliderで調整することで、対話的に、自由度の異なるF分布を表示させる方法について説明する。

解説

モジュールのインポートなど

バージョン

データの生成

Scipyのstatsのfの確率密度関数pdfを用いてデータを作成する。自由度を2つとも10にして、xの値には、パーセントポイント関数であるppfを使用し、fが1%から99%の範囲をxとする。

データを表示すると以下のようになる。

Intsliderで自由度を調整して表示

IntSliderで最小値minを1, 最大値maxを100、刻み幅stepを1、初期値valueを10としてスライダーを設定する。2つ分作成する。

f(pha1,pha2)はスライダーを動かした時に実行される関数となる。xとF分布を求めてプロットにデータをセットすることで図を更新する。

スライダーを横に並べて表示するためにHBoxに入れて、display()で表示する。

Intsliderで自由度調整し、有意水準(0.05)を塗りつぶして表示

Textareaで有意水準のF値を表示する。

f_ind = np.argmin(np.abs(x_-f_95))は有意水準(0.05)のインデックスであり、このインデックス以降を、ax.fill_between(x_[f_ind:], f_pdf[f_ind:],0,fc=”pink”,alpha=.75)で塗りつぶして表示する。
このax.fill_between()はリストに入れて、リストの中を消すことでプロット上でも消えるようにして、図を更新する。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

scipy.stats.f — SciPy v1.12.0 Manual
Widget List — Jupyter Widgets 8.1.2 documentation
Widget List — Jupyter Widgets 8.1.2 documentation
F分布 - Wikipedia

コメント