Saya mencoba merencanakan distribusi Gaussian terpotong (menggunakan scipy ) dengan rata-rata 0.5, dan distribusi standar 1.0. Distribusi terpotong menjadi hanya pada interval (0,1).

x = np.linspace(0,1,100)
dist=truncnorm(a=0,b=1,loc=0.5, scale = 1.0)
plt.plot(x, dist.pdf(x), 'k-', lw=2, label='normalised truncated Gaussian')

Namun saya mendapatkan ini sebagai gantinya:

enter image description here

Semuanya setelah x=0.5 tampak normal tetapi di bawah itu Anda tiba-tiba turun ke nol. Namun distribusi hanya boleh nol di luar (0,1). Apa yang terjadi dan bagaimana cara memperbaikinya?

1
piccolo 13 Agustus 2019, 23:12

1 menjawab

Jawaban Terbaik

Anda menyuruhnya untuk memplot seperti itu dengan loc yang menggeser plot.

dist=truncnorm(a=0,b=1,loc=0.5, scale = 1.0) seharusnya dist=truncnorm(a=0,b=1, scale = 1.0) untuk mendapatkan plot standar.

Dari kode sumber di truncnorm() :

Untuk MLE distribusi seragam, lokasi adalah data minimum, dan skala adalah maksimum dikurangi minimum. (Baris 6570)

2
Brennan 13 Agustus 2019, 20:59