正态分布简介
你听说过钟形曲线吗?它往往是全球人们讨论最多的话题之一。很长一段时间以来,钟形曲线决定了对员工的专业评估,可以是一个受人喜爱或令人恐惧的话题,而这取决于与谁交谈!
看看这张图片:
你认为曲线的形状意味着什么?作为一个数据科学家(或一个有抱负的科学家),你应该能够马上回答这个问题。在许多其他应用中,钟形曲线背后的思想是正态分布。
正态分布是统计学的核心概念,是数据科学的支柱。在进行探索性数据分析时,我们首先探索数据,而目的是找出其概率分布,对吗?猜猜看,最常见的概率分布是什么?就是正态分布。
看看这三个非常常见的正态分布示例:
你可以清楚地看到,出生体重、智商得分和股价回报率往往形成一个钟形曲线。同样,还有许多其他的社会和自然数据集遵循正态分布。
正态分布对数据科学家来说变得至关重要的另一个原因是中心极限定理,这个定理解释了数学的魔力,是假设检验的基础。
中心极限定理:https://www.analyticsvidhya.com/blog/2019/05/statistics-101-introduction-central-limit-theorem/?utm_source=blog&utm_medium=statistics-data-science-normal-distribution
在本文中,我们将了解正态分布的意义和不同性质,以及如何使用这些性质来检查数据的正态性。
目录
正态分布的性质
正态分布的经验法则
什么是标准正态分布?
熟悉偏态分布
左偏分布
右偏分布
如何检验分布的正态性
直方图
KDE图
Q_Q图
偏度
峰度
实现和理解正态分布的Python代码
正态分布的性质
我们称这条钟形曲线为正态分布,卡尔·弗里德里希·高斯发现了它,所以有时我们也把它称为高斯分布。
我们只需使用两个参数即可简化正态分布的概率密度:平均值????和????2。这条曲线是围绕平均值对称的,同样如你所见,对于这种分布,均值,中位数和众数都相同。
正态分布的一个更重要的现象是,它始终保持正态形状,不像其他概率分布在变换后改变了其性质。对于正态分布:
两个正态分布的乘积为正态分布
两个正态分布之和是正态分布
两个正态分布的卷积也是正态分布
正态分布的傅里叶变换也是正态分布
开始意识到这个不可思议的概念的力量了吗?
正态分布的经验法则
你听说过经验法则吗?这是统计学中常用的概念(在很多绩效评估中也是如此):
根据正态分布的经验法则:
68.27%的数据在平均值的1个标准差内
95.45%的数据在平均值的2个标准差内
99.73%的数据在平均值的3个标准差内
因此,几乎所有的数据都在3个标准差之内。此规则使我们能够检查异常值,在确定任何分布的正态性时都非常有用。
什么是标准正态分布?
标准正态分布是正态分布的特例,它的 ????=0 且 ????=1。对于任何正态分布,我们可以使用以下公式将其转换为标准正态分布:
为了理解将正态分布转换为标准正态分布的重要性,我们假设有两个学生:Ross和Rachel。Ross生物学考试得了65分,Rachel时装设计考试得了80分。
我们能断定Rachel的得分比Ross好吗?
不,因为人们在生物学中的表现可能不同于人们在时装设计中的表现,这里的可变性可能不一样。
所以,仅仅看分数直接比较是行不通的。
现在,假设生物学标志遵循正态分布,平均值为60,标准差为4。另一方面,服装设计得分服从正态分布,均值79,标准差2。
我们必须通过标准化这两种分布来计算z分数:
因此,Ross的标准差高于平均分1.25分,而Rachel的标准差仅高于平均分0.5分。因此我们可以说Ross的表现比Rachel好。
熟悉偏态分布
正态分布是对称的,这意味着它一侧的尾部是另一侧的镜像。但大多数数据集都不是这样。通常情况下,数据点在一侧聚集的次数多于另一侧,我们称这类分布为偏态分布。
左偏分布
当数据点在分布的右侧聚集时,则尾部在左侧较长,这是左偏分布的性质。尾部在负方向较长,所以我们也叫它负偏态分布。
在这里,Mode > Median > Mean
即,众数 > 中数 > 平均值
在正态分布中,平均值、中数和众数相等,但在负偏态分布中,我们将测量的中心趋势之间的一般关系表示为:
众数 > 中数 > 平均值
右偏分布
当数据点在分布的左侧聚集时,则尾部在右侧较长,这是右偏分布的性质。在这里,正方向的尾部更长,所以我们也叫它正偏态分布。
在正偏态分布中,我们将测量的中心趋势之间的一般关系表示为:
众数 < 中数 < 平均值
如何检验分布的正态性
大问题!为了检验数据的正态性,让我们举一个例子,我们有1000名学生的数学、英语和历史分数信息。你可以在下面的网址里找到数据。
https://drive.google.com/file/d/1YCFsz9DNc7X3uyYwqNDzjjcYo634ZruT/view?usp=sharing
你可以在本文后面部分找到代码。
让我们看看几种不同的方法来检验分布的正态性。
直方图
柱状图显示连续区间内数据的分布
直方图中的每个柱子表示每个区间的频率
简单地说,高度表示各个区间的频率
如你所见,数学分数服从正态分布,英语分数服从右偏态分布,历史分数服从左偏态分布。
KDE图
如果设置不同数量的区间,或者仅仅更改区间的起始值和结束值,直方图的结果可能会有很大的变化,为了克服这个问题,我们可以利用密度函数。
密度图是根据数据估计的直方图的平滑连续版本。最常见的估计形式是核密度估计(KDE),在这种方法中,在每个单独的数据点绘制一条连续曲线(核),然后将所有这些曲线加在一起,进行单次平滑密度估计。
Q_Q图
分位数是将概率分布的范围划分为具有相等概率的连续区间或以相同方式划分样本中的观测值的切点。
2分位数被称为中值
4分位数被称为四分位数
10分位数被称为十分位数
100分位数被称为百分位数
10分位数将正态分布分成10个部分,每个部分有10%的数据点。Q-Q图或分位数图是通过相互绘制两组分位数而创建的散点图。
这里,我们将绘制理论正态分布分位数,并将其与观测数据分位数进行比较:
对于数学分数,值基本沿着直线表示它们是正态分布的。另一方面,对于英文分数,正态分布中较大的值比预期的大,而正态分布中较小的值比预期的小,在右偏分布中也是如此。
而对于历史分数,较大的值并不像正态分布所期望的那么大,较小的值也比正态分布所期望的要小,在左偏分布中也是如此。
偏度
偏度也是另一种检查正态性的度量值,它告诉我们偏离数据点的数量和方向。偏度值的几种情况:
如果该值小于-0.5,我们认为分布是负偏或左偏的,其中数据点在分布的右侧聚集,而尾部在分布的左侧较长
如果该值大于0.5,我们认为分布是正偏或右偏的,其中数据点在分布的左侧聚集,而尾部在分布的右侧较长
最后,如果这个值在-0.5到0.5之间,我们认为这个分布是近似对称的
峰度
另一个检查正态性的数值方法是峰度。峰度给出了关于曲线尾部的信息,这基本上表明了沿尾部的数据分布。
对于对称分布类型,峰度值将接近于零。我们称这种分布为常峰态分布。其尾部与高斯分布相似。
如果数据中存在极值,则意味着更多的数据点将与尾部一起。在这种情况下,K的值将大于零。在这里,尾巴会更“肥”,分布也会更长,我们称这类分布为尖峰分布。我们在这里可以清楚地看到,与高斯分布相比,尾巴更肥更密:
如果与正态分布相比,极值的存在率较低,那么较少的数据点将位于尾部。在这种情况下,峰度值将小于零,我们把这种分布称为低峰态分布 。比起正态分布,它将有一个较薄的尾巴和较短的分布。
实现和理解正态分布的Python代码
下面是实现和理解正态分布如何工作的完整Python代码。
import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport statsmodels.api as sm
df = pd.read_csv('Marks.csv')
def UVA_numeric(data): var_group = data.columns size = len(var_group) plt.figure(figsize = (7*size,3), dpi = 400)
#looping for each variable for j,i in enumerate(var_group):
# calculating descriptives of variable mini = data[i].min() maxi = data[i].max() ran = data[i].max()-data[i].min() mean = data[i].mean() median = data[i].median() st_dev = data[i].std() skew = data[i].skew() kurt = data[i].kurtosis()
# calculating points of standard deviation points = mean-st_dev, mean+st_dev
#Plotting the variable with every information plt.subplot(1,size,j+1) sns.distplot(data[i],hist=True, kde=True)
sns.lineplot(points, [0,0], color = 'black', label = "std_dev") sns.scatterplot([mini,maxi], [0,0], color = 'orange', label = "min/max") sns.scatterplot([mean], [0], color = 'red', label = "mean") sns.scatterplot([median], [0], color = 'blue', label = "median") plt.xlabel('{}'.format(i), fontsize = 20) plt.ylabel('density') plt.title('std_dev = {}; kurtosis = {};\nskew = {}; range = {}\nmean = {}; median = {}'.format((round(points[0],2),round(points[1],2)),
round(kurt,2),
round(skew,2),
(round(mini,2),round(maxi,2),round(ran,2)),
round(mean,2),
round(median,2)))
UVA_numeric(df)
尾注
在本文中,我们逐步的来理解正态分布的基本原理,了解了如何确定正态性的一些概念,如直方图、KDE、Q_Q图、偏度和峰度。
关于统计概念的更多细节,你也可以阅读这些文章:
每个数据科学专业人员都应该知道的6种常见的概率分布
https://www.analyticsvidhya.com/blog/2017/09/6-probability-distributions-data-science
中心极限定理导论
https://www.analyticsvidhya.com/blog/2019/05/statistics-101-introduction-central-limit-theorem
原文链接:https://www.analyticsvidhya.com/blog/2020/04/statistics-data-science-normal-distribution/
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文(无广告)。
↓扫描二维码添加小编↓