C++,python,热爱算法和机器学习
全部博文(1214)
分类: IT业界
2019-04-05 21:59:48
卡方检验,统计学的方法,现在机器学习看变量的时候也会用到。
很多不知道的人,一听到这个名词,会马上联想到,
啊?还要拿张卡来检验吗?
其实卡方检验是英文Chi-Square Test 的谐音。在大数据运营场景中,通常用在某个变量(或特征)值是不是和应变量有显著关系。
我常听到运营和分析师这样的对话, 分析师:“这个变量我做了卡方检验了,不显著,所以我没有放进模型。”
这时候,你要是仔细观察运营经理的话,他们很多人其实是不明白的,有些好学的会直接问什么是卡方检验,有些要面子,会偷偷百度一下什么是卡方检验,但多数运营经理就这么接受了分析师的建议。
毕竟运营经理是以业务和结果为导向的,这些细节的东西,他们觉得也不用自己去纠结。
我写这篇的目的,是为了让运营经理能够确实的知道卡方检验是什么,不要害怕听到这些专有名词,下次遇到这些情况知道如何和分析师互动,并且从业务层面上提出更有价值的变量建议。
而分析师的话,能够让他们在和其他非技术部门人员沟通的时候,学习怎么说些普通人能听的懂的话。
卡方检验就是检验两个变量之间有没有关系。
以运营为例:
如果有显著区别的话,我们会考虑把这些变量放到模型或者分析里去。
那我们先从一个最简单的例子说起。
1) 根据投硬币观察到的正面,反面次数,判断这个硬币是均衡的还是不均衡。
现在有一个正常的硬币,我给你投50次,你觉得会出现几个正面,几个反面?
按照你的经验你会这么思考,最好的情况肯定是25个正面,25个反面,
但是肯定不可能这么正正好好的,嗯,差不多28个正面,22个反面吧;
23个正面,27个反面也可能的,
但是10个正面,40个反面肯定不可能的,除非我运气真的那么碰巧。
你上面的这个思维方式,就是拿已经知道的结果(硬币是均衡的,没有人做过手脚),推测出会出现的不同现象的次数。
而卡方检验是拿观察到的现象(投正面或反面的次数或者频数),来判断这个结果(硬币是不是均衡的)。
继续上面这个例子,
如果我不知道这个硬币是不是均衡的,我想用正面,反面的频次来判断,我投了50次,
其中28个正面,22个反面。我怎么用卡方检验来证明这个硬币是均衡的还是不均衡的呢?
这里要引出卡方检验的公式:
这个公式可以帮我们求出卡方检验的值,我们用
其中,自由度我们可以求出来,置信度的话,我们按照我们自己意愿挑选,一般我们会挑90%或者95%。
这三个数值计算方法如下:
我们拿到这3个信息,去查表,因为0.72小于查表得到的3.841,所以我们得出这个硬币是均衡的结论。
这里还涉及到假设检验中,拒绝H0还是不拒接H0,这篇文章就不详细展开了。
如果你们查表后,还是不知道是该大于的时候说均衡,还是小于的时候说均衡,那么你们可以想一下具体这个例子,
如果硬币是均衡的话,你觉得卡方的值是越小越可能是均衡的,还是越大越可能是均衡的呢?
接下来,我们再来看一个稍微难一点的例子,投骰子。
有一个筛子,我不知道它是不是均衡的,于是我打算投36次看一下。
按照投硬币的方式,我先要画出一个表格,然后计算出3个数值,
带着这3个值,我们去查表,于是我们得出这个现象不能判定他是个均衡的筛子。
现在你明白其实卡方检验一点都不深奥吧。
以后如果分析师说,这个变量不显著,我把这个变量去掉了, 你就可以反问他,那卡方值是多少? 你选了多大的置信度?
最后讲个平时运营分析中的案例:
我们要观察性别和在线上买不买生鲜食品有没有关系,现实生活中,女性通常去菜市场买菜的比较多,那么在线上是不是也这样。
我们得出观察到数据,并且形成表格后,我们需要计算理论的数据,在上面的例子我们发现,我们发现有66%的人不在线上买生鲜(599除以907),34%的人会在线上买。 那如果,男的有733个人,女的有174个人,根据这些比例,我们可以得出的理论值是什么呢?
根据理论和实际值,我们可以算出卡方值,自由度,并且结合我们定义的置信度,查表得到性别和线上买生鲜是显著相关的。
所以我们如果下次看到一个女性来访问我们的网站,多投放一些广告,说不定会转化哦。
看了这几个例子,是不是觉得卡方检验一点都不复杂,其实和我们生活这么贴近,我们平时的思维方式,其实就隐含着卡方检验的道理。