1

我正在尝试使用经验分布来模拟数据。例如,假设有五个结果,其概率如下面的向量所示:

PROBABILITY_VECTOR = [0.1, 0.2, 0.3, 0.25, 0.15]

PROBABILITY_VECTOR 是根据经验数据计算的 - 因此对于该向量中的第一个类别,虽然平均概率为 0.1,但样本之间存在相当大的差异。同样,最后一个类别,虽然所有样本的平均值为 0.15,但存在相当大的差异。概率为 0.3 和 0.25 的中间类别相当紧凑。

我使用 PROC IML,带有以下语句:

CALL RANDSEED(12345);
CALL RANDGEN(SAMPLE, "TABLE", PROBABILITY_VECTOR);

当我这样做时,所有模拟结果的平均值与概率向量一致,正如您所期望的那样。但是,如果我希望我的模拟试验也显示我在数据的某些类别中观察到的广泛差异,我该怎么做?有任何想法吗?

4

1 回答 1

3

听起来你有 k 组主题,组的大小是 N_1,N_2,...,N_k。对于每个组,您已经测量了具有某些感兴趣特征的主题的比例。比例为 p_1, p_2, ..., p_k。

为了模拟这样的数据,首先从具有 N=N_1+N_2+...+N_k 个主题的多项分布中随机抽取,成员的概率为 N_1/N、N_2/N、...、N_k/N。这将为您提供一个新样本,其中 N 个主题分布在 k 个组中,并且每个组的主题数量与数据大致相同。这就解释了为什么有些组有“广泛的差异”,而另一些则是“紧的”。

要模拟组中的哪些受试者具有特征,请使用二项式 (p_i, N_i) 分布。这会将特征随机分配给第 i_th 组中的一些主题。

如果你一遍又一遍地重复这个过程,你会发现较小的组比较大的组有更多的变化。我写了一个详细的解释,包括一个 SAS/IML 程序和可视化组间变化的图形。请参阅文章“模拟组的比例”。

于 2021-09-18T20:12:10.313 回答