Python-Scipy截断指数分布

Python-Scipy截断指数分布,python,scipy,Python,Scipy,我需要构造一个截断指数随机变量,在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=lo

我需要构造一个截断指数随机变量,在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
类具有对分发的支持
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=(上下)/刻度


stats.truncexpon
是一个。
rv_continuous
类具有对分发的支持
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

谢谢您的回答!问题在于,当我将刻度设置为非1的值时,对分布的支持将发生变化,不再是从低到高(从低开始,但不在高结束)。对。我修改了代码以考虑到规模的变化。谢谢你的回答!问题在于,当我将刻度设置为非1的值时,对分布的支持将发生变化,不再是从低到高(从低开始,但不在高结束)。对。我修改了代码以考虑到规模的变化。