方差检验
什么是方差?这个知识点最基础的概念可以看一下初中课本,《人教版数学八年级下册》
【微课】人教版八年级数学下册20.2.1《方差》图文精讲(含视频、电子教材、知识点、课件、习题)
给出一组数据,先算出整体平均数,然后用每个数和平均数的差的平方,累计起来再求一次平均,这个平均数就反应了这组数据中的波动情况,它就是这组数据的方差。
- 例如下图,连续7天的温度检测,可以看到两组数据的波动不同,蓝色的气温比较稳定,绿色的昼夜变化差异较大。
我们可以理解为变化波动小的这组数据比较稳定,每一个数和平均值之间相互关系更紧密一些。变化差异大的那组数据和平均值好像就没那么紧密了。利用这个观点,我们如果能判断出两组数据之间的差异比较小,那是不是就可以理解为这两组数据他们之间是有相互影响的呢?答案是肯定的啦。
所以使用差方再求平均的方法计算两组数的差异化就是方差检验。
那就是用两组数据,一对儿一对儿的计算差方,求平均吗?
不不不~~~ 这么算,体现不出两组数据的差异波动。
那方差怎么算呢,具体的计算过程需要如下处理:
- 数据准备
- 基础数据计算
- 方差值、概率值计算
- 结论计算
一、数据准备,如下处理:
前提条件是自变量数据和因变量数据条数一致,根据某种关系能把自变量和因变量一一对应上。
1、要求出定量数据的整体平均数
2、对定类数据进行归类,共k组,然后把定量数据,根据归类来分组
3、每组数据的数据个数为
4、计算出每组数据的组内平均数
以上三步就是把方差检验需要的基础数据算好了。
二、下面就用这些基础数据进行方差检验:
总平方和SST,是全部观测值与总均值的误差平方和。
组间平方和SSA,是各组均值与总均值的误差平方和,反映各样本均值之间的差异程度。
组内平方和SSE,是每个水平的样本数据与其组均值的误差平方和,反映了随机误差的大小。
这三者之间的计算如下:
SST:
SSA:
SSE:
按理说计算结果应该满足: SST = SSA + SSE
以上需要计算的三个差的平方和就准备好了。
三、那么接下来我们继续计算方差值和概率值:
组间均方/组间方差MSA: 等于SSA/(k-1),k为归类组的个数
组内均方/组内方差MSE: 等于SSE/(n-k),n为全部观测值的个数
方差值FV: 等于 MSA/MSE
概率值PV: 用来判断是否拒绝原假设 的依据
影响程度系数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 是承认原假设可能性的概率
四、相关性结论计算:
原假设 :就是我们在分析数据之前,我们会假设自变量和因变量之间是没有相互关系的,就是说自变量没有明显的影响因变量。(对应到SST、SSA、SSE上也就是说这些平方和都比较小,基本上没有什么误差。)
显著性水平:0.05 也就是说计算出来的概率小于0.05,我们就认为原假设 不成立,或者是说让原假设成立的可能性太小了。显著性水平在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就不成立,必须要承认自变量和因变量有相关关系,自变量分类的不同,明显影响到了因变量的数据。
好啦,归根结底还是一个概率问题,方差检验这部分内容暂时写到这里,等我后续再补充写一个进一步分析吧,难道你不想知道定类数据中的哪种分类对结果数据影响最大吗?
哈哈,我现在还没学废,等我学废了,再来吧