随机抽样

近期因为要做一个流失回访的问题,涉及到随机抽样。说来惭愧,身为一个数据狗,居然之前没有接过这方面的需求,第一期抽样,我基本上按限定条件手工拉的,拉完的结果是:

本来是我是抽流失的用户,结果7月回流的用户特别多后面想了下看来还是要用到随机函数进行处理。

(这里插一个关于随机抽样的小插曲,今年公司的年会,用到的抽奖软件,中间各种bug,一度导致年会尬场,其实这个也是个随机抽样的问题。当时人力的小伙伴们,一直不停的要把中奖了的小伙伴移出去,其实这种感觉还是不够智能,好歹也是腾讯的抽奖软件,咋设置的这么坑爹呢,后面一直抽同样的人出来,我就不知道是个神马情况了。现在轮到自己做随机抽样了,才知道这里的水很深呀!)

先想着自己用函数实现,根据条件来,例如拉4月上旬新增未参加活动的商户:

想在空白地方抽出符合条件的商户号,设想过index函数和其它函数,结果发现不行。在excelhoume找到一个巨复杂的样本,按比例抽出来,可是我没心情去研究那个复杂无比的数组函数,想了半天还是我自己来吧。

我的样本是这样的数据字段:

样本的分布如下:

抽样计划如下:

先尝试用vlookup函数实现简单的抽样。

抽一个样本
  上旬 中旬 下旬
未参加活动 258121001148188 258121001197522 258121001246721
激活活动 258121001116131 258121001150346 258121001243108
未激活活动 258121001104653 258121001187941 258121001238391

只抽一个样本比较好实现,简单的添加辅助列之后,即得到上述结果,附上函数

=VLOOKUP(L$2&$K3&RANDBETWEEN(1,COUNTIFS($E:$E,$K3,$F:$F,L$2)),$H:$I,2,FALSE)

但是,我想要的样本是60个,并且匹配不同的条件,后面想了下只能在randbetween的函数那里做文章了,不想重复,只能将样本分为若干等分,然后每个子样里面去抽一个。

例如我要抽上旬,未参加活动的三个商户:

=VLOOKUP(L$2&$K3&RANDBETWEEN(1,COUNTIFS($E:$E,$K3,$F:$F,L$2)/3),$H:$I,2,FALSE)

=VLOOKUP(L$2&$K3&RANDBETWEEN(COUNTIFS($E:$E,$K3,$F:$F,L$2)/3,COUNTIFS($E:$E,$K3,$F:$F,L$2)*2/3),$H:$I,2,FALSE)

=VLOOKUP(L$2&$K3&RANDBETWEEN(COUNTIFS($E:$E,$K3,$F:$F,L$2)*2/3,COUNTIFS($E:$E,$K3,$F:$F,L$2)),$H:$I,2,FALSE)

这是三个单元格中对应的函数,整体思路是分三段,每一段取一个,这个属于比较粗糙的版本,randbetween这个函数有个上下界的问题,如果前一个上界和下一个的下界相等,在某种情况下会出现重复的情况,后面引入int函数。

这种思路可行性是没问题的,但操作起来太复杂了。还要继续找简便点的方法。

回顾下昨天搜到的一些资料:

excel的数据分析库里面,是有随机抽样这个函数的,输入你要抽样的区域,输入你要抽样的个数,就可以完成抽样,但是这个只是最基本的,不能按指定条件来进行抽样。

现在想一下,这个问题其实涉及到的知识点比较多,特意上网搜了下,抽样分四种:

单纯随机抽样;

系统抽样(我上面尝试的方法属于这一种);

整群抽样(总体分群,再随机抽取几个群组成样本,群内全部调查);

分层抽样(stratified sampling)(先按对观察指标影响较大的某种特征,将总体分为若干个类别,再从每一层内随机抽取一定数量的观察单位,合起来组成样本。有按比例分配和最优分配两种方案。)

还是尝试用python或R来解决这个条件抽样的问题吧,本为题待后续解决。

猜你喜欢

转载自blog.csdn.net/sinat_20660547/article/details/81097765