使用scipy.stats.norm()
,我想找到scale
满足这些要求的标准差 ( ):
loc=0
, P(X≤-5)=0.2
到目前为止,我一直在通过反复试验来解决这个问题:
sd = 5.95 # change until requirement is met
stats.norm(loc=0,scale=sd).cdf(-5) # this should eventually reach about 0.2
如果不可能scipy.stats.norm()
,我愿意接受新的建议。
对于您给定的x
and p
,您想要的表达式是x / norm.ppf(p)
。(该方法ppf
是“百分比点函数”,通常称为逆 CDF 或分位数函数。)
例如,
In [76]: from scipy.stats import norm
In [77]: x0 = -5
In [78]: p0 = 0.2
In [79]: scale = x0 / norm.ppf(p0)
In [80]: scale
Out[80]: 5.940914749469451
In [81]: norm.cdf(x0, scale=scale)
Out[81]: 0.19999999999999996
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句