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

Python-从具有不对称误差条的正态分布中提取,python,numpy,random,scipy,statistics,Python,Numpy,Random,Scipy,Statistics,我试图编写代码,从具有不对称错误条的正态分布中随机抽取一个值。基本上,我试图使用np.random.normal的等价物,但能够定义不相等的上下sigma。我不想使用scipy.stats.skewnorm,因为我不知道我的分布在一个参数方面有多歪斜,我只知道+和-误差条。我该怎么做 感谢stackoverflow善良的人们的帮助 一个简单的启发式方法是从密度中取样,该密度从N(平均值,sigma1)到平均值,从N(平均值,sigma2)到平均值。首先对均匀[0,1]变量进行采样,如果它小于1/

我试图编写代码,从具有不对称错误条的正态分布中随机抽取一个值。基本上,我试图使用np.random.normal的等价物,但能够定义不相等的上下sigma。我不想使用scipy.stats.skewnorm,因为我不知道我的分布在一个参数方面有多歪斜,我只知道+和-误差条。我该怎么做


感谢stackoverflow善良的人们的帮助

一个简单的启发式方法是从密度中取样,该密度从N(平均值,sigma1)到平均值,从N(平均值,sigma2)到平均值。首先对均匀[0,1]变量进行采样,如果它小于1/2,则选择第一个变量,否则选择第二个变量。然后从选择的正态分布中取样。这会给你一个有一半时间是错误的数字——当这种情况发生时,只需返回均值减(样本-均值)(或均值加(均值-样本));这给了你一个与平均数相反的例子。

@ItsAMe,我不能在我的评论中加入图表,所以写下来作为答案。虽然@RobertDodier的答案在技术上是正确的,但您应该了解您得到的是哪种发行版

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


欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南,在这里申请。StackOverflow不是设计、编码、研究或教程资源。然而,若你们遵循你们在网上找到的任何资源,进行诚实的编码尝试,并遇到问题,你们会有一个很好的例子来发布。应该返回'mean+abs(v2)'或'mean-abs(v1)'。但直方图会很难看——在平均值上是不连续的。是的,从N(0,s1)中取样v1,然后从N(0,s2)中返回平均值-abs(v1)或v2,然后返回平均值+abs(v2)可能是一种更简单的说法。丑陋?我不知道这是否有区别;OP必须更多地说明他们想要这个发行版的目的。我把我的下一个评论作为一个答案,如果你看一下,会很感激的。是的,很难看。OP似乎不在,但若他们回来,我会有兴趣听听他们的评论。不对称误差条在科学中相当常见,假设误差的高斯分布也是如此。概念化是非常奇怪的(从你的情节可以明显看出)。谢谢大家@他们当然是。但通常它们来自于,比如,截断正态分布,或歪斜正态分布,或其他非零三阶矩分布。我不确定为什么蓝色曲线会出现大幅度下降。你可能会认为高斯分布在不同高度和宽度的中间,但底部节点的尖锐程度似乎有所不同odd@ItsAMe总积分等于1,每个半积分等于1/2,较小的峰值必须有较大的尾部,只有两个高斯函数粘在一起。我可以给你发Python代码来画画。