假设检验(hypothesis testing)及P值(p-value)

2024-04-18 01:32

本文主要是介绍假设检验(hypothesis testing)及P值(p-value),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前一篇t检验的文末提到了P值的概念,P值实际上是医学统计中很常用的一个概念,那么这篇文章继续讲解什么是P值。说到P值,就得先从假设检验说起。

首先声明,此篇的内容是来自"马同学高等数学"微信公众号的内容。

 

目录

1、什么是假设检验

2、P值

2.1     为什么要把更极端的情况加起来?

3、显著水平

4、与置信区间的关系

参考文献:


1、什么是假设检验

抛硬币是概率统计学中很经典的一种实验方法,也是我们生活中一种常见的决策手段。通常意义下抛硬币和抽签是一样的,都是公平的。所谓的硬币是公平的,也就是“花”和“字”出现的概率是差不多的。然后,你想和我打赌,作为一个资深的理智赌徒,我怎能听信你的一面之词,我提出要检查下你的硬币到底是不是公平的,万一是两面“花”怎么办?电影里面不是经常出现这样的桥段?

                             

你神色紧张,死活不让我检查,后来我们提出了折衷的方案,抛几次硬币,看看结果是不是公平的。总共扔了两次,都是“花”朝上,虽然几率是 0.5 \times 0.5 = 0.25 ,但是也正常,继续扔。总共扔了四次,也都是“花”朝上,几率是  0.5^{4} = 0.0625,感觉有点不正常,但是万一是运气呢?继续扔。总共扔了十次,也都是“花”朝上,那我就认为很可能你这枚硬币不是公平的。

这就是假设检验

  • 你提出假设:说你的硬币是公平的

  • 我提出要检验你的假设:扔十次,看实验的结果是不是和你的假设相符

2、P值

为了完成假设检验,需要先定义一个概念:P值。我们这里就来解释什么是P值?

根据上面的描述,这里假设检验的思路就是:

  • 假设:硬币是公平的

  • 检验:认为假设是成立的,然后扔十次,看结果与假设是否相符

反复扔硬币应该符合二项分布(这就不解释了),也就是:    X \sim B(n,\mu),其中n代表抛掷硬币次数,\mu代表“花”朝上的概率

在我们认为硬币是公平的前提下,扔10次硬币应该符合分布:X \sim B(10,0.5),下图表示的就是,假如硬币是公平的情况下的分布图:

                              

我扔了十次之后得到的结果是,有八次正面:

                               

这个时候有个数学大佬就出来定义了一个称为 P值(p-value)的概念:

                                                           

罗纳德·艾尔默·费希尔爵士(1890-1962)。

把八次正面的概率,与更极端的九次正面、十次正面的概率加起来:

                           

得到的就是(单侧P值):         

其实,出现两次正面、一次正面、零次正面的概率也是很极端的:

                        

所以(双侧P值):     

2.1     为什么要把更极端的情况加起来?

根据扔硬币这个例子,可能你会觉得,我知道八次正面出现不正常就行了,干嘛要把九次、十次加起来?我觉得有这么一个现实原因,比如我要扔1000次硬币来测试假设是否正确。扔1000次硬币用二项分布来计算很麻烦,根据中心极限定理,我们知道,可以用正态分布来近似:

                                     

比如,我扔了1000次,得到了530次正面,用正态分布来计算就比较简单。但是,对于正态分布,我没有办法算单点的概率(连续分布单点概率为0),我只能取一个区间来算极限,所以就取530、以及更极端的点组成的区间:

                                      

我上面只取了单侧P值,说明下:

  • 取单侧还是双侧,取决于你的应用

  • 什么叫做更极端的点,也取决于你的应用

3、显著水平

总共扔10次硬币,那么是出现7次正面之后,可以认为“硬币是不公平的”,还是9次正面之后我才能确认“硬币是不公平的”,这是一个较为主观的标准。我们一般认为:

                                                                  

就可以认为假设是不正确的。

0.05这个标准就是显著水平,当然选择多少作为显著水平也是主观的。比如,上面的扔硬币的例子,如果取单侧P值,那么根据我们的计算,如果扔10次出现9次正面:

                                           

表示出来如下图所示:

                 

我们可以认为刚开始的假设错的很“显著”,也就是“硬币是不公平的”。如果扔10次出现出现8次正面:

                                                      

呃,这个和我们的显著水平是一样的啊,我们也可以拒绝假设,只是没有那么“显著”了。

4、与置信区间的关系

置信区间,目的是根据样本构造一个区间,然后希望这个区间可以把真值包含进去,但是并不知道这个真值是多少?具体可以参考如何理解 95% 置信区间?而假设检验,则是假设真值是多少,然后检验这个假设是否可能为真。之所以觉得它们有关系,大概是因为它们都提到了0.05。它们之间的关系也简单,如果我们提出来的假设 \mu_{0} 在样本 \bar{x} 的置信区间内,就可以通过测试:

                       

反之,就不能通过:

                            

参考文献:

如何理解假设检验,P值           https://mp.weixin.qq.com/s/tmlaB4nwK0EPxaAmsIVScA

这篇关于假设检验(hypothesis testing)及P值(p-value)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913414

相关文章

为 Key-Value 数据库实现MVCC 事务

ACID是软件领域使用最广泛的技术之一,它是关系数据库的基石,是企业级中间件不可或缺的部分,但通常通过黑盒的方式提供。但是在许多情况下,这种古老的事务方式已经不能够适应现代大规模系统和NoSQL数据库的需要了,现代系统要求更高的性能要求,更大的数据量,更高的可用性。在这种情况下,传统的事务模型被定制的事务或者半事务模型所取代,而在这些模型中事务性并不像以往那样被看重。   在本文中我们会讨论一

兔子-(PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP'

由于在PHP最新的版本中增加了一个配置项目“request_order”,默认值为“GP”,这个存在一定的安全风险。这里我们建议用户将配置更改为“CGP” 可以在php的安装目录下找到php.ini配置目录,找到下面选项: request_order = "GP"  更改为 request_order = "CGP"   重启服务器后即可。 此

MySql 1264 - Out of range value for column 异常

前段时间操作数据库,本是一个很简单的修改语句,却报了  1264 - Out of range value for column字段类型官网  当时一看懵逼了,网上很多都说是配置的问题,需要修改my.ini文件,这个方式我没有试过,我想肯定还有其它方法,经过慢慢排 查发现表里的字段为 decimal(10,3) ,这说明小数点前只有7位,保留了3位小数点,而值在小数点前却有8位,这就导致了错误

FUSEE: A Fully Memory-Disaggregated Key-Value Store——论文阅读

FAST 2023 Paper 论文阅读笔记整理 问题 分布式内存键值(KV)存储正在采用分离式内存(DM)体系结构以提高资源利用率。然而,现有的DM上的KV存储采用半分离式设计,在DM上存储KV对,但在单个元数据服务器上管理元数据,因此仍然在元数据服务器上遭受低资源效率的问题。 如图1a,Clover[60]采用半分离式设计,在计算节点(CN)上部署客户端,在内存节点(MN)上存储KV对,

Path With Maximum Minimum Value

Given a matrix of integers A with R rows and C columns, find the maximum score of a path starting at [0,0] and ending at [R-1,C-1]. The score of a path is the minimum value in that path.  For example

Redis的incr命令引发的反序列化异常和ERR value is not an integer or out of range异常

在Java中使用inc命令的时候发现redis中的值被反序列化后居然不是数字,检查后发现可能是序列化器没对,在redis配置的地方将序列化器设置为 Jackson2JsonRedisSerializer后使用整成,贴上代码 @Bean(name = "RedisTemplate")@SuppressWarnings("all")public RedisTemplate<String,

Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value 及 网络通信

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27705613 通信方式 主要有以下三大类: (一)SERVER/CLIENT方式: 1.一个Client方连接一个Server方,或称点对点(peer to peer)。 2.多个Client方连接一个Server方,这也是通常的

[转载]最通俗易懂的p value讲解

什么是p value? 这个问题,曾一度让我怀疑我根本都没有学懂知识,只是像规则一样记住然后胡乱使用而已。此番记录就当再次考验我是否真正理解到p value的含义。 p value,代表在原假设条件下,实验事件可能发生的概率。举例说明:抛一枚硬币,正面朝上和反面朝上的概率是一样的,各50%,但这是有前提条件的,即硬币是均匀的(原假设),才能保证正反面出现的概率相同。现在将该硬币抛掷5次,那

getLocation:fail, the permission value is offline verifying

getLocation:fail, the permission value is offline verifying 后端会根据appid和secret生成 签名,前端wx配置时一定用appid来验证签名的正确 本次错误为配置初始化失败:前端与后端的appId不一致,我的失误也

解析json报文,获取key的value

新增解析json报文,获取key的value 建立如下两种类型 CREATE OR REPLACE TYPE ty_row_str_split as object (strValue VARCHAR2 (4000));CREATE OR REPLACE TYPE ty_tbl_str_split AS TABLE OF ty_row_str_split; 新建json截取通用方法 CREAT