Excel中按组变量进行加权随机抽样?

问题描述 投票:0回答:1

我试图弄清楚如何随机采样与组变量匹配的 ID,但具体是通过加权每个分组变量来随机采样。例如,采用以下数据:

我想将 A 组的权重设为 60%,B 组的权重设为 20%,C 组的权重设为 15%,D 组的权重设为 5%,然后根据这些权重随机抽取 10 个 ID,不重复,将这些 ID 返回到另一个中专栏。

希望这是有道理的,并提前感谢您的帮助!

我已经大致了解了随机抽样的方法,但正在努力解决加权问题,而不是对重复样本进行抽样。

excel excel-formula sampling
1个回答
0
投票

您可以使用以下内容:

=LET(a,{"A";"B";"C";"D"},
     b,{60;20;15;5},
     c,TOCOL(IFS(SEQUENCE(,SUM(b))<=LOOKUP(B2:B25,HSTACK(a,b)),A2:A25),2),
TAKE(SORTBY(c,RANDARRAY(ROWS(c))),10))

它首先声明

a
是您的组,并且它的权重
b
c
在数组
a
中查找 B 列中的值并返回其权重
b
。如果返回值小于或等于
b
之和的序列,则返回A列的值,否则返回错误。这会导致 A 列的值重复
b
中提到的次数,其中 B 列中的值与
a
的值匹配。 TOCOL 消除了错误并使所有值成为一列数组。 这是随机排序的,并取前 10 个值。

© www.soinside.com 2019 - 2024. All rights reserved.