簡體   English   中英

使用scipy.stats進行pdf估算

[英]pdf estimation with scipy.stats

假設我計算Beta(4,8)的密度:

from scipy.stats import beta
rv = beta(4, 8)
x = np.linspace(start=0, stop=1, num=200)
my_pdf = rv.pdf(x)

為什么pdf的積分不等於1?

> my_pdf.sum()
199.00000139548044

pdf上的積分是一個。 你可以通過使用scipy的數值積分來看到這一點

>>> from scipy.integrate import quad
>>> quad(rv.pdf, 0, 1)
(0.9999999999999999, 1.1102230246251564e-14)

或者通過編寫自己的ad-hoc集成(在此示例中使用梯形規則)

>>> x = numpy.linspace(start=0, stop=1, num=201)
>>> (0.5 * rv.pdf(x[0]) + rv.pdf(x[1:-1]).sum() + 0.5 * rv.pdf(x[-1])) / 200.0
1.0000000068732813

rv.pdfx每個值處返回pdf的值。 它並不總和,因為你實際上並不是計算積分。 如果你想這樣做,你需要將你的總和除以間隔的數量,即len(x) - 1 ,即199.這將給你一個非常接近1的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM