Python描述性统计

🐳 我正在和鲸社区参加“商业数据分析训练营活动” https://www.heywhale.com/home/competition/6487de6649463ee38dbaf58b ,以下是我的学习笔记:

学习主题:Python描述性统计

日期:2023.9.19

关键概念/知识点:

  • 集中数据趋势的度量
  • 数据离散状况度量
  • 偏度、峰度
  • 异常值处理

掌握的新函数/方法:

  • numpy.mean()
  • numpy.median()
  • stats.mode()
  • stats.gmean()
  • stats.hmean()
  • numpy.ptp()
  • numpy.var()
  • numpy.std()
  • stats.skew()
  • stats.kurtosis()

代码举例

集中数据趋势的度量:
集中趋势(central tendency)是指一组数据向某一中心值靠拢的程度,它反映了一组数据中心点的位置所在。常见的度量方法有平均值、中位数、众数等等,下面是常见的度量函数:

名称函数说明
算术平均值numpy.mean()观测总值/观测个数
中位数numpy.median()递减/增排序时在数据中间位置的数字
众数stats.mode()出现次数最多
几何平均值stats.gmean()几何平均值总是不大于算术平均值(非负观测值)
调和平均值stats.hmean()总体各统计变量倒数的算术平均数的倒数

注:

  1. 如果想求一组数据x的均值,则在导入numpy库后调用该库的mean()函数即可,均值为:mu = numpy.mean(x)
  2. 其中stats库为scipy的子库,使用方法为import scipy.stats as stats

数据离散状况度量:
假设要统计两组学生的得分,第一组是19,20,21,第二组是15,20,25,可知这两组学生的平均得分相等,但如果只根据均值(两组的均值都是20)我们将无法区别两组数据有什么不同,现在我们的疑惑又来了:哪个组的得分又更加稳定呢?所以仅仅知道集中趋势是远远不够的,除此之外,了解数据离散程度对我们的统计分析工作也是有很大帮助的。

在统计分析中,离散程度指标可以说明集中趋势指标的代表性是什么样子的,还可以用来说明事物在发展变化过程中的均衡性、节奏性和稳定性等问题。 下面是一些常见的离散情况度量的函数:

名称函数说明
范围(Range)numpy.ptp()最大值和最小值之间的差异
平均绝对偏差(MAD)/数据点距离算术平均值的偏差
方差numpy.var()每个样本值与全体样本值的平均数之差的平方值的平均数
标准差numpy.std()方差的平方根
上偏方差/高于均值数据的方差
下偏方差/低于均值数据的方差
目标下偏方差/仅关注某一目标的样本下数据的方差

注: 上述有些离散程度的度量,在python中没有直接函数可以表示的,但均可通过自建函数等方式获得。

偏度、峰度 :

在许多统计测试和机器学习模型中都依赖于正态性假设。 因此,当数据出现严重偏斜等问题则意味着数据不正常,并且可能会影响统计测试或机器学习预测能力。主要的衡量标准为偏度和峰度:

  1. 偏度是与正态分布相比较,描述某总体取值分布的对称性。当偏度=0时,则表示数据分布与正态分布偏斜程度相同;偏度>0,数据分布与正态分布相比正/右偏,有一条“尾巴”拖在右边;偏度<0,数据分布比正态分布相比负偏/左偏,有一条“尾巴”拖在左边。

  2. 峰度用来描述总体中所有取值分布形态陡缓程度。以3为界点,当峰度=3时,该总体数据分布与正态分布陡缓程度相同;峰度>3,该总体数据分布比正态分布陡峭;峰度<3,该总体数据分布比正态分布平坦。

在python中的具体操作如下:

名称函数说明
偏度stats.skew()描述总体取值分布的对称性
峰度stats.kurtosis()描述总体取值分布的陡缓程度

注:

  1. 在python中,stats库为scipy的子库
  2. 偏度和峰度是基于与正态分布的比较

异常值处理 :
异常值问题在数据分析中经常会遇到,异常值可能会对数据分析造成严重的影响。处理异常值方法有多种,常用方法如下:

1. 固定比例法:
设置固定比例来判断是否异常。比如把上下2%值重新设置,大于99%分位数的数值,则将其设置为99%分位数值;若小于1%分位数的数值,则将其设置为1%分位数值。

2. 均值标准差法:
通常把3倍标准差之外的值视为异常值。不过由于样本均值和标准差计算本身受到极值影响较大,所以可能出现在数据分布图上明显看到异常点,而异常点按计算仍处在3倍标准差内。

3. MAD法
对均值标准差法的改进,将样本均值用样本中位数代替,样本标准差用样本绝对中位差MAD代替。

4. Boxplot法
利用上下四分位数所得到的区间,将 ( − ∞ , Q 1 − 3 × I Q R ) ∪ ( Q 3 + 3 × I Q R , + ∞ ) (-\infty ,Q_1-3\times IQR)\cup (Q_3+3\times IQR,+\infty) ,Q13×IQR)(Q3+3×IQR,+)区间内的点标为异常点。其中 Q 1 , Q 3 Q_1,Q_3 Q1,Q3为数据从小到大排列的25%和75%分位数, I O Q = Q 1 − Q 3 IOQ=Q_1-Q_3 IOQ=Q1Q3。在2001年Hubert和Van Der Vieren对原有Boxplot法进行偏度调整。

关键总结:

描述性统计是对数据的性质进行描述,就像看一群群山峰,通过描述性统计我们可以知道山峰的高度总体状况,比如均值描述了山峰的总体高度,而方差描述了山峰的高度差距,在此基础上进一步可以做出更重要的判断和预测,我们可以从多个方面看数据,体验数据的多重样貌!

学习了描述数据集中趋势和离散程度的度量方法,具有代表性的是均值和方差,另外还有峰度、偏度的计算及正态性检验以及识别出数据的异常值并进行处理。

问题/困惑:

对于描述性统计涉及到的某些函数还不太熟练,需要在练习中熟练掌握。

下一步计划:

通过练习掌握描述性统计方法,从多个角度了解数据。

参考资料/相关资源链接:

Pandas文档:https://pandas.pydata.org/docs/
matplotlib文档:https://www.matplotlib.org.cn/intro/
numpy文档:https://www.numpy.org.cn/reference/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Never give up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值