统计假设检验之显著性检验(significance test)

统计假设检验之显著性检验(significance test)转载于关于显著性检验 你想要的都在这儿了 基础篇 无论你从事何种领域的科学研究还是统计调查 显著性检验作为判断两个乃至多个数据集之间是否存在差异的方法被广泛应用于各个科研领域 笔者作为科研界一名新人也曾经在显著性检验方面吃过许多苦头 后来醉心于统计理论半载有余才摸到显著性检验的皮毛 也为显著性检验理论之精妙 品种之繁多 逻辑之严谨所折服 在此 特写下这篇博文 以供那些仍然挣扎在显著性检验

转载于 关于显著性检验,你想要的都在这儿了!!(基础篇)



一、显著性检验前传:什么是显著性检验?它与统计假设检验有什么关系?为什么要做显著性检验?

“显著性检验”实际上是英文 significance test 的汉语译名。在统计学中,显著性检验是“统计假设检验”(Statistical hypothesis testing)的一种,显著性检验是用于检测科学实验中实验组与对照组之间是否有差异以及差异是否显著的办法,也是为了突出实验组效果比对照组效果明显,否则的话也便没有什么意义可言。实际上,了解显著性检验的“宗门背景”(统计假设检验)更有助于一个科研新手理解显著性检验。“统计假设检验”这一正名实际上指出了“显著性检验”的前提条件是“统计假设”,换言之“无假设,不检验”。任何人在使用显著性检验之前必须在心里明白自己的科研假设是什么,否则显著性检验就是“水中月,镜中花”,可望而不可即。用更通俗的话来说就是要先对科研数据做一个假设,然后用检验来检查假设对不对。一般而言,把要检验的假设称之为原假设,记为H0;把与H0相对应(相反)的假设称之为备择假设,记为H1。
如果原假设为真,而检验的结论却劝你放弃原假设。此时,我们把这种错误称之为第一类错误。通常把第一类错误出现的概率记为α
如果原假设不真,而检验的结论却劝你不放弃原假设。此时,我们把这种错误称之为第二类错误。通常把第二类错误出现的概率记为β
通常只限定犯第一类错误的最大概率α, 不考虑犯第二类错误的概率β。我们把这样的假设检验称为显著性检验,概率α称为显著性水平。 显著性水平是数学界约定俗成的,一般有α =0.05,0.025.0.01这三种情况。代表着显著性检验的结论错误率必须低于5%或2.5%或1%(统计学中,通常把在现实世界中发生几率小于5%的事件称之为“不可能事件”)。以上这一段话实际上讲授了显著性检验与统计假设检验的关系。



二、怎么做显著性检验?(基于MATLAB)

显著性检验可以分为参数检验非参数检验。参数检验要求样本来源于正态总体(服从正态分布),且这些正态总体拥有相同的方差,在这样的基本假定(正态性假定方差齐性假定)下检验各总体均值是否相等,属于参数检验。

当数据不满足正态性和方差齐性假定时,参数检验可能会给出错误的答案,此时应采用基于秩的非参数检验。

2.1 参数检验(方差分析)

参数检验的方法及其相应知识点的解释,这里只给出参数检验中常见的方差分析(anova)

2.1.1 单因素一元方差分析的方法和案例:
>> strength = [82 86 79 83 84 85 86 87 74 82 78 75 76 77 79 79 77 78 82 79]; 

2.设置对应与strength对应位置的标签为alloy:

>> alloy = {'st','st','st','st','st','st','st','st','al1','al1','al1','al1','al1','al1','al2','al2','al2','al2','al2','al2'}; 

3.调用anova1函数

>> p = anova1(strength,alloy) 
统计假设检验之显著性检验(significance test)
统计假设检验之显著性检验(significance test)

在上文中,我们提到过。方差分析必须满足两条假设,分别是正态性假定和方差齐性假定。因此,在一个完整的统计工程中,必须首先检测数据的正态性假定和方差齐性假定,这就涉及到另外两个函数 lillietest 正态检验函数(这正是我们上文提到的分布假设检验而不是参数检验,它检验的目标是数据集服从何种分布)和 vartestn 方差齐性检验(这正是我们上文提到的参数检验而不是分布假设检验 ,它检测的目标是数据集的分布服从什么样的参数,这里就是方差)

函数二:lillietest(X)

>> [h,p] = lillietest (strength(1:8)) h = 0 p = 0.5000 
>> [h,p] = lillietest (strength(9:14)) h = 0 p = 0.5000 >> [h,p] = lillietest (strength(15:20)) h = 0 p = 0.5000 

可以得出结论,strength中三组数都服从正态分布

函数三:vartestn(X, Group)

>> p = vartestn(strength,alloy,'off') p =0.5142 
2.1.2 双因素一元方差分析的方法和案例:
>> popcorn =[ 5.5000 4.5000 3.5000 5.5000 4.5000 4.0000 6.0000 4.0000 3.0000 6.5000 5.0000 4.0000 7.0000 5.5000 5.0000 7.0000 5.0000 4.5000]; >> [p,table,stats] = anova2(popcorn,3) p = 0.0000 0.0001 0.7462 
2.1.3 多因素一元方差分析的方法和案例:

p = anovan(X, Group, Opt)
其中,X代表着待检验数据;Group代表着X的因素,由于是多因素,所以Group是多个列组成的。Opt可以选择为’model’,model后面可以填写’full’和’interaction’。
比如因素有三个x,y,z,那么如果model为interaction,计算结果会包括x的显著性,y的显著性,z的显著性,xy,xz,yz的交互影响显著性
如果model为full,计算结果会包括x的显著性,y的显著性,z的显著性,xy,xz,yz的交互影响显著性以及xyz的交互显著性。


这里的例子仍然来自于MATLAB的help文档,y是待检验的数据,g1,g2,g3是与y中数据一一对应的3个因素(数据标签)

y = [52.7 57.5 45.9 44.5 53.0 57.0 45.9 44.0]'; g1 = [1 2 1 2 1 2 1 2]; g2 = {'hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo'}; g3 = {'may';'may';'may';'may';'june';'june';'june';'june'}; >> p = anovan(y,{g1 g2 g3},'model','interaction') p = 0.0347 0.0048 0.2578 0.0158 0.1444 0.5000 

这里有一个使用的小窍门,如果你想做非平衡双因素一元方差分析那么也可以采用多因素一元方差分析函数。

2.1.4 单因素多元方差分析的方法和案例:

[d, p] = manova1(X, Group);

>> X = 125 60 338 210 119 80 233 330 63 51 260 203 65 51 429 150 130 65 403 205 65 33 480 260 100 34 468 295 65 63 416 265 110 69 377 260 88 78 299 360 73 63 390 320 103 54 416 310 64 51 507 320 >> Groups = 1 1 1 1 1 1 2 2 2 2 2 2 2 >> [d, p] = manova1(X, Groups); d = 0 p = 0.0695 

因此,拒绝原假设,各组的组均值不是相同的多元向量。

2.2 非参数检验(Kruskal-Wallis检验和Friedman检验):

到这里,参数检验部分就算是说完了。我们可以回顾一下,参数检验的四种函数分为anova1,anova2,anovan,manova1。他们都基于共同的两个假设:正态性假定和方差齐性假定 ,分别对应着函数 lillietest 和 vartestn。但是,我们在实际工作中,不可能总是遇到满足这两个假定的统计数据,这时候,如果强行采用参数检验就会造成错误。此时,可以采用基于秩和的非参数检验。这里我们介绍两种非参数检验:Kruskal-Wallis检验,Friedman检验。通过参数检验的部分介绍,想必读者已经对显著性检验入门,有些细节这里不再详细介绍,留作有兴趣读者自行查询。这里对分参数检验只做必要介绍。

2.2.1 Kruskal-Wallis检验

Kruskal-Wallis检验又被称之为单因素非参数方差分析,是非参数版的anova1。该检验的原假设是:k个独立样本来自于相同的正态总体。其MATLAB函数如下:

p = kruskalwallis(X,Group) 

X,Group,p和参数检验里的完全相同。不再详细介绍。

2.2.2 Friedman检验

Friedman检验又被称之为双因素秩方差分析,是非参数版的anova2。同anova2一样,待检验的数据也必须是均衡的。但是需要特别注意的是,Friedman检验和anova2检验不完全相同,anova2同时注意两个因素对待检验数据的影响,但是,Friedman检验只注重2个因素中的其中一个对待检验数据的影响,而另一个因素则是用来区分区组用的。

统计假设检验之显著性检验(significance test)

如上图所示矩阵X,Friedman检验只关注X的各个列(因素A)水平之间有无显著差异,他对各行之间(因素B,也被称之为区组因素)完全不感兴趣。因此,Friedman检验的原假设是k个独立样本(X的各列)来自于相同的正态总体。至于为何Friedman检验对因素B不感兴趣,这里通过一个例子说明。该例子来源于《MATLAB统计分析与应用40个案例分析》

有4名美食评委1234对来自于四个地区ABCD的名厨的名菜水煮鱼做出评价打分,数据如下:

地区 A B C D
美食评委
1 85 82 82 79
2 87 75 86 82
3 90 81 80 76
4 80 75 81 75

现在我们想知道,这四个地方的水煮鱼品质是否相同。

数据分析:我们的目标是四个地方水煮鱼的品质是否相同。那么同一个评委对四个地区厨师的打分就具有可参考性,而不同地区评委之间对同一个厨师的打分参考性几乎没有(受评委自己的主观意识影响太强)。因此,我们认为四个地区是因素A,而评委是因素B(区组因素),不同区组之间的数据没有可比较性。

>> X = 85 82 82 79 87 75 86 82 90 81 80 76 80 75 81 75 >> p = friedman(X,1) p = 0.0434 

因此可以认为,四个地区制作水煮鱼的水平有显著性差别。至于是那两个之间有显著性差别还需要一一比较。

结语:讲到这里,常见的显著性检验方法就算是讲完了。希望通过这篇博文可以使显著性检验不再成为各位看官的心头大患,不必再谈“检”色变。如果真的可以做到这样,于愿足矣。

总结一下:

1、首先,要知道显著性检验是统计假设检验的一种,显著性检验只考虑犯第一类错误的情况,也就是原假设为真的情况下,我们却错误的拒绝它的概率。在机器学习领域中,如两个分类器的分类指标,分别进行了100轮的测试得到的平均准确率分别是70%和72%,单单从平均值的角度并不能得到A比B的分类效果好,因为这有可能是偶然造成的,并不是一种必然的现象,所以为了科学验证,必须对A和B的所有round得到的准确率结果进行显著性检验。

2、上面讲解了两种显著性检验的方法,一种是参数检验:方差分析(anova),其中包括了四种不同数据情况下的方差分析方法,但是在使用这种参数检验的时候必须满足两个条件:正态性假定和方差齐性假定,也就是说它们应该服从正态分布并且具有相同的方法,所以在使用方差分析的时候,必须先进行正态性检验和方差齐性检验。由于日常的工作中的数据并不是一直满足上面的情况,所以另一种非参数检验也很有必要。非参数检验提到了两种基于秩和检验(rank sum test)的Kruskal-Wallis检验(克鲁斯卡尔-沃利斯检验)和Friedman检验(弗里德曼检验)。

3、另外区分参数检验和非参数检验的区别也可以看出,一种是对数据的分布有假设,另一种对数据的分布并没有做出任何假设。这类似与机器学习中参数模型和非参数模型的区别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230471.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月20日 下午7:01
下一篇 2026年2月20日 下午7:22


相关推荐

  • javascript 如何添加元素

    javascript 如何添加元素//利用concatfunctionprepend(arr,item){return[item].concat(arr);}//使用push.applyfunctionprepend(arr,item){varnewArr=[item];[].push.apply(newArr,arr);returnnewArr;}//利用slice+unshift/splicefunctionprepend(arr,item){v.

    2022年6月22日
    30
  • Redis的哨兵模式

    Redis的哨兵模式引子 Master 挂了 如何保证可用性 实现继续读写什么是哨兵 Sentinel 哨兵 是用于监控 Redis 集群中 Master 状态的工具 是 Redis 高可用解决方案 哨兵可以监视一个或者多个 redismaster 服务 以及这些 master 服务的所有从服务 某个 master 服务宕机后 会把这个 master 下的某个从服务升级为 master 来替代已宕机的 master 继续工作 顺带提一句 即使后来之前的 master 重启服务 也不会变回 master 了 而是作为 slave 从服务 哨兵模式原理图

    2026年3月18日
    2
  • Apache和PHP结合

    Apache和PHP结合Apache和PHP结合配置httpd支持PHPServerNameRequirealldeniedAddTypeapplication/x-httpd-php.php//解析PHPDirectoryIndexindex.htmlindex.php[root@shuai-01~]#vim/usr/local/apache2.4/conf/httpd.conf修

    2022年7月12日
    19
  • 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

    红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…各位读者,知识无穷而人力有穷,所以,要么改需求,要么找专业人士,要么自己研究。大家可以点赞、收藏、关注、评论我啦、需要完整文件随时联系我或交流哟~!

    2022年4月26日
    100
  • Visifire charts ToolBar

    Visifire charts ToolBar<charts:Chartx:Name=”ChartPat”Theme=”Theme2″BorderBrush=”Gray”Padding=”6″View3D=”False”…

    2022年7月21日
    16
  • 计算机网络实验 局域网的组建,计算机网络实验-局域网组建及测试实验

    计算机网络实验 局域网的组建,计算机网络实验-局域网组建及测试实验局域网组建及测试实验一 实验目的 1 掌握使用双绞线作为传输介质的网络连接方法 学会制作两种类型的接头 学会测线器的使用方法 2 以双绞线为传输介质连接多台计算机 要求掌握基本的计算机网络知识 TCP IP 协议常识 3 使用常用网络命令 测试分析网络状态 要求掌握基本的网络命令使用要点 二 实验设备及环境交换机 带 RJ 45 接口网卡的微机 5 类双绞线 水晶头 压线钳 测线器 三 实验原理 1 理解 10

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号