[英]Python Scipy truncated exponential distribution
我需要構造一個截斷的指數隨機變量,其范圍在5到7之間,比率參數等於0.76。 我正在使用scipy.stats.truncexpon,loc = 5和scale = 1 / 0.76。 我不確定如何指定上限。 有任何想法嗎?
import scipy.stats as stats
import matplotlib.pyplot as plt
lower, upper, scale = 5, 7, 1/0.76
X = stats.truncexpon(b=(upper-lower)/scale, loc=lower, scale=scale)
data = X.rvs(10000)
fig, ax = plt.subplots()
ax.hist(data, normed=True)
plt.show()
stats.truncexpon
是rv_continuous
子類的rv_continuous
。 rv_continuous
類具有a
和b
參數,這些參數定義了分布支持的下限和上限 。 truncexpon
a
參數固定為0:
truncexpon = truncexpon_gen(a=0.0, name='truncexpon')
因此,默認情況下truncexpon
的支持范圍從0
到b
。 根據文檔 ,
truncexpon.pdf(x, b, loc, scale)
等同於truncexpon.pdf(y, b) / scale
其中y = (x - loc) / scale
。
因此,當y
從0
變為b
, x
從loc
變為b*scale + loc
。 因此,要使x
從lower
到upper
,讓loc = lower
和b = (upper-lower)/scale
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.