数据的描述性统计
数据的描述性统计
对数据的描述性统计主要是指对结构化数据的描述分析,可从三个维度进行分析:数据的集中趋势、数据的离散程度和数据的分布形态。
描述数据集中趋势的指标有:众数、中位数、平均数(包含算数平均数、加权平均数、集合平均数)和分位数。
描述数据的离散程度的指标有:方差、标准差、极差和平均差(数值型数据);四分位差(顺序数据);异众比率(分类数据);离散系数 (相对离散程度)。
描述数据分布形态的指标:偏态系数和峰态系数。
1.数据的集中趋势描述指标
算术平均数
简单算数平均数:即所有数值相加除以数值个数,
公式:
加权算数平均数:当每个数值的重要程度不同时,为了测算平均水平就要给不同数值赋予不同的权重。所有数据的权重都为1的加权算数平均数就是简单算术平均数。
公式:
算术平均数的优点:受样本数据波动的影响较小,具有一定的稳定性;缺点是易受极大值或极小值的影响。
用python3实现的代码:
对于Numpy包里的多维数组ndarray,利用data.mean()或者np.mean(data)
#创建一个服从正态分布的多维数组
import numpy as np
data=np.random.randn(5,4)
#求平均值
data.mean()
np.mean(data)
#求加权算数平均数
import numpy as np
a=[6,7,8]
np.average(a,weights=[1,2,3])
对于常用的Pandas包,常用的数据结构是Series(一组数据+索引)和DdtaFrame(表格型数据结构,行索引+列索引)
求均值可以用mean()或者describe()
import pandas as pd
import numpy as np
df=np.DataFrame(np.random.randn(4,3),index=['a','b','c','d'],columns=['one','two','three'])
df.describe()
df.mean()
df.mean(axis=0)#跨行即每列的平均值, 与df.mean()结果一致
df.mean(axis=1)#跨列即每行的平均值
几何平均数
当数据之间的关系是乘除关系时,用几何平均数来表示数据集合的集中趋势。
公式:
众数
即数据集合中出现次数最多的数值(众数可以是0/1或多个)
用python3求众数:利用scipy下的stats模块
from scipy import stats
a=[0,1,1,2,2,2,3,4,5,6]
stata.mode(a)[0][0]
中位数
将集合中所有的数值按照从低到高进行排序,处于最中间的一个数就是中位数,若中间有两个数则中位数为这两个数的算术平均值。
中位数跟算术平均数相比较的话,中位数不受极端值的影响。python3中可用describe()来查看第二四分位数即中位数。
分位数
四分位数,即把所有数值按由小到大排序分成四等份,处于三个分割点位置的得分就是四分位数。也可以利用describe()来查看三个四分位数。
2.数据的离散程度描述指标
用离散程度指标来衡量数据集合的波动情况
数值型数据:方差、标准差、极差、平均差
极差
数据集合中最大值与最小值的差,亦成为全距。极差易受极值的影响,对离散程度的描述不精确。
平均偏差
描述了所有数值与平均值的平均偏差距离
公式:
方差和标准差
一般情况下会用样本方差来估计总体方差
总体方差为:
样本方差为:
标准差就是方差的正值平方根;方差/标准差越大,数据的离中趋势越大。
离散系数(变异系数)
离散系数是一种相对离散程度的衡量,当两个数据集合的算数平均值不同,但方差和标准差相等时,可以用离散系数来衡量数据集合的离散程度。
样本的离散系数:
顺序数据:四分位差
第三四分位数与第一四分位数的差值,第二四分位数就是中位数,(要对数据按照从低到高进行排序,排在四分之一位置的数值就是第一四分位数,排在四分之二位置即第二四分位数,排在四分之三位置就是第三四分位数),这个差值区间包含了整个数据集合50%的数据。
分类数据:异众比率
指的是总体中非众数次数与总体全部次数之比,也即非众数组的频数占总频数的比例。主要用于测度分类数据的离散程度。
3.数据分布形态
偏态系数
偏态系数用来判断数据集合的分布形态是否对称,当偏态系数等于0时,对称分布;偏态系数小于0时,左偏分布,长尾拖在左边;偏态系数大于0时,右偏分布,长尾拖在右边。
峰态系数
用来描述单峰分布曲线的峰度高低和陡峭程度的指标,峰态系数和单峰分布形态之间的关系为:
当峰态系数等于3时,代表分布曲线是偏平程度适中的常峰态(正态分布的峰形就是常峰态);
当峰态系数小于3时,分布曲线是低峰态;
当峰态系数大于3时,分布曲线是尖峰态。