在深入机器学习模型或复杂建模技术之前,掌握统计学的基础知识至关重要。统计学在数据科学中主要分为两个领域——描述性统计和推断性统计。本文将探讨描述性统计中的一个基本概念:五数概括,这是在对数据进行任何转换之前,用于理解数据集的一个工具。
描述性统计涉及对数据的分布和特性的理解。五数概括是描述性统计的一部分,由五个值组成,这些值帮助描述数据。这五个值包括:
通过一个例子来理解这一点。假设有一组数据:11,23,32,26,16,19,30,14,16,10。首先,将数据点按升序排列,然后计算五数概括:10,11,14,16,16,19,23,26,30,32。
最小值:10
第25百分位数:14(计算方法:(25/100)*(n+1) = (25/100)*(11) = 2.75,即数据中的第3个值)
第50百分位数:17.5(计算方法:(16+19)/2 = 17.5)
第75百分位数:26(计算方法:(75/100)*(n+1) = (75/100)*(11) = 8.25,即数据中的第8个值)
最大值:32
现在,主要问题是五数概括值如何描述数据。让通过一个数据集来实际理解这一点。将使用著名的泰坦尼克号数据集的一个子集。
import pandas as pddata=pd.read_csv('titanic.csv')data=data[['Age','Fare','Survived']]print(data.head())
数据包含3列:年龄、票价和生存情况。年龄和票价是自变量,生存情况是因变量,其中1表示生存,0表示未生存。
使用Python中的describe()函数,可以看到数据的五数概括和其他详细信息。describe()函数为提供了特征的计数和均值,包括五数概括值。
data.describe()
从数据的角度理解五数概括值,并根据相同的数据描述数据:从票价列中,可以分析出第25百分位数是7.9,即8,这意味着25%的数据小于8。第75百分位数的值是31,意味着75%的数据低于31。
一个重要的注意事项是第75百分位数值和最大值之间的差异很大,这可以解释为票价特征高度偏斜,不遵循正态分布。这种差异也可以检测到异常值的存在。
另一个需要注意的是均值大于中位数(第50百分位数),即32大于14,所以分布向右偏斜。也可以使用Python中的skew()函数来检查偏斜值。
data.skew()
对年龄列的解释也是如此。最大值和第75百分位数值之间的差异不大,中位数和均值差不多,所以分布不是高度偏斜。
在Python中检查票价列的分布。可以从下面的图表中确认票价向右偏斜,也可以检测到异常值的存在。
import matplotlib.pyplot as pltplt.hist(data.Fare,bins=20)
现在检查年龄列的分布。可以从下面的图表中验证对年龄列的解释。
plt.hist(data.Age,bins=20);
箱线图是使用五数概括值对数据分布进行图形表示的一种方式。它是检测数据集中异常值的最有效方法之一。在统计学中,异常值是一个与其他观测值显著不同的数据点。异常值可能是由于测量的变异性或实验错误造成的;后者有时从数据集中排除。异常值可能会对统计分析造成严重问题。
绘制上述示例数据点(11,23,32,26,16,19,30,14,16,10)的箱线图,其中五数概括为:最小值:10,第25百分位数:14,第50百分位数:17.5,第75百分位数:26,最大值:32。
import seaborn as snssns.boxplot(data.Fare);