啤酒与尿布的故事和临床研究有什么关系 ——关联规则的基本概念

专题合集更多教程

一、啤酒与尿布的故事    


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算法的运算和可视化了,后面的文章我将根据实际数据集进行案例讲解。

 

扫码关注“医咖会”公众号,及时获取最新统计教程!

描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
我要提问
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
提交问题
描述问题
选择一个标签 (请选择一个与您问题最相符的标签)
    提交问题