从数据集中随机抽样,同时保留原始概率分布

Random sampling from a dataset, while preserving original probability distribution

我有一组 >2000 个数字,是从测量中收集的。我想从这个数据集中抽样,每次测试约 10 次,同时保留总体概率分布,并在每次测试中(在大约可能的范围内)。例如,在每个测试中,我想要一些小值,一些中间 class 值,一些大值,均值和方差近似接近原始分布。结合所有的测试,我还想要所有样本的总均值和方差,近似接近原始分布。

由于我的数据集是long-tail probability distribution,每个分位数的数据量不一样:

图 1. ~2k 数据元素的密度图。

我正在使用 Java,现在我正在使用 uniform distribution,并使用数据集中的随机整数,以及 return 该位置的数据元素:

public int getRandomData() {
    int data[] ={1231,414,222,4211,,41,203,123,432,...};
    length=data.length;
    Random r=new Random();
    int randomInt = r.nextInt(length);
    return data[randomInt];
}

我不知道它是否如我所愿,因为我使用的数据是按测量的顺序使用的,具有很大的序列相关性。

如你所愿。数据的顺序无关紧要。

随机抽样保留概率分布。