2.10 分层抽样
分层抽样法也叫类型抽样法。它是从一个可以分成不同子总体(或称为层)的总体中,按规定的比例从不同层中随机抽取样品(个体)的方法。实际工作中我们面对的数据可能有很多分类,比如一个中学有三个年级,初一有1400人,初二有1200人,初三有1000人,如果我们使用随机抽样,得到的样本的分布可能就和整体的分布差别较大,而我们如果按比例将总体划分为三层,在每层中抽样,得到的样本分布就会接近总体。
我们还是使用AppleStore表,我们考虑按照APP的大类(prime_genre)来分层。假设我们每层抽取的样本数量和每层的总体是等比例的,所有总体数量是7142,抽取100个样本:
with s as (select *,row_number() over (order by prime_genre) as numfrom AppleStore)select * from s where num % 72 =1
解释:with as
子句中我们将数据按大类(prime_genre)排序,并添加序号列num后结果命名为表s,select * from s where num % 72 =1
就是在按类别排序后的数据每72行抽取一条数据。表达式%是模运算符,即第一个数除以第二个数之后的余数,例如7%5的结果为2。因为我们总体是7142行数据,因此每隔72行取一行数据,最终可以取100条样本。这里的余数是可以自己设定。
在一些情况下,我们还会按金额大小排序后分层,每一层的金额大小相同或相近,这样一种分层抽样的逻辑就不是等比例的,使用SQL语句可能难以实现逻辑,我们在后面学习了Python后,可以尝试完成这种逻辑的分层抽样。一般我们使用SQL都不会去写逻辑特别复杂的语句,因为这不是擅长的方面。
文章转载自逆行的狗,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




