随机陷阱和P值
如果让大家写一个50次的抛硬币实验的可能结果(头像H或字T),多半人在连续三个一样的后,会换一下。因为大家都知道,连续一样的越多,概率越小,越不可能发生。大部分人不会去想,其实HHHTT和HHHHH发生的概率是一样大。
不知道大家有没看过一本书叫<秘密>(1)。此书的基本观点就是心想事成,如果你坚定地认为一件事情会发生,它就会发生。假设我非常的相信这个理论。现在做一个实验,我在与别人抛硬币打赌,我赌H,连续三次赢的胜出。打赌的过程中,我坚信我一次会赢,结果一开始就连续三次的得了H,我赢了。我们可以得出结论,<秘密>的心想事成的理论是对的吗?
我猜有人会说,不不不,T/H概率为0.5的二项分布,是HHH的概率是1/8。1/8概率的事件还是可能发生的,所以不能说就是”心想事成"的理论在起作用。Bingo!这个有力的反驳看起来很容易做到,是吗?但事实上,并不是很多的人都这么想,据调查,某位美国总统竞选人如果胜算只有30%的话,大部人的人会认为是不可能成功的(但事实常常不是这样)。某位正在减重的微胖人士,参加了一个减重活动,一个月后,发现体重确实轻了两公斤,一般他/她会认为这个减重活动很有效果,完全忽略如果什么都不做的话,一个月体重减轻两公斤也是有一定的概率的,而且还不低。用统计学的语言来说,就是大家非常容易低估随机因素的力量,我觉得用通俗的话来说,就是大家容易掉入随机陷阱。我们回到打赌实验来,如果第二次打赌,我又是头三次就都得了H,赢了,那我可以得出心想事成的理论是对的吗?
如果还不能,那第三次还一样呢?
如果还不能,要什么时候能推断出这个理论是成立的呢。
也许你会想出一个办法,我就定义,如果概率是0.01的事件还发生,我就当作是某种力量在起作用。当第二次发生的时候,概率为1/64,不成立。第三次发生,概率为1/512,小于0.01,那就是这个力量在起作用。也就是如果连续三次实验都出现头三次都抛出H,那"心想事成"的理论就是成立的。
其实这就是P值和alpha值的一个极简例子。实际算出来的1/8, 1/64, 1/512就是p值,0.01就是alpha值。P值就是旨在算出一个事件随机也会发生的概率。那为什么统计学的p值理解起来这么拗口呢。

首先,对于一个观察对象,我们不一定知道它的分布。我们这个例子是二项分布,我们知道了分布,就很容易推算出某件事件的发生概率。但如果不知道分布呢,那事情就变得非常的复杂。所以我们必须用复杂的方法来算出这个p值。没有绝对完美的方法,所以算出的p值不是绝对的准确。如果不是准确的p值,那之前的定义(某个事件随机发生的概率)也是不准确的。所以应该修正为,某种模型下的某事件的随机概率。事情变得复杂起来了是不是。如果以下无法follow,只要牢牢的记住,p值的目的就好了(算出一个事件随机发生的概率,排除随机因素对事件的影响)。
当做一个统计学实验的时候,比如说A/B test。实验的通常做法是在B上面做了某个改动。比如说对网页的某个button的位置做了改动,然后观察,改动之后,点击率是否提高。对于点击率的分布,随机因素太多了,无法给出分布。但我们有数据,比如说,
我们现在就要通过这些数据来算出,B当中多了的10是随机造成的,还是B的改动造成的。最经典的做法是,零条件假设实验。就是把A和B的数据并在一起,shuffle,然后随机分成两组,记录下差距值。重复实验n次,就有一组值,然后计算差距在10以上的概率是多少。这个概率就是p。如果这个概率小于某个规定的值(alpha),就说明这个零条件假设失败,得出结论,B实验的点击率提升是由button改动造成的。
上面这个例子也不是很难理解,是不是。问题就是大家并不是遵守同样的做法来计算p值 (并不都是遵循: merge-shuffle-resample,即使遵循了,细节也有很大不同)。有的统计学论文为了证明的自己的研究结果有效,在众多的方法中,就选择了对p值有力的方法。还记得我之前引用过的话吗, if you torture the data long enough, sooner or later it will confess.
所以,在统计学领域甚至禁止用p值来定结论。而且p值据说也在淡出学术界(真的吗?)。
在数据科学领域,P值一般来说不直接作用于模型,而是用来分析某个特征,以此决定要不要引入某个特征。
希望此文帮你破解了拗口的P值。
另,网上有无数的关于p值介绍的文章。我觉得最好的都比不上<Practical Statistics for Data Scientists>书中关于介绍条件假设实验和p值这一章。
<秘密>链接
https://www.goodreads.com/book/show/52529.The_Secret?from_search=true&from_srp=true&qid=YexYV3XWGV&rank=13
阅读作者更多最新文章,关注微信公众号:

随机陷阱和P值的更多相关文章
- LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)
		
写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...
 - 关于使用array_rand随机取出数组的值
		
代码如下 <?php echo "<meta charset='utf-8'/>";//选择解码方式,防止乱码现象 $a = array("abc&qu ...
 - loj 2542 随机游走 —— 最值反演+树上期望DP+fmt
		
题目:https://loj.ac/problem/2542 因为走到所有点的期望就是所有点期望的最大值,所以先最值反演一下,问题变成从根走到一个点集任意一点就停止的期望值: 设 \( f[x] \) ...
 - C#怎么从List集合中随机取出其中一个值
		
1.首先在该命名空间下创建一个实体,和在Main方法下List集合,为后续做准备: /// <summary> /// 实体 /// </summary> public cla ...
 - N个数随机相加得出固定值的排列组合
		
static double[] iArr = new double[10] { 1,2,3,4,5,6,7,8,9,10 }; static Stack<double> stack = n ...
 - 【LOJ 2542】【PKUWC2018】 随机游走(最值反演 + 树上期望dp)
		
哇我太菜啦555555 不妨钦定我们需要访问的点集为$S$,在$S$已知的情况下,我们令$f(x) $表示从$x$走到点集$S$中任意一点的期望步数. 若$x∈S$,则显然$f(x)=0$,否则$f[ ...
 - PHP随机获取预设的值
		
前面我们讲了php怎么获取随机数,<?php echo rand(1000,2000); ?> 一行代码就能搞定,如果要获取ASP,PHP,JAVASCRIPT,AJAX,CSS,JQUE ...
 - 给MD5加上salt随机盐值加密算法实现密码安全的php实现
		
给MD5加上salt随机盐值加密算法实现密码安全的php实现 如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码.加上sal ...
 - 【Java】【5】List随机取值
		
//shuffle 打乱顺序 Collections.shuffle(list); //随机抽取1个值 System.out.println(list.get(0)); //随机抽取N个值 Syste ...
 
随机推荐
- 使用matlab进行傅里叶分析和滤波
			
傅里叶分析 公式法 下例 是将振幅为1的5Hz正弦波和振幅为0.5的10Hz正弦波相加之后进行傅里叶分析. clear all N=512; dt=0.02; n=0:N-1; t=n*dt; x=s ...
 - Flask框架(一):介绍与环境搭建
			
1.Flask介绍 Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核, ...
 - Fortify Audit Workbench 笔记 Dynamic Code Evaluation: Code Injection
			
Dynamic Code Evaluation: Code Injection Abstract 在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码. Explanation 许多现代编程语言 ...
 - Django学习路18_F对象和Q对象
			
F 对象: 可以使用模型的 A 属性和 B 属性进行比较 写法: 需要的数据对象 = 数据表(类名).objects.filter(列名__条件=F('列名2')) 需求: 查看男生数量比女生少 的公 ...
 - More JOIN operations -- SQLZOO
			
The JOIN operation 注意:where语句中对表示条件的需要用单引号, 下面的译文使用的是有道翻译如有不正确,请直接投诉有道 01.List the films where the y ...
 - C/C++编程笔记:C语言对齐问题【结构体、栈内存以及位域对齐】
			
引言 考虑下面的结构体定义: 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始地址是0,则s的地址就是1,c2的地址是3,i的地址是4. 现在,我们编写一个简单的程序: 运行后输出: 为什么会这 ...
 - CF724C Ray Tracing 扩展欧几里得 平面展开
			
LINK:Ray Tracing 虚这道题很久了 模拟赛考了一个加强版的 瞬间就想到了这道简化版的. 考虑做法 暴力模拟可能可以 官方正解好像就是这个. 不过遇到这种平面问题可以考虑把平面给无限的展开 ...
 - bzoj 1515 [POI2006]Lis-The Postman 有向图欧拉回路
			
LINK:Lis-The Postman 看完题觉得 虽然容易发现是有向图欧拉回路 但是觉得很难解决这个问题. 先分析一下有向图的欧拉回路:充要条件 图中每个点的入度-出度=0且整张图是一个强连通分量 ...
 - Spark中直接操作HDFS
			
Spark作为一个基于内存的大数据计算框架,可以和hadoop生态的资源调度器和分布式文件存储系统无缝融合.Spark可以直接操作存储在HDFS上面的数据: 通过Hadoop方式操作已经存在的文件目录 ...
 - Gradle编译Spring源码
			
使用工具:JDK1.8.0_11.Gradle4.9.idea2018.1.3 1. 配置Gradle Gradle下载地址:https://gradle.org/releases/ 在下载页找到自己 ...