从 python Scipy 中的连续三角形分布中提取
Drawing from a continuous triangular distribution in python Scipy
如何从具有 mode=0
、lower limit=-1
和 upper limit=1
的连续三角形分布中绘制并获得某些值 x
的 CDF。我不明白如何设置参数。我想获得相当于在 Scipy
中执行 numpyp.random.triangular(left=-1, mode=0, right=1)
的效果。
我尝试了以下操作,但我不确定这是否是我所追求的。
scipy.stats.triang.cdf([-1,-0.5,0,0.5,1], c=0.5, loc=-1, scale=2)
并获得:array([ 0, 0.125, 0.5, 0.875, 1.])
这似乎是正确的。
我不明白为什么
scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)
正在生成错误消息
_argcheck() missing 1 required positional argument: 'c'
尽管提供了 c
参数。
看来你的CDF函数参数是正确的。一般来说,如果你有 left
、mode
和 right
被 numpy.random.triangular
使用,你可以使用
将它们转换为 scipy.stats.triang
的参数]
c = (mode - left) / (right - left)
loc = left
scale = right - left
expect
方法的参数可能令人困惑。你试过这个:
scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)
正确的叫法是
In [91]: triang.expect(lambda x: x, (0.5,), loc=0.5, scale=1)
Out[91]: 1.0
第二个参数是一个包含形状参数的元组,在本例中是元组(c,)
。形状参数没有单独的关键字参数。
要从以 0 为中心的宽度为 2 的三角形分布中抽取样本,请使用 scipy.triang
的 rvs
方法,以及 c=0.5
、loc=-1
和 scale=2
。例如下面抽取10个样本:
In [96]: triang.rvs(c=0.5, loc=-1, scale=2, size=10)
Out[96]:
array([-0.61654942, 0.03949263, 0.44191603, -0.76464285, -0.5474533 ,
0.00343265, 0.222072 , -0.14161595, 0.46505966, -0.23557379])
如何从具有 mode=0
、lower limit=-1
和 upper limit=1
的连续三角形分布中绘制并获得某些值 x
的 CDF。我不明白如何设置参数。我想获得相当于在 Scipy
中执行 numpyp.random.triangular(left=-1, mode=0, right=1)
的效果。
我尝试了以下操作,但我不确定这是否是我所追求的。
scipy.stats.triang.cdf([-1,-0.5,0,0.5,1], c=0.5, loc=-1, scale=2)
并获得:array([ 0, 0.125, 0.5, 0.875, 1.])
这似乎是正确的。
我不明白为什么
scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)
正在生成错误消息
_argcheck() missing 1 required positional argument: 'c'
尽管提供了 c
参数。
看来你的CDF函数参数是正确的。一般来说,如果你有 left
、mode
和 right
被 numpy.random.triangular
使用,你可以使用
scipy.stats.triang
的参数]
c = (mode - left) / (right - left)
loc = left
scale = right - left
expect
方法的参数可能令人困惑。你试过这个:
scipy.stats.triang.expect(func=lambda x: x, c = 0.5, loc=0.5, scale=1)
正确的叫法是
In [91]: triang.expect(lambda x: x, (0.5,), loc=0.5, scale=1)
Out[91]: 1.0
第二个参数是一个包含形状参数的元组,在本例中是元组(c,)
。形状参数没有单独的关键字参数。
要从以 0 为中心的宽度为 2 的三角形分布中抽取样本,请使用 scipy.triang
的 rvs
方法,以及 c=0.5
、loc=-1
和 scale=2
。例如下面抽取10个样本:
In [96]: triang.rvs(c=0.5, loc=-1, scale=2, size=10)
Out[96]:
array([-0.61654942, 0.03949263, 0.44191603, -0.76464285, -0.5474533 ,
0.00343265, 0.222072 , -0.14161595, 0.46505966, -0.23557379])