本文为笔者《数据分析与数据科学》专栏中的第二篇,
专栏的链接在这里.
第一篇博文的链接在这里.
希望本文与此专栏能够对接触,学习和研究数据科学的各位能有所帮助。
本文介绍的是数据与抽样分布的相关内容。
大数据时代是否意味着抽样时代的终结?答案是否定的。事实上,正是因为这个大数据时代无时无刻不在涌现着大量质量不一,相关性各异的数据,才更加增强了人们对于抽样的需求。抽样能够有效地操作一组数据,并且可以最小化偏差。
传统统计学总是假想一个总体遵循一个潜在的未知分布,并重点关注如何对总体运用一些基于强假设的理论。而现代统计学则将关注点转移到了抽样数据及其经验分布上,即关注我们手上所拥有的有效数据并对其进行分析。所以一般而言,数据科学家并不需要为总体的理论本质而操心,而是应聚焦于抽样过程和手中的数据。但在某些过程中,我们仍可以通过对总体的理解来获得一些额外的洞见。
总体可以指一个大量确实存在的数据集,也可以指一个理论上或构想得到的数据集;而样本就指的是大型数据集中的一个子集。抽样的方法有很多,所有方法的核心都是随机抽样。
在简单随机抽样的过程中,以均等的机会从总体的所有可用成员中抽取并得到一个样本。随机抽样得到的样本称为简单随机样本。抽样可以是有放回的,即可以在每次抽取后将所抽取的观测值放回到总体中,并可被随后的抽取重新选中。抽样也可以是无放回的,即一个观测值一旦被抽取,就不会参与随后的抽取。
分层抽样则是先依据一种或几种特征将总体分为若干个子总体,每一子总体称作一个层;然后从每层中随机抽取一个子样本,这些子样本合起来就是总体的样本。在分层抽样中,需要对不同的层赋予不同的权重,以生成对等的抽样规模。
系统抽样又称等距抽样,是简单随机抽样的变种。在系统抽样中,先将总体编号,并计算出抽样距离d=N/n,式中N为总体记录总数,n为样本容量。再在编号较小的记录中抽取一随机数,作为样本的第一条记录,接着等距取出接下来的记录,直至抽取够n个记录为止。
常用的随机抽样方法除了简单随机抽样、分层抽样、系统抽样之外还有整群抽样、多阶段抽样等方法,在此不做过多介绍。
一般情况下,数据质量对模型的影响是要大于数据规模的影响的。数据质量不仅涉及数据的完整性、格式的一致性、整洁性以及但个数据点的准确性,其还涉及到抽样的代表性这一概念,若样本是以某种有意义的非随机方式选取的,那它就失去了代表大规模总体的能力,就会导致抽样存在样本偏差。但几乎任何样本都无法准确地表示总体,即便是随机抽样也做不到。一旦差异具有意义,就会发生样本偏差。
在网络社交媒体或电商平台上,我们经常能够看到一些对于餐馆、酒店或咖啡馆等的评论。这些评论很容易产生偏差,因为发表评论的人并非是随机选取的。撰写评论的人总是基于一定的出发点的,这将导致自选择偏差(self-selection sampling bias)的产生。发表评论的人大多是获得了不好的体验的人或是可在评论中获取利益的人。但在对比类似的商家时,尽管自选择样本或许并未可靠地表明事情地真实状态,但它们依然可作为可靠的依据,因为对比的双方都存在同样的自选择偏差。
统计偏差是一些系统性的测量误差或抽样误差,它是在测量或抽样过程中产生的。我们应严格区分由随机选取所导致的误差和由偏差所导致的误差。虽然无偏过程也会产生误差,但所产生的误差是随机的,并不会强烈地趋于某一方向;而有偏过程的结果中,不仅存在着随机出差还存在着偏差。
偏差有多种形式,它可能是可以观察到的,也可能是不可见的。如果通过参考基准或实际值等方法发现结果确实存在偏差,这通常表明我们指定了不正确的统计或机器学习模型,或是漏掉了某个重要的变量(特征)。
选择偏差是指以一种可导致误导性或短暂性结论的方式,有选择地选取数据的操作,其包括自选择偏差和样本选择偏差。自选择偏差是指解释变量不是随机的,而是个体选择的结果,而这个选择的过程会使对主效应的估计产生偏差(例如上注释)。样本选择偏差是指样本选择不是随机的,使样本不能反映总体的某些特征,从而产生偏差。
如果我们指定一个假设,并使用设计良好的实验去验证该假设,理论上就能得到具有高度置信度的结论。但事实上往往并非如此。不断地“拷问”数据会使我们无法得知我们所探究出的数据的模式是真实的还是仅仅是数据窥探(data-snooping)的结果。因为通过实验验证一个假设所得到的现象,与通过研究判断可用数据而发现的现象之间存在着很大的差别。
例如,如果有一个人说他能够保证做到抛硬币连续十次正面向上,并且他真的做到了,那我们的第一感觉就是他可能拥有某种特异功能,因为抛硬币连续十次正面向上的概率仅有大约千分之一。但如果我们同时让数万人一起抛硬币十次,那么就很可能有不止一人能够做到连续十次正面向上,而我们也不会感觉他们拥有什么特殊能力,这只像是运气使然。
这就是被称为大规模搜索效应的问题——由于我们不断重复的数据建模,或是使用大量的预测变量对数据建模所导致的偏差或非可重现性。为了避免这一问题,我们就需要使用验证集去验证结果的性能,即用样本外的数据对通过使用样本得到的结果进行测试。
注:数据窥视偏差(参考网站)(https://www.weivol.cn/2018/03/data-snooping-bias/).数据窥视( data-snooping )是指从数据中发现统计上显著但实际并不存在的关系,是金融分析里面非常普遍和严重的一个问题。在金融分析中,因为我们可以对同一个数据集进行无数次的实证研究,如果有足够的时间、足够的尝试和足够的想象力,我们可以不需要考虑经济上的合理性而直接寻找金融变量统计上的关系,这样我们几乎能从任何数据集中推断出任何规律。通过数据窥探,我们可以让数据分析结果更显著来支持自己的立场,这些行为往往让实验无法重复……
趋均值回归是指对同一变量做连续预测时出现的一种现象,即在极端观测值之后,会出现更趋向于中心的观测值,这表明对极值给予特殊的意义和关注时,会导致某种形式的选择偏差。例如,一个人抛硬币100次,结果是99次正面向上,这就是一个极端测量值,但如果让这个人继续扔下去,正面向上的概率就会不断减小,趋于均值50%。均值回归的意义主要在于金融学方面,在此不作过多介绍。
在这个大数据时代,有时数据规模越小,结果反而越好。在抽样上多费些功夫,不仅可以减小偏差,还能让我们更关注于数据探索和数据质量。例如,在缺失的数据和离群值中,可能包含了一些有用的信息。要从上百万条记录中查找缺失值或评估离群值,成本可能会很高,但是仅对数千条记录的样本,这些就是完全可行的了。
那么,在何种情况下我们需要大量的数据呢?
用搜索引擎的查询检索就能很好的说明大数据的价值。当我们使用搜索引擎进行查询时,其数据规模非常之大,并且有效数据十分稀疏。但只有积累了巨大的数据量之后,搜索引擎才能更好地返回有效的搜索结果,其积累的数据越多,查询结果就越好。直接返回一个查询者真正想要的结果可能需要上千次相关记录的积累,但获取这样相关的记录可能需要处理数亿万条数据,在处理这样的问题时,随机抽样是不起作用的。
抽样分布是指从同一总体中抽取多个样本时,一些样本统计量的分布情况。样本是含有总体的丰富的特征的,我们在解决不同的问题时,需要用到总体不同的特征,这时就需要构造不同的有关样本的函数,这就是样本统计量,常用的有样本均值、样本方差等,这样不同的函数可以反映总体的不同的特征。统计量的性质以及使用某一统计量作推断的优良性,取决于其分布。所以抽样分布的研究是统计学中的一个重要课题。在数据科学中,只要数据易于获取,那么我们一般会使用尽可能多的数据去计算估计量或拟合模型,而非总是从总体中抽取更多的样本。
注:区分单个数据点的分布,数据分布(单个值在数据集中的频数分布)与样本统计量的分布,抽样分布(一个样本统计量在多个样本或重抽样中的频数分布)是非常重要的。
通常,样本统计量的分布要比数据本身的分布更加规则,分布的形状更趋向于正态分布曲线,且统计所基于的样本规模越大,这种性质就越明显。此外,样本的规模越大,样本统计量的分布就越窄。
通俗易懂的讲,中心极限定理就是指样本的一种统计值约等于总体的一种统计值。并且不管总体是什么分布,任意一个总体的样本统计值都会围绕在总体的统计值周围,并且这多个统计值会呈正态分布。它是支持假设检验和置信区间的底层机制,因此其在统计学中占有相当重要的地位。但在数据科学中,自助法(bootstrap)几乎适用于任意场景,因为使用这种方法,所以我们很少正式地使用假设检验和置信区间,因此中心极限定理并非处于数据科学实践的中心位置。
标准误差是一种单变量度量,它总结了单个统计量抽样分布的变异性。标准误差可以根据样本值的标准偏差s和样本规模n使用基于统计学的方法进行估计,公式如下:
标 准 误 差 = s n 标准误差=\frac{s}{\sqrt n} 标准误差=ns
标准误差会随样本规模的增大而减小。有时,我们称标准误差与样本规模间的关系为n的平方根规则。如果要使标准误差减小一半,那么样本规模应该扩大四倍。
标准误差计算公式的合理性源于中心极限定理。事实上,我们不必依靠中心极限定理来理解标准误差。我们可以通过采集新样本的方法来估计标准误差,但这种方法通常不可行并且存在着很大的浪费。其实,我们完全不需要抽取新的样本,而是使用自助法进行重抽样。在现代统计学中,自助法已经成为估计标准误差的标准方法。自助法几乎适用于所有的统计量,它不依赖于中心极限定理或其他的分布假设。
注:与数据分布和抽样分布同样,不能将标准偏差和标准误差混为一谈。前者测量的是单个数据点的变异性,而后者测量的是抽样度量的变异性。
要估计统计量或模型参数的抽样分布,一个简单而有效的方法是,从样本本身中有放回地抽取更多的样本,并对每次重抽样重新计算统计量或模型。这一过程被称为自助法(bootstrap)。自助法无须假设数据或抽样统计量符合正态分布。换句话说,自助法就是将原始样本复制成千上万次,得到一个假想的总体,其中包括了原始样本中的全部信息,只是规模更大。然后我们从这一假想总体中抽取样本,用于估计抽样分布。而在实践中,不必真地多次复制样本,只需在每次抽取后将观测值再放回总体中即可。这一方式有效地创建了一个无穷的总体,且其中任一元素被抽取的概率在各次抽取中保持不变。
自助法也可用于多变量数据,这时该方法使用数据行作为抽样单元。我们可以在自助数据上运行模型,估计模型参数的稳定性或变异性,或是改进模型的预测能力,比如Bagging方法(自助法聚合,装袋方法)。在此不作过多介绍。
需要注意的是,自助法并不补偿小规模样本。它不创建新的数据,也不会填补已有数据集中的缺口。它只会告知我们,在从原始样本这样的总体中做抽取时,大量额外样本所具有的行为。
置信区间可以帮助我们了解一个样本估计量中潜在的误差情况。使用单一数值呈现的估计量被称作点估计,这很少会让人彻底信服;而置信区间则是区间估计,即使用一个范围而不是单一的值去表示估计量。一种对置信区间比较通用的理解是,在采用类似抽样过程的情况下,样本统计量的x%置信区间,表明该区间平均在x%的情况下包含类似的样本估计量。
置信区间所给出的百分比被称为置信水平。置信水平越高,置信区间越宽。此外,样本规模越小,即不确定性越大,估计量的变异性越大,置信区间也就越宽。如果要在数据更少的情况下增加置信度,那么我们必须让置信区间足够宽,以确保捕获真实值。
对数据科学家而言,置信区间是一种了解样本结果可能的变化情况的工具,我们可以通过置信区间来了解某个估计量的潜在误差情况,由此确定是否需要更大的样本。
呈钟形的正态分布(Normal distribution)是传统统计学中的一个标志性概念。由于样本统计量的分布通常呈现出正态分布的形状,这使得正态分布已成为一种推导样本统计量近似分布的数学公式的强大工具。
若随机变量x服从一个位置参数为μ、尺度参数为σ的概率分布,且其概率密度函数为
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2π}σ}e^{-\frac{(x-μ)^2}{2σ^2}} f(x)=2πσ1e−2σ2(x−μ)2
则称这个随机变量为正态随机变量,正态随机变量服从的分布就称为(一维)正态分布。多维(多元)正态分布的定义类似,不再做过多介绍。有关正态分布的具体介绍和其他性质可自行查阅。
对正态分布的一个常见误解是,该分布之所以被称为正态分布,是因为其中大部分数据符合正态分布,即数据值是正态的。然而,大多数原始数据通常并不是正态分布的。正态分布这一名词是源于很多统计量(包括误差)在抽样分布中是正态分布的。即使如此,在数据科学项目中,只有当经验概率分布或自助法分布不可用时,才会使用正态性假设作为最后一招。
均值为0,标准偏差为1的正态分布被称之为标准正态分布。在标准正态分布中,x轴的单位为距离均值的标准偏差。为了使数据能够与标准正态分布做对比,我们需要将数据值减去均值,然后除以标准偏差。这一过程被称为归一化或标准化。我们称转化值为z分数,正态分布有时也被称为z分布。
QQ图(Quantile-Quantile plot)用于可视化地确定样本与正态分布间的近似度。QQ图对z分数从低到高进行排序,并将每个值的z分数绘制在y轴上。x轴的单位是该值秩的正态分布所对应的分位数。由于数据是归一化的,所以单位的个数对应于数据值与均值间的距离是标准偏差的是多少倍。如果数据点大体落在对角线上,那么可以近似地认为样本符合正态分布。
尽管正态分布在统计学历史中具有非常重要的地位,但是数据通常并不符合正态分布,这与其名称实际上是不太相符的。虽然正态分布非常适用于误差和样本统计量的分布,但是它并未表示出原始数据的特性,有时数据的分布会是高度偏斜的,有时数据的分布会是离散的。对称或不对称的分布都可能具有长尾效应。数据分布的尾部,对应着数据中的极值,即极大值和极小值。
Nassim Taleb提出了黑天鹅理论,该理论预测异常事件(如股市崩盘)发生的可能性远大于正态分布的预测。
长尾效应(Long Tail Effect),“头”(head)和“尾”(tail)是两个统计学名词。正态曲线中间的突起部分叫“头”;两边相对平缓的部分叫“尾”。从人们需求的角度来看,大多数的需求会集中在头部,而这部分我们可以称之为流行,而分布在尾部的需求是个性化的,零散的小量的需求。而这部分差异化的、少量的需求会在需求曲线上面形成一条长长的“尾巴”,而所谓长尾效应就在于它的数量上,将所有非流行的市场累加起来就会形成一个比流行市场还大的市场。
相比于我们期望数据符合正态分布的情况,我们更趋向于观测到一些极值,即数据在中部是正态的,但是具有更长的尾部。如果只是假设数据符合正态分布,这可能导致对极端事件产生错误的估计。
由于在实际工作中,往往总体方差是未知的,我们需要用样本方差作为总体方差的估计值,t分布(t-distribution)家族就由此应运而生了,家族中的每个成员根据样本规模的不同而有所不同。样本规模越大,t分布就越趋于正态分布形状。
假设x服从标准正态分布N(0,1),y服从 χ 2 \chi^2 χ2(n)分布,那么 z = x y / n z=\frac{x}{\sqrt {y/n}} z=y/nx的分布称为自由度为n的t分布,记为 z ∼ t ( n ) z∼t(n) z∼t(n)。其分布密度函数为:
f z ( x ) = Γ ( n + 1 2 ) Γ ( n 2 ) n π ( 1 + x 2 n ) − n + 1 2 f_z(x)=\frac{\Gamma(\frac{n+1}{2})}{\Gamma(\frac n 2)\sqrt{n\pi}}(1+\frac{x^2}{n})^{-\frac{n+1}{2}} fz(x)=Γ(2n)nπΓ(2n+1)(1+nx2)−2n+1
数据科学家需要了解t分布和中心极限定理等中的哪些内容?答案是并不需要了解太多。这些分布是用于经典的统计推理中的,在数据科学中并非十分重要。对于数据科学家而言,重在理解并定量分析不确定性和变异性。这时,以实验为依据的自助抽样可以解答大多数与抽样误差相关的问题。但是,我们还是常会在例如A\B测试和回归等统计过程中遇到t统计量。因此,了解这些分布的目的对于数据科学家来说也是有所裨益的。
二项分布(Binomial Distribution)在建模中十分重要,因为它能够表示决策的基本情况。它指在多次二项实验(伯努利试验)中,成功次数的分布。实验对于理解二项分布至关重要,二项实验是一种具有两种可能结果的实验,其中一种结果的概率为p,另一种结果的概率为1-p。当试验次数n很大并且p不接近于0(或1)时,二项分布可使用正态分布近似。
一般地,如果一个随机变量x服从试验次数为n,一次实验成功(此处的成功是指一次实验的输出为我们感兴趣或说想要的结果)的概率为p的二项分布,我们记为 x ∼ B ( n , p ) x∼B(n,p) x∼B(n,p)。n次试验中正好得到k次成功的概率由概率质量函数给出:
P { X = k } = C n k p k ( 1 − p ) n − k P\{X=k\}=C^k_np^k(1-p)^{n-k} P{ X=k}=Cnkpk(1−p)n−k
二项分布的均值是 n × p n×p n×p,也可以将均值看作是n次实验的期望成功次数。
二项分布的方差是 n × p ( 1 − p ) n×p(1-p) n×p(1−p)。如果实验的次数足够多(尤其是当p接近于0.5的时候),二项分布几乎等于正态分布。事实上,因为计算大规模样本的二项概率对计算能力的要求很高,所以大多数统计程序会使用具有一定均值和方差的正态分布给出近似计算。
泊松分布(poisson distribution)是一种常见的离散概率分布,其概率函数为:
P ( X = k ) = λ k k ! e − λ P(X=k)=\frac{\lambda^k}{k!}e^{-\lambda} P(X=k)=k!λke−λ
泊松分布指的是单位时间或单位空间内事件数量的频数分布。 λ \lambda λ指的是单位时间或单位空间的事件发生率。泊松分布的期望和方差均为 λ \lambda λ。当二项分布的n很大而p很小时,泊松分布可作为二项分布的近似,其中 λ \lambda λ为n×p。泊松分布可以通过对很多单位抽样,告诉我们单位时间或单位空间内事件的分布情况。
指数分布(Exponential distribution)是一种连续概率分布,它可以用来表示独立随机事件发生的时间间隔。它所使用的参数 λ \lambda λ与泊松分布一样。若随机变量x服从参数为λ的指数分布,则记为 x ∼ E ( λ ) x∼E(\lambda) x∼E(λ),其概率密度函数为:
f ( x ) = λ e − λ x ( x > 0 ) f(x)=\lambda{e^{-\lambda x}}(x>0) f(x)=λe−λx(x>0)
在针对泊松分布或指数分布的模拟研究中,一个关键假设是速率 λ \lambda λ在所考虑的时间周期内是保持不变的。从总体上看,这一假设很少是合理的。例如,公路或网络上的流量会随一天中的不同时段或一周中的不同日子而变化。但是,我们可以将时间或空间切分为几乎同等的几个部分,这样就可以在其中做分析或模拟。
在某些情况下,事件发生率并不能随时间的变化而保持恒定。如果事件的变化周期远大于事件在一般情况下的发生间隔,那不会出现问题;可是,若事件发生率在每个间隔中也会发生变化,那么指数分布或泊松分布就不再有用了。例如在机械故障问题中,机器发生故障的风险会随着时间的增加而增大,这时就会出现这种情况。
韦伯分布(Weibull distribution)是指数分布的一种延伸,它通过指定形状参数 β \beta β,允许事件发生率产生变化。该分布的第二个参数表示的是特征生命,也被称为比例参数,用 η \eta η表示。其概率密度函数为:
f ( x ; η , β ) = β η ( x η ) β − 1 e − ( x / η ) β ( x > 0 ) f(x;\eta,\beta)=\frac{\beta}{\eta}(\frac{x}{\eta})^{\beta-1}e^{-(x/\eta)^\beta}(x>0) f(x;η,β)=ηβ(ηx)β−1e−(x/η)β(x>0)
以上便是“数据与抽样分布”的全部内容,包括了统计学中抽样与分布的一些基础知识的简介还有数据科学中抽样方法的简要介绍。对本文介绍的相关内容感兴趣或是想要深入研究的朋友可参考其他博文,本文仅是一个简要的介绍和整理。
在最后,希望本文能够帮助到各位阅读的朋友,也请大家多多关注,笔者会在后续介绍更多有关数据科学的内容以及使用python等语言进行数据分析的方法。