如何选择组合总和服从特定分布的样本组合?

Posted

技术标签:

【中文标题】如何选择组合总和服从特定分布的样本组合?【英文标题】:How to select the combination of samples that sum of combination follows a specific distribution? 【发布时间】:2017-01-02 20:05:48 【问题描述】:

我有两个 30 个样本数据集。

A1 <- c(368.4777, 387.9693, 403.7576, 417.4397, 429.7728, 441.1835, 451.9409, 462.2286, 472.1809, 481.9012, 491.4738, 500.9705, 510.4558, 519.9902, 529.6330, 539.4454, 549.4926, 559.8473, 570.5931, 581.8296, 593.6794, 606.2988, 619.8938, 634.7472, 651.2666, 670.0744, 692.1994, 719.5452, 756.3235, 815.7298)

B1 <- c(414.2523,  471.8087,  519.1119,  560.4502,  597.9043,  632.6668,  665.5000,  696.9308,  727.3477,  757.0533,  786.2953,  815.2867,  844.2194,  873.2745,  902.6306,  932.4719,  962.9959,  994.4228, 1027.0068, 1061.0519, 1096.9331, 1135.1297, 1176.2765, 1221.2488, 1271.3134, 1328.4178, 1395.8053, 1479.5340, 1593.1899, 1780.2717)

如果我想对两个分布求和,

    A1+B1会给我一个绿色的虚线密度图。

    rowSums(expand.grid(A1, B1)) 会给我蓝色实线密度图。 (30*30=900 种可能的组合)

但是,我想让 sum 的分布类似于红线 (Target)。换句话说,我想从A1B1中选择组合,使组合的总和遵循红线密度分布(每个值只能选择一次)。我该怎么做?

Target <- c(1691.60, 1041.01, 1581.92, 1392.43, 1806.88, 1788.24, 1838.67, 1953.35, 1253.21, 1791.36, 1644.61, 1425.05, 1218.66, 1596.36, 1305.67, 1031.98,  828.52, 1375.77, 1475.28, 1718.25)

【问题讨论】:

为什么绿色分布比蓝色宽很多? @SeverinPappadeux 因为它的计算方式类似于(A1 的最大值 + B1 的最大值)和(A1 的最小值 + B1 的最小值)。 expand.grid 中应该存在相同的值(max+max 和 min+min),不是吗?为什么蓝线像他们不在这里一样被绘制? @SeverinPappadeux 是的,你是对的。那是因为这些是使用不同带宽的密度图。如果我使用相同的bw,密度图将类似于this。 好的,知道了!我没有得到的是你问题的最后一部分。这可能是不适定问题。例如,对于某些 bin,它无法完成(1 个事件的总和为 X,因此您无法将其删除,或者由于您的 quanta 太大而无法将某些应用添加到红色曲线) 【参考方案1】:

我不太了解您问题的最后一部分,因此可能需要调整答案。

如果您想对A1B1 的组合进行采样,那么您可以使用示例函数。所以

s1 = sample(A1) + sample(B1)
plot(density(s1))

这是没有替换的采样。如果要替换,只需在sample 函数中添加replace=TRUE

【讨论】:

@csfillespie 感谢您的编辑和回答!我的直觉是's1'的密度分布更接近蓝线,而不是红线。我们怎样才能使's1'类似于红线?? 是的。我尝试过这个。基本上,当我尝试时,您的方法会显示不同的结果,因为它是随机样本。但它仍然更像蓝线,而不是红线。 link> 你的方法是一条紫线。

以上是关于如何选择组合总和服从特定分布的样本组合?的主要内容,如果未能解决你的问题,请参考以下文章

检验数据是不是服从正态分布

如何在 Spark .NET 中执行分布式组合(N 选择 K)?

11.28spss

如何在 Access 中打开表单,自动选择组合框中的值并显示详细信息?

如何从 Java 的组合框中删除特定项目?

MS Access 如何使用带有组合框的宏?