次の例でスクリプトを作成しました。既知のパラメータでサンプルを生成する、CDF、PDFなどを計算する方法など、私たちが望む機能を実装するためにAPIを使用する方法を示します。これを示す画像も添付します。
#load libraries
import scipy.stats as stats
#lower, upper, mu, and sigma are four parameters
lower, upper = 0.5, 1
mu, sigma = 0.6, 0.1
#instantiate an object X using the above four parameters,
X = stats.truncnorm((lower - mu)/sigma, (upper - mu)/sigma, loc=mu, scale=sigma)
#generate 1000 sample data
samples = X.rvs(1000)
#compute the PDF of the sample data
pdf_probs = stats.truncnorm.pdf(samples, (lower-mu)/sigma, (upper-mu)/sigma, mu, sigma)
#compute the CDF of the sample data
cdf_probs = stas.truncnorm.cdf(samples, (lower-mu)/sigma, (upper-mu)/sigma, mu, sigma)
#make a histogram for the samples
plt.hist(samples, bins= 50,normed=True,alpha=0.3,label='histogram');
#plot the PDF curves
plt.plot(samples[samples.argsort()],pdf_probs[samples.argsort()],linewidth=2.3,label='PDF curve')
#plot CDF curve
plt.plot(samples[samples.argsort()],cdf_probs[samples.argsort()],linewidth=2.3,label='CDF curve')
#legend
plt.legend(loc='best')
コーディングで冒険野郎マクガイバーをエミュレートしてみませんか? –
ガウス分布ではありませんが、ガウス分布を望まない場合もあります。私は無作為分布(非常に幅の広いガウス型からのピッキング)、デルタ関数(ガウス型が非常に狭くなる)に非常に近いものまで調整可能な分布を返したいと思います。 –