考虑以下对2x1
Matlab中矢量的绘制,其概率分布是两个高斯分量的混合.
P=10^3; %number draws
v=1;
%First component
mu_a = [0,0.5];
sigma_a = [v,0;0,v];
%Second component
mu_b = [0,8.2];
sigma_b = [v,0;0,v];
%Combine
MU = [mu_a;mu_b];
SIGMA = cat(3,sigma_a,sigma_b);
w = ones(1,2)/2; %equal weight 0.5
obj = gmdistribution(MU,SIGMA,w);
%Draws
RV_temp = random(obj,P);%Px2
% Transform each component of RV_temp into a uniform in [0,1] by estimating the cdf.
RV1=ksdensity(RV_temp(:,1), RV_temp(:,1),'function', 'cdf');
RV2=ksdensity(RV_temp(:,2), RV_temp(:,2),'function', 'cdf');
Run Code Online (Sandbox Code Playgroud)
现在,如果我们检查是否RV1
并且通过这样做RV2
均匀分布[0,1]
ecdf(RV1)
ecdf(RV2)
Run Code Online (Sandbox Code Playgroud)
我们可以看到它RV1
是均匀分布的[0,1]
(经验cdf接近45度线)而RV2
不是.
我不明白为什么.似乎距离越远,mu_a(2)
并且mu_b(2)
通过ksdensity
合理数量的抽奖来完成的工作就越糟糕.为什么?
当你有 N(0.5,v) 和 N(8.2,v) 的混合时,生成的数据的范围比你期望的更接近的数据要大,比如 N(0,v) 和 N(0,v) ),就像在另一个维度中一样。然后你要求ksdensity
使用该范围内的 P 点来近似函数。
与标准线性插值一样,点越密集,函数的逼近效果越好(在范围内),这里的情况也是如此。因此,在 N(0.5,v) 和 N(8.2,v) 中,点“稀疏”(或者更稀疏,是一个词吗?),近似值比 N(0,v) 和 N(0 ,v) 其中点更密集。
作为一个小旁注,您是否有任何理由不ksdensity
直接应用于二元数据?另外,我无法重现您所说的观点5e2
也很好的评论。最终评论1e3
通常优于10^3
.
归档时间: |
|
查看次数: |
270 次 |
最近记录: |