比较多变量分布

时间:2013-04-08 08:43:28

标签: matlab multivariate-testing multivariate-partition

我有一组多变量实例,我需要从这些实例中提取代表集;例如,如果我有100,000个多变量实例,我想提取1000个代表原始分布的实例。我使用Latin Hypercube Sampling和Random Sampling来提取两个代表集,现在我想检查这两个代表集与原始集的相关程度。

如果我进一步阐述;

我有100,000个多变量实例(我们称之为A)

我从'A'中得到两个代表性的样本(每个集合将有1000个实例;让我们称这两个集合为B和C)

我想检查'B'和'C'是否保留原始'A'的分布。

提前多多感谢!

1 个答案:

答案 0 :(得分:1)

这更像是一个统计问题,但这是一个大纲。通常你会使用卡方检验来比较分布。基本步骤如下。

  1. Bin每个数据集。尝试设置垃圾箱,使每个垃圾箱中至少有5个或更多样品。 (对所有数据集使用相同的bin)。

  2. 使用大样本“A”确定每个bin中预期的样本数(称为f_e)。 (顺便说一句。请注意,对于任何特定bin,f_e将是该特定bin中数字样本的 1/100 ,因为样本A包含B或C的数据点的100倍。)

  3. 测试其中一个样本(比如B)计算总和:S = (f_o - f_e)^ 2 / fe 的所有区间的总和,其中f_o是观察到的频率在垃圾箱里。

  4. 这个总和是一个卡方变量,其自由度比你正在使用的箱子总数少一个。

  5. 计算 1 - chi2cdf(S,dof)。这是一个大于或大于你获得的总和(S)的概率,可能纯粹是由于随机变化(即,即使分布相同)也是如此。因此,一个小的结果(接近0)意味着分布可能不同,而大的结果(接近1)意味着它们可能不会有显着差异。

  6. 可能有一个库函数来完成上述所有操作。 IDK,因为我很久没有使用任何统计库了。