用python重温统计学基础:描述性统计分析

Aidan075 等级 434 0 0

用python重温统计学基础:描述性统计分析

描述性统计分析(Description Statistics)是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间的关系进行估计和描述的方法。描述性统计分析分为集中趋势分析和离中趋势分析。

提到用python来进行描述性统计分析,第一反应就是用:dataframe.describe(), 我们不妨用一组数据来展示:



# 读取数据  
df = pd.read\_csv('sanguo\_data.csv',header = 0,encoding="utf-8")  
df.head()

用python重温统计学基础:描述性统计分析

这是一组三国人物的数据,有姓名、性别、统御、武力等字段(数据下载地址见文末)。

下面我们用python当中的dataframe.describe()来进行描述性统计分析:



#描述性分析  
df.describe()

用python重温统计学基础:描述性统计分析

运行可得到上图,可以看到最大值、最小值、平均数、标准差、中位数等基本的描述性统计指标都有,但是为了更好深地掌握知识,下面还是继续用python挨个指标复习一下。

集中趋势分析

  • 平均数
  1. 简单算数平均数,这里没什么好说的

  2. 加权平均数,应用最广泛。这里举个栗子:武力值高不代表带领军队时的战力,不然关羽岂不是无敌,所以这时候用统御能力加权平均更合适。

  3. 几何平均数,多用于流程转化中的平均,比如多步骤的转化率求平均值



data = df\['武力'\]  
#简单算数平均数  
np.average(data)  
#加权平均数  
np.average(data,weights=df\['统御'\])  
#几何平均数  
pow(np.prod(data),1/len(data))   


  • 众数

是一组数据中出现次数最多的数值,可能没有,也有可能有多个。



counts = np.bincount(data)  
np.argmax(counts)

  • 分位数

分位数是指用分割点将一个随机变量的概率分布范围分为几个具有相同概率的连续区间。



# 中位数  
np.median(data)  
# 四分位数  
np.percentile(data, (25, 50, 75), interpolation='midpoint')

箱线图是分位数的直接应用:主要包含六个数据节点,将一组数据从大到小排列,分别计算出他的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还有一个异常值。

用python重温统计学基础:描述性统计分析

我平时喜欢用的小提琴图(violin plot)用于显示数据分布及其概率密度。它结合了箱形图和密度图的特征,主要用来显示数据的分布形状。中间的黑色粗条表示四分位数范围,从其延伸的幼细黑线代表 95% 置信区间,而白点则为中位数。

用python重温统计学基础:描述性统计分析

离中趋势分析

  • 极差

极差又被称为全距,是指数据集合中最大值与最小值的差值



# 极差  
np.max(df\['武力'\])-np.min(df\['武力'\])

  • 方差、标准差

方差是度量随机变量和其数学期望(即均值)之间的偏离程度。

标准差:方差的开方



# 方差  
np.var(df\['武力'\])  
# 标准差  
np.std(df\['武力'\])  


  • 平均差

各个变量值同平均数的离差绝对值的算术平均数。

  • 异众比率

是总体中非众数次数与总体全部次数之比。

  • 偏态系数

以平均值与中位数之差对标准差之比率来衡量偏斜的程度。偏态系数小于 0,因为平均数在众数之左,是一种左偏的分布,又称为负偏。偏态系数大于 0,因为均值在众数之右,是一种右偏的分布,又称为正偏。

  • 峰态系数

是对数据分布平峰或尖峰程度的测度:峰态系数与众数概率的高低有直接关系,众数概率越高,峰态系数越大。

正态分布的峰态系数是 3,常常计算出来的峰态系数会跟 3 作比较,如果小于 3 则具有不足的峰度,如果大于 3 则具有过度的峰度。



#偏度、峰度  
from scipy import stats  
x = df\_wu\['武力'\]  
skew = stats.skew(x)  
kurtosis = stats.kurtosis(x)  


实战演练

现在我们再将这组数据按国家区分,来看看描述性统计分析能得出什么样的结论?



df\_wei = df.loc\[(df\['国家'\] == '魏国')\]  
df\_shu = df.loc\[(df\['国家'\] == '蜀国')\]  
df\_wu  = df.loc\[(df\['国家'\] == '吴国')\]  
data = df\_wu\['武力'\]  
plt.hist(data,20,normed=True,facecolor='g',alpha=0.9)  
plt.show()  


做出三国人物的武力值分布图,以及利用前文的python代码计算各种描述性统计分析指标,如下图所示:

用python重温统计学基础:描述性统计分析

  1. 从平均值看,蜀国武将的平均武力在三个国家之上

  2. 从标准差看,吴>蜀>魏,这说明吴国人物间武力差距更大一些,而魏国人物武力分布较为均匀。

  3. 从偏度上看:三国偏态系数均小于0,平均数在众数之左,是一种左偏的分布,又称为负偏。 从上面三个图中也可以看出:其中蜀国的武力分布众数偏在右侧更明显一点,长尾拖在左边。 从峰度上看:三国偏态系数均小于0,均是低峰态,相对来说蜀国人物武力分布较另外两国人物武将武力分布更窄一些。

PS:大家可能注意到求出的偏态系数为负数,这是因为在实际应用中,通常将峰度值做减3处理。


数据代码分享:

[1]点击左下角原文链接,直接进入知识星球(免费)原贴获取文中涉及的三国数据和ipynb格式的python代码。

[2]或者微信后台回复“统计分析”,也可同样获取。

参考资料:

[1]《数据茶水间》-木东居士

[2]《从零进阶!数据分析的统计基础》

[3]《深入浅出统计学》


本文转自 https://mp.weixin.qq.com/s/TGoL3ZNDlIMLxRWwf9ch3A,如有侵权,请联系删除。 本文转转自微信公众号凹凸数据原创https://mp.weixin.qq.com/s/TGoL3ZNDlIMLxRWwf9ch3A,可扫描二维码进行关注: 用python重温统计学基础:描述性统计分析 如有侵权,请联系删除。

收藏
评论区

相关推荐

Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
python中的异常处理
异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常种类   在python中不同的异常可以用不同的类型(python
python装饰器详解
你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时候发生的真实对白。 \分割线
知乎从Python转为Go,是不是代表Go比Python好?
众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言
我的python总结
建议刚开始学习直接使用ANACONDAhttps://www.anaconda.com/download/配置python环境变量https://docs.python.org/3.6/using/cmdline.htmlenvvarPYTHONMALLOCPython PEP8导包顺序1. Python标准
Python编程基础(快速入门必看
Python编程基础一、Python语言基本语法 Python是一
如何用python进行数据分析——00环境配置
↑一个宝藏公众号,长的好看的人都关注了  简单介绍一下Python吧 Python是一种面向对象程序设计语言,由荷兰人吉多·范罗苏姆于1989年底发明。目前是最常用也是最热门的一门编程语言之一,应用非常广泛。 (不是这个面对对象) 为什么选择python呢? 有人说python是万能的,除了生孩子不会,什么都会。 有人说python是未来
为啥要学Python?
为啥要学Python?如果我跟你说你现在用一天拉出来的财务统计表,学了Python之后能用1个小时就搞定,你学不学?如果你花了8个小时扒的竞品投放数据,学了Python之后能用30min搞定,你学不学?你总羡慕你的同事能6点下班,陪女朋友蹦迪夜生活丰富,你却在满脸油头的爆肝加班,学了Python之后,你也能这样,你学不学?如果我跟你说,学会了Python能增
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
Python初学者必备书籍《Python入门经典》高清PDF版|百度网盘免费下载|Python初学者,自学Python必读
提取码:1028以及前文提到的学习路线图内容简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python入门经典》是面向Python初学者的学习指南,详细介绍了Python编程基础,以及一些高级概念,如面向对象编程。全书分为24章。第1章介绍了Python的背景和安装方法。第2章
最好用的Python学习教程第一篇章
学习不打烊,充电加油只为遇到更好的自己。希望大家如果觉得好的话可以点赞,评论鼓励一下。 一、从这里学起?学Python你应该知道这些内容。 1.1 导语如何快速学会Python?这篇博客会告诉你如何从无到有,构建自己的知识框架,博客主励志打造最好用的Python基础教程。 1.2 为什么要学习Python 简单易学Python是一种代表简单主义思想的语言,
python的学习难?你的方法不对罢了,看看我的。
1、选择Python版本对于使用python的人来说,python的版本就是我们的工作环境,因此,在学习之前需要考虑好学习哪个版本,python2和python3的版本不同,会存在一些差异,虽说不大,但直接学习python3 的话相对来说会好一点,而且跑一趟还能3相对来说对零基础的小白来说更加的友好,容易上手。2、学习Python基础知识Python 是一个
python的这些必备干货知识点,快来看看有没有你不了解的?
Python是当前主流的编程语言之一,其优点有:一:语法简洁,可以让使用者用少量的代码完成相对复杂的效果。二:标准库和第三库多,功能强大;三:站在了人工智能和大数据的风口上;像国内的豆瓣呀,知乎呀等等知名网站都是基于python开发的,而Youtube、Reddit、Dropbpx也是用python的框架开发的。近几年学习python的小伙伴越来越多,那么p
一行代码将Python程序转换为图形界面应用
Gooey项目支持用一行代码将(几乎)任何Python 2或3控制台程序转换为GUI应用程序。1.快速开始开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:,它内置了Python和pip.此外,推荐大家用VSCode编辑器,它有许多的优点:。
建议收藏,22个Python迷你项目(附源码)
在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作。 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程。 大家也可根据项目的目的及提示,自己构建解决方法,提高编程水平。 ① 骰子模拟器 目的:创建一个程序来模拟掷骰子。 提示:当用户询问时,使用random模块生成一个1到6之间