四 描述性统计分析

一、通过描述性统计进行数据探索

数据源:sndHsPr.csv 提取码:mxje
数据字段如下:

distroomnumhallsAREAfloorsubwayschoolprice
城区(拼音)卧室数目厅数房屋面积楼层是否有地铁是否学区房单位面积房价

1.1 变量类型与数据分布类型

在数据分析前需要先了解数据都包含哪些度量类型:

变量描述
名义变量指包含类别信息的变量,该类别没有大小、高低、次序之分,比如“性别”、“民族”、“地址”
等级变量即有序分类变量,该类别有大小、高低、次序之分,比如“年龄段”、“满意度”
连续变量指在规定范围区间可以取任意值,比如“人均收入”、“年龄”

变量的分布类型其实是对实际变量分布的一个概括与抽象。我们经常会在某些地方听到,某某变量符合正态分布或卡方分布等等。其实这些分布的意义在于,我们一旦知道某变量服从哪个分布,就可以很快知道变量在相应取值的概率,并且结合业务场景做出相应解释。
如下图提供了常见的分布曲线,具体在这里不再赘述。
在这里插入图片描述

1.2 分类变量的统计量

名义变量和等级变量合称为分类变量。其中名义变量不能比较大小,是没有方向性的,比如“性别”,我们不能说男性高于女性,同样也不能说女性高于男性。等级变量有等级关系,是有方向的,比如教育程度(小学<中学<大学)。

变量统计量
名义变量频次、百分比
等级变量频次、百分比、累计频次、累计百分比

1.3 连续变量的分布与集中趋势

描述连续变量的统计量主要有四种,分别用于描述数据的集中趋势、离中趋势,偏态程度、与尖峰程度。
数据的集中水平:常见的指标有平均数、中位数与众数
接下来演示使用python计算变量的平均数、中位数、四分位数以及变量分布的直方图。
sndHsPr数据集是一份二手房价格的数据,在Pandas种导入并去除缺失值:

import pandas as pd
data  = pd.read_csv('./sndHsPr.csv')

其中变量price表示价格:
求price的均值平均数:

print(data.price.agg(['mean','median','std']))

输出:
在这里插入图片描述

求price四分位数

data.price.quantile([0.25,0.5,0.75])

输出:
在这里插入图片描述
查看price变量的分布,这里bins参数表示直方图下的区间个数

data.price.hist(bins=20)

在这里插入图片描述从直方图可以看出单位面积房价略微右偏。

1.4 连续变量的离散程度

只描述数据的集中趋势是不够的,以为这样会忽视数据的差异情况。这里需要引入另一个指标或统计量用以描述数据的离散程度。
描述数据离散程度的常见指标有极差、方差和平均绝对偏差。
三种指标都可以反应数据的离散程度,但方差和标准差更为优异。
求price的极差,可以通过max与min函数得到变量的最大值与最小值:

data.price.max()-data.price.min()

求price的标准差和方差

data.price.var()#求取方差
data.price.std()#求取标准差

1.5 数据分布的对称与高矮

在数据集中水平中,数据分布的对称会影响到平均数是否能够代表数据的集中水平,那么描述数据分布的对称与高矮时,需要引入偏度和峰度的概念。
偏度即数据的偏斜程度,峰度即数据分布的高矮程度。正态分布的偏度和峰度都为0。
左偏峰度时,众数>中位数>均值,偏值大于0。
右偏峰度时,均值>中位数>众数,峰值小于0.
峰度大于0,说明变量的分布相比正态分布更加密集,反之峰度小于0,则较为分散。
在pandas中,提供skew和kurtosis方法实现偏度与峰度。例如模拟1000个标准正态分布的随机数进行演示:

import numpy as np
normal = pd.Series(np.random.randn(1000),name='normal')
normal.skew()#求取偏度
normal.kurtosis()#求取峰度

二、制作报表与统计制图

制作报表就是根据数据类型,选取合适统计量并进行展现的过程。报表会展现数据的主要信息其中分为维度(分类变量)和度量(连续变量)。仅含有维度指标的报表称为频次表和交叉表,含有维度和度量两类指标的报表称为汇总表,其中度量指标总是以某个统计量的形式出现,最常见的是均值、总和、频次。
接下来还以(sndHsPr.csv)演示如何制作报表并进行可视化展现。

2.1 单因子频数

即分析单个分类变量的分布情况,提供每个水平的频次、百分比和累计值。

data.dist.value_counts()#统计每个城区出现的频次

在这里插入图片描述
用条形图展现这个频次

data.dist.value_counts().plot(kind='bar')

在这里插入图片描述
用柱形图展现:

data.dist.value_counts().plot(kind='pie')

在这里插入图片描述

2.2 表分析

也称交叉表,比如分析是否有地铁与是否是学区房之间的关系。

pd.crosstab(data.subway,data.school)#地铁与学校交叉统计

在这里插入图片描述

sub_sch = pd.crosstab(data.subway,data.school)#地铁与学校交叉统计
sub_sch = sub_sch.div(sub_sch.sum(1),axis=0)
sub_sch.plot(kind = 'bar',stacked = True)

在这里插入图片描述

2.3 汇总统计量

按照某个分类变量分组,对连续变量进行描述性统计。
统计每个城区单位面积房价的主要统计信息,可以使用pandas的groupby函数。

data.price.groupby(data.dist).agg(['mean','max','min'])

在这里插入图片描述
每个城区平均房屋价格的排序情况:

data.price.groupby(data.dist).mean().sort_values(ascending = True).plot(kind = 'barh')

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲸落寰宇

小编会不断努力

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

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

打赏作者

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

抵扣说明:

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

余额充值