如果让大家写一个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值的更多相关文章

  1. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

  2. 关于使用array_rand随机取出数组的值

    代码如下 <?php echo "<meta charset='utf-8'/>";//选择解码方式,防止乱码现象 $a = array("abc&qu ...

  3. loj 2542 随机游走 —— 最值反演+树上期望DP+fmt

    题目:https://loj.ac/problem/2542 因为走到所有点的期望就是所有点期望的最大值,所以先最值反演一下,问题变成从根走到一个点集任意一点就停止的期望值: 设 \( f[x] \) ...

  4. C#怎么从List集合中随机取出其中一个值

    1.首先在该命名空间下创建一个实体,和在Main方法下List集合,为后续做准备: /// <summary> /// 实体 /// </summary> public cla ...

  5. N个数随机相加得出固定值的排列组合

    static double[] iArr = new double[10] { 1,2,3,4,5,6,7,8,9,10 }; static Stack<double> stack = n ...

  6. 【LOJ 2542】【PKUWC2018】 随机游走(最值反演 + 树上期望dp)

    哇我太菜啦555555 不妨钦定我们需要访问的点集为$S$,在$S$已知的情况下,我们令$f(x) $表示从$x$走到点集$S$中任意一点的期望步数. 若$x∈S$,则显然$f(x)=0$,否则$f[ ...

  7. PHP随机获取预设的值

    前面我们讲了php怎么获取随机数,<?php echo rand(1000,2000); ?> 一行代码就能搞定,如果要获取ASP,PHP,JAVASCRIPT,AJAX,CSS,JQUE ...

  8. 给MD5加上salt随机盐值加密算法实现密码安全的php实现

    给MD5加上salt随机盐值加密算法实现密码安全的php实现 如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码.加上sal ...

  9. 【Java】【5】List随机取值

    //shuffle 打乱顺序 Collections.shuffle(list); //随机抽取1个值 System.out.println(list.get(0)); //随机抽取N个值 Syste ...

随机推荐

  1. 面试题三十:包含min函数的栈

    定义一个栈的数据结构,请实现一个每次都能找到栈中的最小元素,要求时间复杂度O(1).意思就是说每次进栈出栈后,min函数总能在时间1的前提下找到.方法一:由于每次循序遍历栈的话时间复杂度为n,所以要想 ...

  2. 华东师范大学p163页,用闭区间套定理证明数列的可惜收敛准则,被网友解决了。

  3. 完了!TCP出了大事!

    前情回顾:<非中间人就不能劫持TCP了吗?> 不速之客 夜黑风高,乌云蔽月. 两位不速之客,身着黑衣,一高一矮,潜入Linux帝国. 这一潜就是一个多月,直到他们收到了一条消息······ ...

  4. 找回 Virtuoso 中的缩放和角度

    https://www.cnblogs.com/yeungchie/ 打开要缩放的版图 CIW 中运行:dbCreateXformPCell(geGetEditCellView() geGetEdit ...

  5. 网络滴神,TCP!

     TCP在网络协议(网络协议见这篇文章)中的重要性就相当于女朋友对于程序员的重要一样,这么说你应该知道有多重要了吧. 1. 三次握手 TCP在进行数据的传输之前必须先建立连接,建立之后才能进行数据的传 ...

  6. 经验分享:一个 30 岁的人是如何转行做程序员,进入IT行业的?

    大约一年以前,我成为了一名全职开发者,我想要总结一下这一年的经验,并且和所有人分享,一个 30 多岁的人是如何进入科技行业的: 改变职业是一件吓人的事情,有时候还会成为一件危险的事情.年龄越大,危险就 ...

  7. 教你不编程快速解析 JSON 数据

    JSON 是一种轻量级的,不受语言约束的数据存储格式,大部分编程语言都可以解析它,并且对编程人员也十分友好.我们在进行通讯/数据交互时,非常经常用到 JSON 格式. 但是,我们在进行数据存储的时候, ...

  8. SparkSQL & Spark on Hive & Hive on Spark

    刚开始接触Spark被Hive在Spark中的作用搞得云里雾里,这里简要介绍下,备忘. 参考:https://blog.csdn.net/zuochang_liu/article/details/82 ...

  9. 【Java并发知识点汇总】

    1,ArrayList 为什么线程不安全(https://www.jianshu.com/p/41be1efe5d65)

  10. Pytorch_第五篇_深度学习 (DeepLearning) 基础 [1]---监督学习与无监督学习

    深度学习 (DeepLearning) 基础 [1]---监督学习与无监督学习 Introduce 学习了Pytorch基础之后,在利用Pytorch搭建各种神经网络模型解决问题之前,我们需要了解深度 ...