考虑具有均值0和标准差1的正态分布。我想将此分布划分为9个概率相等的区域,并从每个区域中随机抽取样本。
答案 0 :(得分:3)
听起来你想要找到将概率分布函数下的区域划分为相等概率段的值。这可以通过应用norminv函数在matlab中完成。
在您的特定情况下:
segmentBounds = norminv(linspace(0,1,10),0,1)
segmentBounds
的任何两个相邻值现在描述正态概率分布函数的分段的边界,使得每个分段包含总概率的九分之一。
我不确定从每个样本中随机抽取数字的确切含义。一种方法是通过执行拒绝采样从每个区域采样。简而言之,对于由x0
和x1
限定的每个区域,请从y = normrnd(0,1)
中抽取样本。如果x0 < y < x1
,请保留。否则丢弃并重复。
您打算从这些区域统一采样也是可能的。为此,您可以尝试rand(1)*(x1-x0) + x0
。然而,这将产生极端分位数的问题,因为区域延伸到+/-无穷大。