Python-从具有非对称误差线的正态分布中提取

时间:2018-10-26 21:22:51

标签: python numpy random scipy statistics

我正在尝试编写代码以使用不对称误差线从正态分布中随机提取一个值。基本上,我正在尝试使用np.random.normal的等效项,但能够定义不相等的上和下西格玛。我不想使用scipy.stats.skewnorm,因为我不知道我的分布在一个参数方面有多偏斜,我只知道+和-误差线。我该怎么办?

感谢stackoverflow的帮助!

2 个答案:

答案 0 :(得分:0)

一种简单的启发式方法是从密度(例如N(均值,sigma1)到平均值)和类似N(均值,sigma2)的均值采样。首先对一个统一的[0,1]变量进行采样,如果它小于1/2,则选择第一个,否则,选择第二个。然后从所选的正态分布中采样。那将使您得到的数字在一半时间内处于错误的一侧-发生这种情况时,只需返回均值减去(样本-均值)(或均值加上(均值-样本))即可;在平均值的另一侧给您提供样本。

答案 1 :(得分:0)

@ItsAMe,我无法在评论中添加图表,因此请将其写为答案。虽然@RobertDodier的答案在技术上是正确的,但您应该了解所获得的分布类型。

下面,我绘制了两个在0处连接的高斯,但具有不同的sigma(误差线,sigmas = 2和0.7)。也许这就是您真正想要的,但是对我来说,很难想象将要产生或需要什么样的过程来模拟这种奇怪的分布。是不是自然界或某些模型中确实存在这种东西?

enter image description here