Python で累積分布関数を計算する

Najwa Riyaz 2023年1月30日
  1. Python で numpy.arange() を使用して CDF を計算する
  2. Python で numpy.linspace() を使用して CDF を計算する
Python で累積分布関数を計算する

累積分布関数または CDF という用語は、関数 y=f(x) です。ここで、y は、整数 x または x よりも小さい任意の数が分布からランダムに選択される確率を表します。。

これは、NumPy ライブラリの次の関数を使用して Python で計算されます。

  1. 等間隔の値の ndarray を返す numpy.arange() 関数。
  2. numpy.linspace() 関数。指定された間隔内で等間隔の値の ndarray を返します。

Python で numpy.arange() を使用して CDF を計算する

NumPy 標準ライブラリには、Python で CDF を決定するために使用される arange() 関数が含まれています。

このためには、最初に NumPy ライブラリをインポートします。

arange() 関数は、等間隔の値の ndarray を返します。

以下は、Python で numpy.arange() 関数を使用した CDF 関数の実装を示す例です。

import matplotlib.pyplot as plt
import numpy

data = numpy.random.randn(5)
print("The data is-", data)
sorted_random_data = numpy.sort(data)
p = 1.0 * numpy.arange(len(sorted_random_data)) / float(len(sorted_random_data) - 1)
print("The CDF result is-", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

ここで、randn() 関数は、標準正規分布を使用してデータのサンプルを返すために使用されます。randn(5) が言及されているため、1Darray は 5つのランダムな値で構築されます。

次に、sort() 関数を使用してデータを並べ替え、その後、arange() 関数を使用して CDF を計算します。

出力:

The data is- [ 0.14213322 -1.28760908  0.94533922  0.82004319  1.08232731]
The CDF result is- [0.   0.25 0.5  0.75 1.  ]

グラフは、CDF 関数に従って表示されます。

Python 累積分布関数

Python で numpy.linspace() を使用して CDF を計算する

NumPy 標準ライブラリには、Python で CDF を決定するために使用される linspace() 関数が含まれています。このためには、最初に NumPy ライブラリをインポートします。

linspace() 関数は、指定された間隔で等間隔​​の数値の ndarray を返します。

これは、Python で numpy.linspace() を使用した CDF 関数の実装を示す例です。

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(5)
print("The data is-", data)
sorted_random_data = np.sort(data)
np.linspace(0, 1, len(data), endpoint=False)

print("The CDF result using linspace =\n", p)

fig = plt.figure()
fig.suptitle("CDF of data points")
ax2 = fig.add_subplot(111)
ax2.plot(sorted_random_data, p)
ax2.set_xlabel("sorted_random_data")
ax2.set_ylabel("p")

ここで、randn() 関数は、標準正規分布を使用してデータのサンプルを返すために使用されます。次に、sort() 関数を使用してデータを並べ替え、その後、arange() 関数を使用して CDF を計算します。

出力:

The data is- [-0.92106668 -0.05998132  0.02102705 -0.84778184  0.90815869]
The CDF result using linspace =
 [0.   0.25 0.5  0.75 1.  ]

グラフは、以下の CDF 関数に従って表示されます。

python cdf 2

関連記事 - Python Math