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

ipywidgets

はじめに

F分布は統計学における重要な確率分布で、分散分析などに用いられます。この記事では、ipywidgetsを使って自由度をIntSliderで対話的に調整し、F分布のグラフを動的に表示する方法を解説します。

解説

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

バージョン

データの生成

Scipyのstatsモジュールにあるf分布の確率密度関数(pdf)を使ってデータを作成します。両方の自由度を10に設定し、x軸の値にはパーセントポイント関数(ppf)を使用して、確率が1%から99%の範囲に対応する値を割り当てます。

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

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

IntSliderで最小値(min)を1、最大値(max)を100、刻み幅(step)を1、初期値(value)を10に設定した2つのスライダーを作成します。

関数f(pha1,pha2)はスライダーの値が変更されたときに実行されます。この関数はx軸の値とF分布を計算し、プロットにデータをセットすることでグラフを更新します。

2つのスライダーを横に並べて表示するためにHBoxコンテナに配置し、display()関数で画面に表示します。

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

TextareaウィジェットでF分布の有意水準の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ファイル)

まとめ

ipywidgetsのIntSliderを使うことで、F分布の自由度を対話的に調整し、グラフの変化をリアルタイムで確認できます。これにより、F分布の性質や自由度による変化を直感的に理解することができ、統計学の学習や教育に役立ちます。

参考

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

コメント