基于python的单因素方差分析和两两比较

2019-11-17 04:05肖明魁
电脑知识与技术 2019年26期
关键词:方差分析大数据

肖明魁

摘要:近年随着大数据时代的来临,python语言作为一种广泛使用的编程工具被人们越来越多地运用于数据分析,建模及数据挖掘等领域。而今大数据时代,数据研究和分析在各行各业得到广泛的应用,在对多样本数据做检验时,经常会使用单因素方差分析方法,用于考察单个自变量对因变量产生的变化和影响,并通过两两比较进一步验证准确性,本文以实际数据作为案例,研究和分析pthon语言如何实现单因素方差和两两比较具体应用。

关键词:大数据;python;方差分析

中图分类号:TP393               文献标识码:A

文章编号:1009-3044(2019)26-0029-02

开放科学(资源服务)标识码(OSID):

1 基本概念介绍

单因素方差分析是指,对多组样本进行分析过程中,检验具体某个影响因子的差异是否可能对总体观察对象产生显著影响。例如,不同的患者使用不同的药物是否会产生明显不同的临床效果;不同品牌商品在不同的城市的销量是否存在显著差异等。通常被考察的分组样本为分类变量,而考察结果则为连续型变量。

单因素方差分析是有效解决这个问题的方法之一,单因素方差分析中,多组样本总体差异分两部分构成:随机差异和处理因素差异,即:总体差异=随机差异+处理因素差异。随机差异是指不同分组中各独立样本的个体差异,由于分组样本是随机分布,其个体差也是随机存在,而处理因素差异则是指由于样本不同分组规则导致的差异,例如, 同一患者在使用不同的药物之后产生的不同临床效果,同一商品在不同城市销量会有显著差异。与此同时,样本总体差异还和组内差异和组间差异有关,即:样本总体差异=组内差异+组间差异,通常,组内差异是由于随机差异导致,而组间差异的产生则是随机差异和处理因素差异共同影响的结果,对于方差分析研究,重点考察的对象是处理因素差异对总体样本差异产生的影响,即通过组内差异与组间差异相比较,来判断总体样本是否存在处理因素差异,因此,我们需要寻找一个合适的指标作为判断标准,统计学中的离均差,平方和,标准差,方差等都具有一定参考价值,同时还要充分考虑样本分析中数据标准化问题,我们可用以下公式表示两者间的关系:F=MSA/MSE,其中,MSA和MSE分别表示组间和组内差异的方差,又称均方,二者的比值F代表处理因素的影响值,当F?1,组间差异远大于组内差异,说明处理因素差异显著,若F=1,则认为处理因素影响可以忽略,F值的大小通常采用P值确定。

在对总体样本作差异分析之后,如果拒绝H0原假设,即各分组样本之间可能存在显著差异,若想具体了解不同分组之间的差异,需要对样本检验做进一步分析,即两两比较,同时,方差分析对样本分布也有明确的要求,第一,各样本必须相互独立,第二,样本总体必须符合正态分布,第三,样本必须满足方差齐性要求。

对多组样本假设分析理论上可采用两两比较的方法,对各组样本作T检验分析,分别考察两组样本的差异,然而实际研究过程中,每次T检验都可能会出现弃真错误,即统计学概念中的第一类错误,误将H0原假设拒绝,通常假设检验的允许误差为0.05,即α=0.05,相对的,每次正确推断的概率为0.95,而经过N组样本比较之后,最终检验正确概率为0.95^N,检验准确率呈指数级下降,而α=1-0.95^N,显然无法满足假设检验的允许误差范围,可见对于实际研究中多组样本假设检验,简单的两两比较方法是不可行的。

解决两两比较方法中一类错误放大问题的关键在于控制一类错误的大小,即对一类错误作校正。在实际样本分析过程中,误差校正通常会遇到三种情形:一,比较误差CER,指每次分组比较时所出现的一类错误概率,即α值;二,完全无效假设条件下的检验误差率EERC,指当原假设H0完全成立时一类错误出现的概率,因此,方差分析检验也可被认为是对EERC的控制;三,最大试验误差率MEER,指在任何完全或部分无效假设成立时,一类错误出现的最大概率,在实际研究过程中,MEER使用范围最广。

两两比较对于一类错误的控制方法有很多种,通常可分为两大类:直接校正P值法和联合检验法。直接校正法是通过控制每次分组检验的假设概率,使得样本总α水准被限制在0.05之内,从而确保总体检验的有效性,常用的直接校正法有sidak校正,bonferroni校正等,直接校正法存在一定缺陷,由于该方法对每组样本都做两两比较,因此不仅效率低,而且增加了误差影响,其次,直接校正法对于一类错误控制较严,检验结果关于阳性结论过于保守。联合检验法克服了这一缺陷,该方法在标准误和自由度的计算上利用了全部样本信息,使得结果相对于直接校正法更准确,然而,如果不对联合检验结果做校正,也有可能使得假阳性的概率增加。联合检验法通常包括以下几种,SNK法,Turkey,Duncan,Scheffe,Dunnet等。

两两比较方法有很多种,在实际研究中,应当根据样本分析的具体情况采用不同方法,对于各个样本互相独立,或者有针对性地对若干对均数做分析时,此时不必使用两两比较,一般采用T检验就够了;若总体样本检验结果接受原假设H0,各样本之间无明显差异,则无须进行两两比较;对于某些明确对照组进行验证性研究时,适合采用Bonferroni法;对于随机多组均数间的探索性验证研究,为确保原假设的准确性,需要严格控制一类错误,通常采用Turkey法和Scheffe法。

2 具体案例实现

本文以某市多所中学在校生各科成绩汇总表数据为例,以各学校在校生成绩作为作为分组样本, 具体阐述单因素方差和两两比较分析方法。

Python语言集成了大量用于数据分析挖掘的工具包,最常用的包括statsmodels,scipy等模块,其中statsmodels包含了大量统计模型,非常方便用于描述統计,模型估计和推断,使用之前,需要做模型设定,代码如下:

输出结果显示为标准方差分析表格,对分组变量学校的检验结果表明,该样本离均差平方和为8.085729e+07,自由度为12,统计量F值为849.921572,PR值为0,因此,检验结果拒绝原假设H0,可以认为分组样本之间存在显著差异。

确定分组样本之间存在差异之后,还须进一步研究分析各分组样本之间差异程度,即两两比较。Python提供了一个有效的工具包scikit,用于分析研究。代码如下:

輸出部分结果如下:

表格行列分别表示分组变量学校,表格中的每个数字则表示两两比较的PR值,若PR<0.05,则检验结果拒绝原假设H0,即两组样本之间存在显著差异;反之,则接受原假设,即两组样本可以被认为无显著差异。

表格数据展示相对比较复杂,python还可以通过热力图的可视化方式展示更加直观,以上数据可以通过绘图模块matplotlib处理,达到理想效果,代码如下:

输出结果如图所示:

热力图通过不同颜色色块,很直观地展示出分组样本两两比较的验证结果。

3 结束语

作为近年最受欢迎的编程工具之一,python语法简洁,清晰,且易于理解和维护,尤其是附带的功能强大,种类丰富的各种工具包和模块,为数据研究分析工程提供了更多创新思路和可行性解决方案,除了简单的一般线性模型,python工具包还提供了多种回归模型,树模型,随机森林,神经网络等更为复杂的建模和功能,充分满足用户工程开发需要,在数据分析和研究过程中,应当充分利用开发工具提供的各种模块和方法,可以达到事半功倍的效果。与此同时,更为丰富强大的python模块也在源源不断地开发和发布过程中,相信在未来大数据时代,作为重要的软件开发工具,python必将发挥更大的潜力和应用价值。

参考文献:

[1] 陈明.大数据可视化分析[J].计算机教育,2015-3-10.

[2] 聂晶.python在大数据挖掘和分析中的应用优势[J].广西民族大学学报,2018-2-15.

[3] 刘雨珂,王平.基于Python+Pandas+Matplotlib的学生成绩数据统计与图形输出实现[J].福建电脑,2017-10-31.

[4] 翟高粤.基于Python的数据分析概述[J].甘肃科技纵横,2018-11-25.

[5] 聂晶.Python在大数据挖掘和分析中的应用优势[J].广西民族大学学报(自然科学版),2018-01.

[6] 叶惠仙.Python在学院招生数据分析中的应用[J].计算机时代,2018-11.

【通联编辑:梁书】

猜你喜欢
方差分析大数据
高校二手书市场细分研究
应用统计学课堂教学组织实践与探索