SciPy scipy.stats.norm

Bhuwan Bhatt 2023年1月30日
  1. 二項分布を計算するための scipy.stats.norm() の構文:
  2. コード例:scipy.stats.norm を使用した特定の値の確率分布関数(PDF)値の計算
  3. サンプルコード:scipy.stats.norm() を使用した分布の累積分布関数(CDF)の計算
  4. コード例:scipy.stats.norm() を使用した分布のランダム変量(rvs)の計算
SciPy scipy.stats.norm

Python Scipy scipy.stats.norm オブジェクトは、正規分布を分析し、使用可能なさまざまな方法を使用してさまざまな分布関数値を計算するために使用されます。

二項分布を計算するための scipy.stats.norm() の構文:

使用されるさまざまな方法に基づいて、いくつかの一般的な最適パラメータを以下に示します。

scipy.stats.norm.method(x, loc, scale, size, moments)

scipy.stats.norm() オブジェクトで使用可能なメソッド

norm.pdf() n 次元配列を返します。これは、x で計算された確率密度関数です。
norm.cdf() x のすべての値の累積確率を返します。
norm.rvs() ランダムな変量を返します。
norm.stats() 定義された mvsk に従って、平均、分散、標準偏差、または尖度を返します。
norm.logpdf() 確率分布関数の対数を返します。
norm.median() 正規分布の中央値を返します。

パラメーター

x 配列のような。これは、均等なサイズのサンプルを表す値のセットです。
loc 位置パラメータ。loc は平均値を表します。デフォルト値は 0 です。
scale スケールパラメータ。scale は標準偏差を表します。デフォルト値は 1 です。
moments これは、統計、つまり平均、分散、標準偏差、および尖度を計算するために使用されます。デフォルト値は mv です。

戻り値

使用したメソッドに従って値を返します。

コード例:scipy.stats.norm を使用した特定の値の確率分布関数(PDF)値の計算

scipy.stats.norm.pdf() メソッドを使用して、指定された観測値の確率分布関数(PDF)値を生成できます。

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-3, 3, 100)
pdf_result = stats.norm.pdf(x, loc=0, scale=1)

plt.plot(x, pdf_result)
plt.xlabel("x-data")
plt.ylabel("pdf_value")
plt.title("PDF of a Normal Distribution with mean=0 and sigma=1")
plt.show()

出力:

mean=0, sigma=1 の正規分布の PDF

x が PDF が決定される観測値を表すと仮定します。次に、x の各値の確率分布関数(PDF)を計算し、Matplotlib を使用して分布関数をプロットします。

確率密度関数の値を計算するには、基礎となる正規分布の平均と標準偏差を知る必要があります。平均と標準偏差の値は、pdf メソッドでそれぞれ locscale パラメーターとして渡されます。

上記の例では、基礎となる分布の平均値が 0 で標準偏差値が 1 であると仮定して、pdf 値を計算します。平均に近い観測値は、より高い確率を持っています。一方、上のプロットに見られるように、平均から離れた値は確率が低くなります。

コード例: 平均値と標準偏差値を scipy.stats.norm に設定する

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-10, 10, 100)
pdf_result = stats.norm.pdf(x, loc=3, scale=2)

plt.plot(x, pdf_result)
plt.xlabel("x-data")
plt.ylabel("pdf_value")
plt.title("PDF of a Normal Distribution with mean=3 and sigma=2")
plt.show()

出力:

mean = 3 および sigma = 2 の正規分布の PDF

これは、平均値 3 とシグマ値 2 の正規分布の PDF プロットです。したがって、3 に近い観測は確率が高く、3 から離れた観測は確率が低くなります。

サンプルコード:scipy.stats.norm() を使用した分布の累積分布関数(CDF)の計算

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = np.linspace(-3, 3, 100)
cdf_values = stats.norm.cdf(x, loc=0, scale=1)

plt.plot(x, cdf_values)
plt.xlabel("x-data")
plt.ylabel("pdf_value")
plt.title("CDF of a Normal Distribution with mean=0 and sigma=1")
plt.show()

出力:

mean=3、sigma=2 の正規分布の CDF

これは pdf の積分です。与えられた分布の CDF が増加していることがわかります。CDF は、母集団から取得された値が、ある値以下の確率値を持つことを示しています。

コード例:scipy.stats.norm() を使用したポイントでの累積分布関数(CDF)値の計算

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import stats

x = 2
cdf_value = stats.norm.cdf(x, loc=0, scale=1)
print(
    "CDF Value of x=2 in normal distribution with mean 0 and standard deviation 1 is :"
    + str(cdf_value)
)

出力:

CDF Value of x=2 in normal distribution with mean 0 and standard deviation 1 is :0.9772498680518208.

これは、平均= 0、標準偏差 1 が 0.977 の正規分布からサンプリングしているときに、2 以下の値が発生する確率を意味します。

コード例:scipy.stats.norm() を使用した分布のランダム変量(rvs)の計算

import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy.stats import norm

rvs_values = stats.norm.rvs(loc=5, scale=10, size=(5, 2))
print("The random generated value are\n", rvs_values)

出力:

The random generated value are
 [[ -8.38511257  16.81403567]
 [ 15.78217954  -8.92401338]
 [ 14.55202276  -0.6388562 ]
 [  2.19024898   3.75648045]
 [-10.95451165  -3.98232268]]

ここで、rvs 値は、平均 5 および標準偏差 10 の正規分布からサンプリングされたランダムに生成された変量です。size は、配列出力のサイズを指定します。