预测算法模型系列(四)

方差检验

什么是方差?这个知识点最基础的概念可以看一下初中课本,《人教版数学八年级下册》

【微课】人教版八年级数学下册20.2.1《方差》图文精讲(含视频、电子教材、知识点、课件、习题)

给出一组数据,先算出整体平均数,然后用每个数和平均数的差的平方,累计起来再求一次平均,这个平均数就反应了这组数据中的波动情况,它就是这组数据的方差。

  • 例如下图,连续7天的温度检测,可以看到两组数据的波动不同,蓝色的气温比较稳定,绿色的昼夜变化差异较大。

我们可以理解为变化波动小的这组数据比较稳定,每一个数和平均值之间相互关系更紧密一些。变化差异大的那组数据和平均值好像就没那么紧密了。利用这个观点,我们如果能判断出两组数据之间的差异比较小,那是不是就可以理解为这两组数据他们之间是有相互影响的呢?答案是肯定的啦。

所以使用差方再求平均的方法计算两组数的差异化就是方差检验。

那就是用两组数据,一对儿一对儿的计算差方,求平均吗?

不不不~~~    这么算,体现不出两组数据的差异波动。

那方差怎么算呢,具体的计算过程需要如下处理:

  1. 数据准备
  2. 基础数据计算
  3. 方差值、概率值计算
  4. 结论计算

一、数据准备,如下处理:

前提条件是自变量数据和因变量数据条数一致,根据某种关系能把自变量和因变量一一对应上。

1、要求出定量数据的整体平均数\overline{X}

2、对定类数据进行归类\left [ a,b,c,... \right ],共k组,然后把定量数据,根据归类来分组\begin{bmatrix} & a\left [ a1,a2,a3,... \right ] & \\ & b\left [ b1,b2,b3,... \right ] & \\ & c\left [ c1,c2,c3,... \right ] & \\ ... & \end{bmatrix}

3、每组数据的数据个数为\left [ ka,kb,kc,... \right ]

4、计算出每组数据的组内平均数\left [ \overline{Xa}, \overline{Xb}, \overline{Xc},... \right ]

以上三步就是把方差检验需要的基础数据算好了。

二、下面就用这些基础数据进行方差检验:

总平方和SST,是全部观测值与总均值的误差平方和。

组间平方和SSA,是各组均值与总均值的误差平方和,反映各样本均值之间的差异程度。

组内平方和SSE,是每个水平的样本数据与其组均值的误差平方和,反映了随机误差的大小。

这三者之间的计算如下:

SST: \left ( a1 - \overline{X} \right )^{2} + \left ( a2 - \overline{X} \right )^{2} + ... + \left ( b1 - \overline{X} \right )^{2} + \left ( b2 - \overline{X} \right )^{2} +... + \left ( c1 - \overline{X} \right )^{2} + \left ( c2 - \overline{X} \right )^{2} +...

SSA: ka*\left ( \overline{Xa} - \overline{X} \right )^{2} + kb*\left ( \overline{Xb} - \overline{X} \right )^{2} + kc*\left ( \overline{Xc} - \overline{X} \right )^{2} + ...

SSE: \left [ \left ( a1 - \overline{Xa} \right )^{2} + \left ( a2 - \overline{Xa} \right )^{2} + \left ( a3 - \overline{Xa} \right )^{2} + ... \right ] + \left [ \left ( b1 - \overline{Xb} \right )^{2} + \left ( b2 - \overline{Xb} \right )^{2} + \left ( b3 - \overline{Xb} \right )^{2} + ... \right ] + \left [ \left ( c1 - \overline{Xc} \right )^{2} + \left ( c2 - \overline{Xc} \right )^{2} + \left ( c3 - \overline{Xc} \right )^{2} + ... \right ] + ...

按理说计算结果应该满足: SST = SSA + SSE

以上需要计算的三个差的平方和就准备好了。

三、那么接下来我们继续计算方差值和概率值:

组间均方/组间方差MSA: 等于SSA/(k-1),k为归类\left [ a,b,c,... \right ]组的个数

组内均方/组内方差MSE: 等于SSE/(n-k),n为全部观测值的个数

方差值FV: 等于 MSA/MSE

概率值PV: 用来判断是否拒绝原假设 H_{0} 的依据

影响程度系数R²: SSA/SST 用来衡量自变量与因变量的关系强度

P值的计算如果是java开发的话,可以使用 commons-math-3.x.x.jar包,提供了计算的工具。

// k是分组的个数 n是总记录数
FDistribution fdist = new FDistribution(null, (k-1), (n-k));
// FValue 是方差值
Double PValue = fdist.cumulativeProbability(FValue);
// PValue 是承认原假设可能性的概率

四、相关性结论计算:

原假设H_{0} :就是我们在分析数据之前,我们会假设自变量和因变量之间是没有相互关系的,就是说自变量没有明显的影响因变量。(对应到SST、SSA、SSE上也就是说这些平方和都比较小,基本上没有什么误差。)

显著性水平:0.05  也就是说计算出来的概率小于0.05,我们就认为原假设H_{0} 不成立,或者是说让原假设成立的可能性太小了。显著性水平在0到0.5之间自主选择(一般默认0.05)

另外也可以用方差值FV到“统计分布临界值表”去比对,根据比对数据判断原假设是否成立。

结论: 根据计算的概率值和显著性水平比对结果,就可以个给出结论,自变量和因变量是否有强相关性。

五、总结一下,数值的相关性分析:

回头我们再详细聊聊SST、SSA、SSE、MSA、MSE这些东西。

如果每一个数据值都一样,每个数都等于平均数,我们计算上面的数据毫无意义,因为不管自变量的分类怎么变化,计算结果都没有差异。回头想想什么条件的数据,用方差?

自变量是定类数据,因变量是定量数据,也就是说自变量是学历水平(小学、初中、高中、大学),因变量是工资100、100、100... 这么看如果每个人的工资都是100,那不管什么学历,对能得到多少工资没有任何影响,对不对。

分组这件事儿是数据整理的第一步,必须要根据定类数据来分组,上面的例子,就要把小学水平人的工资放到一起,初中水平的放到一起,高中放到一起,大学放到一起,一共分为4组。这样我们就可以看看这4个组之间的数据误差是由有明显的变化,才能看出学历是否对工资有明显影响。

组内误差SSE可以看出是否异常毛刺数据比较多,也就是随机误差太大,比如小学组的人工资平均是100,但是有个别人工资是1000,这样的异常数据少的话,那组内误差SSE也不会太大,但是这样的异常数据太多,那就要考虑看看是否要修正数据了。

组间误差SSA也是反应随机误差情况,上面例子中,如果小学样本数据很少,而且数据差异也大,那么组间误差就受到影响,个别分组异常可以忽略,也可以修正数据,但是大部分分类异常,那就需要重新整理整理数据了。

好比一个人扔骰子,六个面1-6按理说扔出每一面的概率都一样,扔到一定多的次数,基本上每个数出现的次数都差不多,个别数多一点点或少一点点,这就是随机误差,但是不影响大局。但如果某几个数异常的多,其他数出现次数少的可怜,那就是有因果关系啦,是不是骰子的一些面被做了手脚呢?

从概率学上来说,达到一定量的时候组间误差和组内误差其实相差不大,也就是说MSA和MSE的比值趋近于1,这种情况就是肯定了原假设H0(一般都是假设没影响,不相关)。但是经过计算后发现这个比值远大于1,就是说组间的误差明显体现出来了,那肯定是这个分类的不同对目标数据有影响呀,那我们的原假设H0就不成立,必须要承认自变量和因变量有相关关系,自变量分类的不同,明显影响到了因变量的数据。

好啦,归根结底还是一个概率问题,方差检验这部分内容暂时写到这里,等我后续再补充写一个进一步分析吧,难道你不想知道定类数据中的哪种分类对结果数据影响最大吗?

哈哈,我现在还没学废,等我学废了,再来吧

预测算法模型系列(五)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值