特定の平均と標準偏差のPDFグラフを出力する以下のコードがあります。
次に、特定の値の実際の確率を見つける必要があります。たとえば、平均が0で、値が0の場合、確率は1です。これは通常、曲線の下の面積を計算することによって行われます。これに似ています:
http://homepage.divms.uiowa.edu/~mbognar/applets/normal.html
この問題への取り組み方がわからない
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
def normal(power, mean, std, val):
a = 1/(np.sqrt(2*np.pi)*std)
diff = np.abs(np.power(val-mean, power))
b = np.exp(-(diff)/(2*std*std))
return a*b
pdf_array = []
array = np.arange(-2,2,0.1)
print array
for i in array:
print i
pdf = normal(2, 0, 0.1, i)
print pdf
pdf_array.append(pdf)
plt.plot(array, pdf_array)
plt.ylabel('some numbers')
plt.axis([-2, 2, 0, 5])
plt.show()
print
これを自分で実装する理由がない限り。これらの関数はすべて scipy.stats.norm で利用できます。
cdfを要求して、次のコードを使用すると思います:
from scipy.stats import norm
print(norm.cdf(x, mean, std))
_x = a
_から_x = b
_までの曲線y = f(x)
の下の領域は、_x = a
_から_x = b
_までのf(x)dx
の積分と同じです。 。 Scipy を使用すると、積分をすばやく簡単に行うことができます。そして、あなたが理解しているように、その領域で単一の点を見つける確率は1ではありません。なぜなら、曲線の下の総面積は1であるという考えです(それがデルタ関数である場合を除きます)。したがって、関心のある特定の値に対して_0 ≤ probability of value < 1
_を取得する必要があります。それを行うにはさまざまな方法があるかもしれませんが、従来の方法は、x軸に沿って信頼区間を割り当てることです (like this )。コーディングを続ける前に、ガウス曲線と正規化について調べておきます。