《程序员的统计思维》学习笔记:描述性统计量
##概念
- 均值
$$ \mu = \frac1n\sum_i^nx_i $$
描述样本的典型值或者集中趋势
- 方差
$$ \sigma^2=\frac1n \sum_i^n(x_i-\mu)^2 $$
描述样本的分散情况
- 统计显著性(statistically significant)
若一个直观效应不太可能是由随机因素引起的,就是统计显著的
分布
汇总统计量简单明了,但是风险也大,因为他们很有可能会掩盖数据的真想。另一种方法就是看数据的分布(distribution),它描述了各个值出现的频繁程度。
表示分布最常用的方法是直方图(histogram),这种图用于展示各个值出现的频数或者概率。
在这里,*频数*指的是数据集中一个值出现的次数,*概率*就是频数除以样本数量。
在python中,计算频数最简单的办法就是用字典。给一个序列t:
|
|
得到的结果是一个将值映射到其频数的字典。将其除以 $n$ 即可把频数转换成概率,这称为归一化:1234n = float(len(t))pmf = {}for x, freq in hist.items(): pmf[x] = freq/n
归一化后的直方图成为PMF(probability Mass Function),概率质量函数,这个函数是值到其概率的映射。
直方图的表示
编写一个Pmf的模块,定义了表示直方图的Hist对象,以及表示PMF的Pmf对象。Pmf.py
|
|
绘制直方图
python 中有不少画图的包,可以使用复杂的matplotlib,当然也有简单的seaborn。
使用matplotlib中的pyplot画:123456import Pmffrom matplotlib import pyplothist = Pmf.MakeHistFromList([1,2,2,2,2,2,2,4,4,4,4,5])vals,freqs = hist.Render()rectangles = pyplot.bar(vals,freqs)pyplot.show()
|
|