Pythonでは、SciPyとNumPyというライブラリを使用して正規分布の分位数を計算することができます。
まず、SciPyのscipy.stats.norm
クラスを使用して正規分布を生成します。このクラスには、平均(loc
パラメータ)と標準偏差(scale
パラメータ)を指定することができます。
次に、ppf
メソッドを使用して分位数を計算します。このメソッドは、累積分布関数(CDF)の逆関数であり、指定した確率に対応する分位数を返します。
以下に、Pythonで正規分布の90%分位数を計算するコードの例を示します。
from scipy.stats import norm
# 正規分布の生成
mu = 0 # 平均
sigma = 1 # 標準偏差
dist = norm(loc=mu, scale=sigma)
# 90%分位数の計算
quantile_90 = dist.ppf(0.9)
print(f"The 90th percentile of the standard normal distribution is {quantile_90}")
このコードは、平均0、標準偏差1の正規分布を生成し、その90%分位数を計算しています。
また、NumPyのnumpy.quantile
関数を使用して、データセットの分位数を計算することも可能です。この関数は、データセットと分位数を引数に取り、対応する値を返します。
以下に、データセットの90%分位数を計算するコードの例を示します。
import numpy as np
from scipy.stats import norm
# 正規分布からランダムサンプルの生成
mu = 0 # 平均
sigma = 1 # 標準偏差
N = 1000 # サンプル数
x = norm.rvs(loc=mu, scale=sigma, size=N)
# 90%分位数の計算
data_quantile_90 = np.quantile(x, 0.9)
print(f"The 90th percentile of the dataset is {data_quantile_90}")
このコードは、平均0、標準偏差1の正規分布から1000個のランダムサンプルを生成し、その90%分位数を計算しています。
以上のように、PythonのSciPyとNumPyライブラリを使用すれば、正規分布の分位数やデータセットの分位数を簡単に計算することができます。