如何使用x
,mode=0
和lower limit=-1
从连续的三角形分布中绘制并获取特定值upper limit=1
的CDF。我无法理解如何设置参数。我希望在numpyp.random.triangular(left=-1, mode=0, right=1)
中相当于执行Scipy
。
我尝试了以下但我不确定这是否是我所追求的。
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
参数。
答案 0 :(得分:1)
看起来你的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,)
。形状参数没有单独的关键字参数。
要从宽度为2的中心为0的三角形分布中绘制样本,请使用rvs
scipy.triang
方法,c=0.5
,loc=-1
和{{1} }。例如,以下绘制了10个样本:
scale=2