1970-01-01
一、啤酒与尿布的故事
20世纪90年代,美国沃尔玛超市管理人员分析销售数据时,发现了一个令人难以理解的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品,会经常出现在同一个购物篮中,且大多出现在年轻的父亲身上。分析背后原因是,在美国有婴儿的家庭中,一般是母亲在家中照看婴儿,年轻的父亲去超市买尿布。父亲在购买尿布的同时,往往会顺便为自己购买啤酒。由此,沃尔玛就在卖场尝试将啤酒与尿布摆放在相同区域,让年轻的父亲可以同时找到这两件商品,并很快地完成购物,从而极大提升商品销售收入。
90年代的这个故事就已经告诉我们,大数据挖掘的重要性。你有没有想过,超市里的商品摆放是有规则的,数据分析师通过分析上万的购物小票,分析出哪些商品最常在一起购买,从而决定商品摆的更远还是更近?你有没有想过,你每次在某宝某东买了某件东西之后,系统就给你推荐了关联的东西,而且有时还挺不错?你又有没有想过,你刷某音的时候,为什么它好像知道你的内心想法,源源不断地给你推荐小姐姐或小哥哥?现在的数据学家们把这种分析叫做关联规则,关联规则和我们的日常生活息息相关。
二、关联规则在临床研究中的应用
那么关联规则在医学上有什么应用呢?在医学领域关联规则常被用来发现数据间隐含的关联关系,如疾病与症状间的关联规则、疾病并发症的关联研究、用药和方剂配伍规则研究、病症-辨证-处方关联研究、药物间相互作用分析、药品分类和剂型关联分析、症状与药物间的关联关系。这时,作为一名称职的医学生/医生,你会有恍然大悟的感觉:哦!这不就是横断面研究吗?
是的,疾病的发生(y)可能和成百上千的病因(x)有关,我们不可能一上来就用先单因素后多因素这一套,我们可以通过关联规则找到初步的联系,再进一步分析。而如果要做到这种大数据疾病的研究,SPSS Statistics是远远不够的。
如果我们以“关联规则”为主题在万方、知网搜索,会发现这样的文章已经很多了,尤其以分析中药药方规则最多,甚至比Pubmed的文献量还多。但遗憾的是,此类文献一般质量较低,单从数据分析的角度看,我认为主要原因有以下几个:①不少文章是通过SPSS spss modeler做出的,通过界面操作不如用代码输出表达丰富;②作者并不真正理解关联规则的原理,专业分析与统计分析割裂;③没有做到数据可视化。
三、几个基本概念:支持度、置信度、提升度、Apriori算法
虽然我也很想绕开一些晦涩的数学概念,但是要真正在临床研究中运用好关联规则,以下这几个概念无法避开:Apriori算法、支持度、置信度、提升度,我将从一个简单的例子中说明。如表格所示,这是一张购物单列表,8个顾客分布买了不同的商品,我们下一步将在这里寻找一些关联规则。
支持度:是一个或联合多个商品在所有购物单里出现的频率,例如Bread在8个购物单里出现了6次,所以它的支持度是6/8,Bread, Butter出现了3次,他的支持度是3/8,Bread, Butter, Chips出现的频率为0,所以支持度就是0。支持度高说明这个商品或者规则经常出现。
置信度:置信度是有方向的,指的是如果某人购买了x,那么他就会购买y的概率,x是先导项,y是后继项。相比之下,支持度是没有方向的。因为Bread和Milk都在8个购物单里出现了两次,所以Bread→Milk和Milk→Bread的支持度都是2/8。Bread在清单总共出现了6次,而milk有3次,Bread→Milk的置信度指的是买了Bread还同时买Milk的人,为2/6;Milk→Bread的置信度指的是买了Milk还同时买Bread的人,为2/3。置信度越高,说明关联的信心越强。在这里,买了Bread的人有2/6的可能再买Milk,而买了Milk的人则有2/3的可能去买Bread,所以向买Milk的人推荐Bread会更有商业价值。
提升度:满足最小支持度和最小置信度的规则,叫做“强关联规则”。然而,强关联规则里,也分有效的强关联规则和无效的强关联规则。所以后来人们提出了提升度的概念, 如果Lift(X→Y)>1,则规则“X→Y”是有效的强关联规则。如果Lift(X→Y) <=1,则规则“X→Y”是无效的强关联规则。lift({A→B})=confidence({A→B})/support(B)=(同时购买{A,B}的订单*总订单)/(购买A的订单*购买B的订单)。不少中文医学文献中,有些关联规则都已经小于或接近1了,作者还卖力的分析,这是不该犯的错误。
除了提升度这个概念有点拗口之外,其实这些基本概念都算比较好理解,但是如果一旦数据量大了,那就不是简单的事了,于是有学者创造了Apriori算法。这个算法在1993年提出就引起了数据科学家的巨大关注,在2006年12月召开的 IEEE 数据挖掘国际会议上(ICDM, International Conference on Data Mining),与会的各位专家选出了当时的十大数据挖掘算法( top 10 data mining algorithms ),Apriori算法位列其中,应用广泛。
目前在R中已经有成熟的包可供调用,做到Apriori算法的运算和可视化了,后面的文章我将根据实际数据集进行案例讲解。
扫码关注“医咖会”公众号,及时获取最新统计教程!
百度浏览 来源 : 医咖会
版权声明:本网站所有注明来源“医微客”的文字、图片和音视频资料,版权均属于医微客所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明来源:”医微客”。本网所有转载文章系出于传递更多信息之目的,且明确注明来源和作者,转载仅作观点分享,版权归原作者所有。不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。 本站拥有对此声明的最终解释权。
发表评论
注册或登后即可发表评论
登录注册
全部评论(0)