Sampling(抽样方法)
- 确定抽样与随机抽样
- 对于一个用DataFrame表示的总体,如果选取指定索引的行(或者满足指定条件的行),那么这就属于确定抽样(Deterministic Samples)。
- 与之相对的是随机抽样(Random Samples),其特点是在抽样之前可以知道每个样本被抽到的概率(不一定相同)。随机抽样又分为有放回抽样和无放回抽样两大类,其中随机无放回抽样又称为简单随机抽样。
- 有时我们需要指定不同类别抽样样本的比例,在python中可以用
np.random.choice的p参数实现。示例:import numpy as np def sample_proportions(sample_size, proportions): """有放回抽取样本,返回各类别在样本中的比例。""" categories = np.arange(len(proportions)) # [0, 1, 2, ...] 代表各个类别 samples = np.random.choice(categories, size=sample_size, p=proportions, replace=True) # 计算各类别出现的比例 counts = np.bincount(samples, minlength=len(proportions)) return counts / sample_size
- 系统抽样(Systematic Samples)
- 假设总体的所有元素按顺序排成一列,那么系统抽样法就是指在序列的头部位置随机选一个起始索引,之后每隔指定间隔选取一个样本。
- 系统抽样属于随机抽样,但是某些样本的组合被同时抽到的概率为。
- 方便抽样(Convenience Samples)
- 在现实情况中,比如在街头随机选取若干个路人采访,这种抽样方式看似随机,但因为无法得知每个路人被抽到的概率,因此这不属于随机抽样。
- 我们称其为方便抽样,其在社会调查与市场调研中非常常见。
经验分布与统计量的分布
- 略,可见数理统计Cheat Sheet。
- DATA8主要强调的是计算机模拟可以让我们基于样本推断总体分布或生成满足特定分布的样本。
假设检验
注:如果学过数理统计,那么这一节就可以略过了,或者也可以参考数理统计Cheat Sheet。
评估一个模型
- 在数据科学中,一个模型的本质是一组假设的集合。特别地,当假设涉及到随机性时(比如概率与分布),那么这个模型就属于随机模型。
- 在建立了一个模型之后,我们就需要使用数据对模型进行检验。具体而言,就是将真实数据与模型模拟得到的预测数据进行比较。
- 如果真实数据与模型模拟得到的数据之间存在系统偏差,则称其具有统计偏差(Statistical Bias)。
- 一般而言,评估一个模型的步骤包括:
- 选择一个统计量衡量模型与观测数据的差异
- 在模型假设下进行模拟得到这个统计量
- 将模型的预测值与观测数据比较(比如使用统计量多次模拟得到的直方图,或者从数据得到统计量):如果观测数据在直方图中出现概率很低(或远离预测值),则说明数据与模型相违背。
- 下面再补充一个衡量多分类比例差异的指标:总变差距离(total variation distance,TVD),计算方式为两种比例差异绝对值和的一半。比如:
预测比例 实际比例 绝对差异 0.15 0.26 0.11 0.18 0.08 0.10 0.54 0.54 0 0.12 0.08 0.04 0.01 0.04 0.03 - 那么其TVD为。
- TVD衡量了它们之间的接近程度。TVD越大,两个分布看起来就越不同。
其实DATA8讲的假设检验可以理解为数理统计中假设检验的“低配版”,作为理解假设检验的入门倒挺合适
可惜笔者已经完整经过数理统计的洗礼了
比较两个样本
下面我们将研究如何比较两组随机样本,分析它们的相似性与差异性。【这种任务在现实中非常常见】
A/B测试
-
A/B测试就是一种最典型的样本比较方法,其目的是判断两组样本是否来自同一总体分布。
-
一个直接的判定方法就是比较两组样本在某个因素上是否有显著差异。对此,我们可以选择两组样本在该因素上的均值之差作为检验统计量。
-
但我们不能直接根据统计量的正负进行判别,因为还要考虑随机性的影响。因此,基于这个统计量,我们需要进行如下检验:
- 将样本标签随机打乱重新分配给每个样本,然后计算检验统计量的值;
- 进行多次打乱模拟,得到检验统计量值的分布(可用直方图表示);
- 将实际的样本检验统计量值放入该分布中,考察其出现概率。
上述检验方法也称为排列检验(Permutation Test)。这种检验方法属于比较通用的检验法,它并没有假定样本的数据分布是否符合正态。【如果假定数据符合正态分布,则还可以使用t检验等】
因果关系
将A/B测试应用于随机对照试验中,就可以进行因果推断。
-
随机对照试验的核心问题一般是:治疗/服用药物是否真的有效?为了将因果推断转化为假设检验问题,往往构建出一个潜在结果(Potential Outcomes)框架,其核心是:
- 每位患者都有两个潜在结果:接受治疗的结果和接受对照的结果,但我们只能观察到其中一个。
- 通过随机化,让分组与潜在结果相互独立,这样就可以降低选择偏差(当然可以通过多次模拟进一步消减偏差),同时确保没有混淆变量能够造成选择偏差。
-
对应的假设检验问题形式如下:
- :所有个体的潜在“治疗”结果分布与潜在“对照”结果分布相同(治疗无效,差异纯属随机)
- :两组潜在结果的分布不同(治疗有效果)
检验同样可以使用排列检验。如果检验结果显著,就可以推断出变量之间的因果关系(比简单的相关关系更强)
-
当然,样本量也是影响假设检验(因果推断)有效性的一大因素,单一小规模RCT的结论仅适用于研究中的受试者,要推广到更广泛的人群,还需要更大规模、标准化的试验来验证。
