统计学13:总体方差

统计学•目录 统计学•类别 math


总体方差

离中趋势衡量

均值,中位数,众数,这些都是用来衡量集中趋势的(或者说是用一个数表示所有的数值,这样损失了很多信息),但是我们并不知道集中的数字是接近集中趋势,还是远离集中趋势.因此引入离中趋势衡量.

有两组数据$l_1$={2, 2, 3, 3},$l_2$={0, 0, 5, 5},它们拥有相等的平均数 2.5
对于集合$l_1$,每个数值距离它们的$\mu$都比较靠近,而对于$l_2$,每个数对于$\mu$值的距离相对来说都比较远(或者说它们相对于均值比较分散).
那么怎么区分这种数据的特征呢?方差$\sigma ^ 2$

方差

每个数与均值之间的距离的平方的平均数.
好吧有点绕,我们一点一点理解
为了方便计算每个数与均值之间的距离,不便于每个差求绝对值,我们可以采用平方来代替,它肯定是正数.
然后我们对所有的距离组成的数字求平均数来代表距离的这组数(一个值描述数据集),而距离就是来表示我们想知道的离中趋势

方差同样也是为了方便处理数据的人造结构,在不写出数据全部的情况下,通过一个值来对数据集有更好的了解

方差的计算公式:

$$\sigma ^ 2 = \frac{\sum_{i=1}^N (x_i-\mu)^2}{N}$$

对于提到的两组数据,他们对应的方差依次为0.25,6.25.直观上你会发现后者的离均值相对与第一组数据大很多.这说明他们的数都距 离均值(方差)相对远,也就是比较分散.

python计算代码

def mean_fun(val):
    '''求均值函数
    '''
    l = [x for x in val]
    return sum(l) / float(len(l))


def var_fun(val):
    '''计算方差函数
    '''
    mean = mean_fun(val)
    l = [pow((x - mean), 2) for x in val]
    return mean_fun(l)

L_1 = (2, 2, 3, 3)
L_2 = (0, 0, 5, 5)
var_1 = var_fun(L_1)
var_2 = var_fun(L_2)
print(var_1, var_2)

你也可以采用第三方包来快速的求解,不过我觉得还是有必要先学会求解的过程.
代码中float()是为了在python2中一样可以得出正确的结果,python2的/int表示整除

代码利用了封装函数和列表推导式,读起来会比较抽象,有人觉得这样不利于代码的可读性,我觉得那只是逻辑的问题,你的代码需要别人动脑子,不像是在按事物发展顺序的代码,这样并不意味者可读性差.说了这么多,就是代码的可读性跟你逻辑没有关系

代码的可读性好,应该是有注释,但是不要冗余,要有函数类等的文档字符串,变量命名统一规范,书写方式统一规范,服从架构等等,就是一大堆约定好的习惯,而不会限制你的思维.


博主个人能力有限,错误在所难免.
如发现错误请不要吝啬,发邮件给博主更正内容,在此提前鸣谢.
Email: JentChang@163.com (来信请注明文章标题,如果附带链接就更方便了)
你也可以在下方的留言板留下你宝贵的意见.


上一篇
统计学14:样本方差 统计学14:样本方差
统计学•目录 统计学•类别 math 样本方差在面临数据量大的时候,计算方差可能是一个比较困难的事情,这样我们可以考虑抽取一部分样本,计算它的方差来估计总体的离均值情况. 还记得推论统计学所关心的东西在哪儿吗?对样本进行描述性统计然后
2018-12-25
下一篇
统计学12:样本和总体 统计学12:样本和总体
统计学•目录 统计学•类别 math 样本和总体如果要求你去调查全国男性的身高,每个人的,这显然是很难做到的,即便做到了,寻找它们的中位数平均数也是一个大工程.实际中我们常常会 随机 的选取一部分数据作为研究对象,来代表整个总体.我们计
2018-12-25
目录