繁体   English   中英

Python Scipy截断指数分布

[英]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.truncexponrv_continuous子类的rv_continuous rv_continuous类具有ab参数,这些参数定义了分布支持的下限和上限 truncexpon a参数固定为0:

truncexpon = truncexpon_gen(a=0.0, name='truncexpon')

因此,默认情况下truncexpon的支持范围从0b 根据文档

truncexpon.pdf(x, b, loc, scale)等同于truncexpon.pdf(y, b) / scale其中y = (x - loc) / scale

因此,当y0变为bxloc变为b*scale + loc 因此,要使xlowerupper ,让loc = lowerb = (upper-lower)/scale

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM