Generator.noncentral_f – 非心F分布から乱数配列を作成する方法

Generator.noncentral_fは、NumPyのrandomモジュールのジェネレータメソッドで、非心F分布から乱数配列を生成します。

非心F統計量は、実験のpower(統計的仮説検定において、帰無仮説が偽であるときに誤らずに帰無仮説を棄却する確率)を計算する際に重要です。帰無仮説が真の場合、F統計量はF分布に従います。帰無仮説が真でない場合、F統計量は非心F分布に従います。

ここでは、この非心F分布の乱数配列を生成するGenerator.noncentral_fについて解説します。

なおF分布については以下で解説しています。

目次

1. 書式

Generator.noncentral_f

書き方:

Generator.noncentral_f(dfnum, dfden, nonc, size=None)

パラメーター:

dfnum: float or array_like of floats
集団間の自由度(>1)
dfden: float or array_like of floats
集団内の自由度(>0)
nonc: float or array_like of floats
非心度(>=0)
size: int or tuple of ints, optional
出力する配列のshape。例えば、(m, n, k)を渡すとshape(m, n, k)の乱数配列を返す。デフォルト値のNoneで、dfnum, dfden, noncがともにスカラーの場合は、乱数を1つ返す。それ以外の場合はnp.broadcast(dfnum, dfden, nonc).sizeの乱数配列を返す。

戻り値: 

out: ndarray or scalar
指定のパラメータの非心F分布からの乱数

2. サンプルコード

それではサンプルコードを見ていきましょう。

まずは、random.default_rng コンストラクタでジェネレータオブジェクトを作成します。『numpy.random.default_rng – 乱数生成のためのジェネレータオブジェクトの作成』に目を通しておいてください。

In [1]:
import numpy as np
rng = np.random.default_rng()
rng
Out[1]:
Generator(PCG64) at 0x7FB177387D68

こうして作成したジェネレータオブジェクト rng に対して、Generator.noncentral_fを呼び出します。

第一引数は集団間の自由度、第二引数は集団内の自由度、第三引数は非心度、第四引数は出力する配列のsizeです。

In [2]:
rng.noncentral_f(3, 20, 3.0, 5)
Out[2]:
array([3.55683157, 1.86589403, 2.58314832, 1.02227913, 3.00455071])

研究においては、帰無仮説に対する特定の代替仮説を検証するには、非心F分布を使います。その際は、分布の裾でF分布の値を超える領域を計算します。

以下では、2つの確率分布を比較できるようにしています。

In [3]:
dfnum = 3
dfden = 20
nonc = 3.0
nc_vals = rng.noncentral_f(dfnum, dfden, nonc, 1000000)
NF = np.histogram(nc_vals, bins=50, density=True)
c_vals = rng.f(dfnum, dfden, 1000000)
F = np.histogram(c_vals, bins=50, density=True)
import matplotlib.pyplot as plt
plt.plot(F[1][1:], F[0])
plt.plot(NF[1][1:], NF[0])
plt.show()

3.まとめ

以上のように、Generator.noncentral_fは、非心F分布から乱数配列を生成するジェネレータメソッドです。

以前は、numpy.random.noncentral_f関数が使われていましたが、ジェネレータメソッドを使うようにしましょう。こちらの方が、処理が高速で、大量のデータを扱う科学技術計算に適しているからです。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる