生成随机数从混合物中分布
28日视图(30天)
显示旧的评论
嗨,我想从混合物中生成随机数分布定义为:
pdf_mix = p * burrpdf (x,αc k) + (1 - p) * wblpdf (x, a, b);
目的是计算一个kstest2观测数据和混合分布。
这是可能的吗?我可以得到一些帮助吗?
T PLOCOSTE
接受的答案
约翰D 'Errico
2019年8月3日
编辑:约翰D 'Errico
2019年8月3日
读到大卫的答案。但是这样让我解释,因为我觉得很多人不理解混合分布的含义或它是什么。
混合分布意味着你有两个(或更多)不同的分布。我叫他们与概率p A和B,样本来自分布,然后用概率1 - p, B的样本来自分布。
解决方案是简单。对于每一个样本,首先,选择一个随机数。如果数量小于或等于p,那么你将样本分布a如果数量超过p,那么你选择分布b容易,peasy。
让我们看看它如何工作。我将选择两个分布明显不同。
分布:限制(2、3)之间的统一
B:分布正态分布,平均0,标准偏差1。
假设1000000样本总体,足以让干净的直方图。我将p设置为0.4,随意。所以大约40%的样本将制服,60%正常。
N = 1000000;
p = 0.4;
% U是一个二进制变量指标,告诉如何
%样本为每个样本。1 - - >,0 - - > B。
U =兰德(N, 1) < = p;
nA = (U)之和;
nB = N - nA;
% preallocate X
X = 0 (N, 1);
X (U) =兰德(nA, 1) * 1 + 2;
X (- U) = randn(注1);
%最后,直方图,就给我们做了我们所期望的事情。
直方图(X, 1000)
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/232507/image.jpeg)
所以我们有一些重叠之间的分布,但很明显的混合高斯和制服,当我们预期。
总和(U)
ans =
399632年
我们会预期大约400000事件的统一。相当接近。
0评论
更多的答案(3)
大卫Goodmanson
2019年8月3日
编辑:大卫Goodmanson
2019年8月3日
你好,托马斯。
我猜你的意思是像下面这样。统一的随机变量是用来创建一个索引,选择从第一分布概率p,和从第二个概率1 - p。我随便做了两个不同的标准正态分布的分布。你不要说如果p = 2253/3849在你的情况下,但这并不是必要的,可以是任何东西。
%的正态分布参数
s1 = 1;mu1 = 1;
s2 = 2;mu2 = 5;
p = 2;
n = 1000;
R = 0 (1, n);%将是最终的结果
r =兰德(1,n);
印第安纳州= r < p;%指数分布
np =总和(印第安纳州);
R(印第安纳州)= s1 * randn (np) + mu1;% np实例
R ~(印第安纳州)= s2 * randn (1, n-np) + mu2;% n-np实例