基于Grubbs规则和MATLAB语言快速剔除异常值方法的建立及其在药物苦度评价中的应用
2019-09-10刘瑞新王艳丽张耀桂新景王君明王青晓姚静张璐施钧瀚李学林
刘瑞新 王艳丽 张耀 桂新景 王君明 王青晓 姚静 张璐 施钧瀚 李学林
中圖分类号 R943;TP311.1 文献标志码 A 文章编号 1001-0408(2019)02-0176-07
DOI 10.6039/j.issn.1001-0408.2019.02.07
摘 要 目的:建立基于Grubbs规则和MATLAB语言的异常值剔除方法,并评价其在药物苦度评价中的的应用效果。方法:以Grubbs规则为参考,建立基于MATLAB语言的异常值自动循环剔除方法。选择20名志愿者分别进行单组口尝试验(通草)和多组口尝试验(通草、明党参、茯苓等10种药材);选择7个传感器进行电子舌测试(川木通)。以上述试验所得的苦度评价数据(口尝试验为苦度值,电子舌测试为传感器响应值)为数据源,选择5名研究者,采用基于Grubbs规则的查表逐一剔除法(方法一)、基于Grubbs规则的Excel软件剔除法(方法二)、基于Grubbs规则和MATLAB语言的异常值自动循环剔除法(方法三)进行异常值的判定及剔除;以异常值剔除时间和错误概率为指标,评价上述3种方法的应用效果。结果:单组口尝试验苦度评价数据中有2个异常值,3种方法的剔除时间分别为(745.400 0±25.904 4)、(288.333 3±31.253 1)、(0.000 3±0.000 0)s,错误概率分别为20.0%、0、0;多组口尝试验苦度评价数据中有6个异常值,3种方法的剔除时间分别为(3 693.107 7±75.023 3)、(1 494.761 4±53.826 9)、(0.005 2±0.000 0)s,错误概率分别为10.0%、4.0%、0;电子舌测试苦度评价数据中有3个异常值,3种方法的剔除时间分别为 (2 992.673 3±84.117 6)、(1 276.367 1±55.024 5)、(0.002 3±0.000 0)s,错误概率分别为5.7%、2.9%、0。3种方法的剔除结果一致;方法二的剔除时间显著短于方法一(P<0.01),方法三的剔除时间显著短于方法一和方法二(P<0.01);3种方法错误概率无显著差异(P>0.05)。结论:基于Grubbs规则和MATLAB语言的异常值自动循环剔除法可显著缩短苦度评价数据异常值的剔除时间,提高数据处理效率,可用于药物苦度评价。
关键词 Grubbs规则;MATLAB语言;异常值;剔除;药材;苦度评价
ABSTRACT OBJECTIVE: To establish the elimination method of outliers based on Grubbs rule and MATLAB language, and to evaluate the effects of it on drug bitterness evaluation. METHODS: Referring to Grubbs rule, the automatic cyclic outliers elimination method based on MATLAB language was established. Totally 20 volunteers were included in single oral taste test (Tetrapanax papyrifer) and multiple oral taste test (10 kinds of medicinal material as T. papyrifer, Changium smyrnioides, Poria cocos, etc.). Seven sensors were selected for electronic tongue test (Clematis armandii). The data of bitterness evaluation in above tests (oral taste test as bitterness value, electronic tongue test as response value of sensors) were used as the data source. Five researchers were selected and adopted table-by-table elimination method based on Grubbs rule (method one), Excel software elimination method based on Grubbs rule (method two) and automatic cyclic outliers elimination method based on Grubbs rule and MATLAB language (method three) to judge and eliminate the outliers. The effects of above three methods were evaluated with the removal time and error rate of outliers as indexes. RESULTS: There were two outliers in the data of bitterness evaluation in single oral taste test; the elimination time of the three methods were(745.400 0±25.904 4),(288.333 3±31.253 1)and(0.000 3±0.000 0)s, respectively; error rates were 20.0%, 0 and 0, respectively. There were six outliers in the data of bitterness evaluation in multiple oral taste test; the elimination time of three methods were (3 693.107 7±75.023 3), (1 494.761 4±53.826 9), (0.005 2±0.000 0)s, respectively; error rates were 10.0%, 4.0%, 0, respectively. There were three outliers in the data of bitterness evaluation in electronic tongue test; the elimination time of three methods were (2 992.673 3±84.117 6), (1 276.367 1±55.024 5), (0.002 3±0.000 0)s, respectively; error rates were 5.7%, 2.9%, 0, respectively. The elimination results of the three methods were consistent. The elimination time of method two was significantly shorter than that of method one (P<0.01); the elimination time of method three was significantly shorter than those of method one and method two (P<0.01). There was no significant difference in error rate of 3 methods (P>0.05). CONCLUSIONS: The automatic cyclic elimination method of outliers based on Grubbs rule and MATLAB language can significantly shorten the elimination time of outliers in data of drug bitterness evaluation, improve the efficiency of data processing, and is suitable for drug bitterness evaluation.
KEYWORDS Grubbs rule; MATLAB language; Outliers; Elimination; Medicinal material; Bitterness evaluation
对中药汤剂的苦味实施有效遮掩是提高患者依从性的重要方法,而中药药材及其汤剂苦度客观评价的实现是进行中药苦味遮掩的前提[1]。现有中药苦度的评价方法主要有体内和体外两类,分别是经典人群口感评价方法(THTPM,以下简称“口尝法”)[2]和电子舌评价方法[3-4]。但由于口尝法的个体差异性和主观性以及电子舌易受环境(温度、湿度)及系统状态的影响,常常会使得个别苦度评价数据值偏离预期[5-7]。因此,对试验数据中异常值进行准确判定及剔除是确保苦度评价结果更符合客观实际的重要环节。
现有的异常值判定规则及检验标准包括格拉布斯(Grubbs)检验[8]、狄克逊(Dixon)检验[9]等,其中Grubbs检验借助计算器或Excel表格进行计算,并通过查对临界值表进行异常值的判定和剔除,是应用较为普遍的方法之一。然而上述检验方法的实现需要烦琐的计算步骤和流程,效率较低且容易出错[10]。在计算机技术高度发达的今天,能否基于数学家预设的检验规则,通过一定的自动化方法和程序来实现批量、快速、准确、系统的苦度测试数据中异常值的判定及剔除,尚未见公开报道。鉴于此,本研究建立了一种基于Grubbs规则和MATLAB语言对苦度测试数据中异常值进行快速、批量、准确判定和剔除的方法,以异常值剔除时间和错误概率为指标,就上述方法与常规方法在口尝苦度评价数据及电子舌相关响应值处理中的应用效果进行评价和比较,旨在更加快速、准确地剔除苦度测试数据中的异常值,提高试验数据的分析效率,现报道如下。
1 材料
BSA224S-CW型电子天平(德国Sartorius公司);JXJ-Ⅱ型台式离心机(上海安亭科学仪器厂);ASTREE-Ⅱ型电子舌检测装置[法国Alpha MOS公司,配有7个電子舌传感器(序号分别为ZZ、BA、BB、CA、GA、HA、JB),测试运行温度:25 ℃]。
盐酸小檗碱原料药(四川省玉鑫药业有限公司,批准文号:国药准字H20044706,批号:101002);明党参(批号:110224)、茯苓(批号:110105)、通草(批号:101122)、天花粉(批号:110105)、白薇(批号:110108)、益母草(批号:110108)、白及(批号:110118)、当药(批号:110224)、苦楝皮(批号:110118)、莲子心(批号:101121)、川木通(批号:110224)等11种中药饮片均购自河南中一药业公司,由河南中医药大学第一附属医院药学部陈天朝主任药师鉴定为真品,均符合2015年版《中国药典》(一部)标准。其余试剂均为分析纯,水为纯化水。
2 方法
2.1 待测样品的制备及苦度值定性、定量标准
2.1.1 口尝参比溶液的制备及苦度值(I )定性、定量标准 采用口尝法评价药物苦度需先对志愿者进行苦度标准化培训,然后以标准化苦度为参照进行样品的苦度评价。根据本课题组前期成果及相关文献[11-13],以水为溶剂制备5种不同质量浓度的盐酸小檗碱溶液作为口尝参比溶液,以代表5种苦度口感,其对应的I值定性描述、等级及定量范围见表1。
2.1.2 口尝待测样品的制备 为使待测样品更加接近临床实际,按2015年版《中国药典》(一部)中明党参、茯苓、通草等10种饮片“用法与用量”项下用药范围平均值(如通草用量为3~5 g,则取4.0 g)的10倍,参照文献[14]煎煮方法制得明党参、茯苓、通草、天花粉、白薇、益母草、白及、当药、苦楝皮、莲子心质量浓度分别为22.5、31.25、10、31.25、18.75、48.75、26.25、22.5、11.25、8.75 mg/mL的口尝待测样品(溶液总体积均为4 000 mL,质量浓度均按生药量计)。
2.1.3 电子舌待测样品的制备 取川木通4.5 g(用量标准同“2.1.2”项),参照文献[15]煎煮方法制得质量浓度为11.25 mg/mL(按生药量计)的电子舌待测样品。
2.2 口尝试验
2.2.1 志愿者筛选 本研究经河南中医药大学第一附属医院医学伦理委员会审查批准后,对招募的志愿者进行了包括苦味敏感度等在内的筛选[16]。纳入标准:(1)因20岁时味蕾细胞总数达到最高值,味觉较为敏感[17],故选择20~30岁成年人;(2)无严重过敏史、遗传病史,无胆囊炎,无不良嗜好,且近期无疾病史。排除标准:(1)最近2 d曾饮酒或吸烟者;(2)神经过度紧张者;(3)认为栀子黄水溶液有苦味者;(4)品尝溶液前2 h进食(尤其是刺激性食物)者。本研究最终选择健康志愿者20名(男性9名、女性11名)。上述志愿者均知情同意并签署了知情同意书。
2.2.2 口尝试验 以不同质量浓度的盐酸小檗碱参比溶液对20名志愿者进行口尝试验的苦度标准化培训,随后依次进行单组口尝试验和多组口尝试验。单组口尝试验:志愿者将37 ℃的通草口尝待测样品含于口中,15 s后吐出、漱口,并在苦度评价表中填入结果;多组口尝试验:志愿者在通草口尝试验的基础上,依次对“2.1.2”项下其余9种药材口尝待测样品进行苦度评价,方法同单组口尝试验,各药材口尝评价缓冲期为40 min。
2.3 电子舌测试
参照文献[18]的方法对川木通电子舌待测样品重复进行电子舌测试,每个传感器均重复测量10次。
2.4 苦度评价数据来源
2.4.1 口尝试验苦度评价数据来源 以通草口尝待测样品的苦度评价数据(I值)为单组数据源,以通草、明党参等10种药材口尝待测样品的10组数据(每种药材对应的I值为1组)为多组数据源。
2.4.2 电子舌测试苦度评价数据来源 以上述川木通电子舌待测样品的7组数据(每个电子舌对应的传感器响应值为1组)为多组数据源。
2.5 异常值剔除
本研究采用如下3种方法进行异常值剔除:基于Grubbs规则的查表逐一剔除法(方法一)、基于Grubbs规则的Excel软件剔除法(方法二)以及本研究建立的基于Grubbs规则和MATLAB语言的异常值自动循环剔除法(方法三)。同时,以异常值剔除时间和错误概率为指标,评价上述3种方法的应用效果。其中,异常值剔除时间为计时器所记录的自异常值剔除开始至结束所用的时间,错误概率(P)=n/m×100%[将每1人对1组数据计算1次定义为1人次,x人对y组数据分别计算1次,则总人次记为m(m=x×y);若其中第i人对其计算的共ni组数据计算错误,则计算错误的总人次记为n(n=Σni)人次]。
2.5.1 方法一 (1)排列数据:将n个测量数据由小到大排列;(2)计算其平均值(x)和标准差(s);(3)计算偏离值(Dmax/Dmin),即平均值与最大值/最小值差值的绝对值;(4)确定可疑值(xi):判定偏离值大小,偏离值大的为可疑值;(5)计算Gi值:Gi=│xi -x│/s(式中,i表示可疑值的排列序号;Gi为Grubbs检验的统计量,即可疑值与均值的差的绝对值再除以标准差);(6)异常值判定:显著水平(α)取0.01、0.05或0.1,通过查阅Grubbs临界值表[7]得临界值Gs,计算Gi/Gs>1是否成立:若成立,则xi为异常值;否则这组数中没有异常值;(7)当xi为异常值时,将xi剔除,然后继续对剩余数据按照上述方法进行异常值的判定和剔除,直到这组数据中无异常值;(8)重复上述步骤对其他组进行判定与剔除。
2.5.2 方法二 采用Excel 2010软件建立列表进行排序,并计算x、s、Gi等参数,按“2.5.1”项下步骤进行异常值的判定与剔除。
2.5.3 方法三 (1)单组数据异常值的循环剔除:参照“2.5.1”项,①录入原始数据(x)、显著水平(α)和尾数值(tail)后,输入函数[xnew,del,index]=Grubbs(x,α,tail),具体计算過程参照文献[7]。②基于MATLAB语言并按照算法流程图(见图1)编制相关程序。③操作方法:上述操作在Windows 7或以上版本、并基于MATLAB 7.0及以上版本运行,将编写相应程序的“M”文件拷至MATLAB的工作路径中,在选定显著水平以及尾数值后,于MATLAB的命令窗口内输入原始待检数据矩阵,然后运行相应命令,即可实现对异常值的批量、快速、循环剔除。(2)多组数据异常值的循环剔除:基于MATLAB语言编制相关程序、操作方法同“单组数据异常值的循环剔除”,其算法流程见图2。
2.5.4 不同异常值剔除方法应用效果的比较 随机选择5名研究者,采用上述3种方法对“2.4”项下数据源的异常值进行判定及剔除,记录每种方法的剔除时间和错误概率,并进行比较。
2.6 统计学方法
采用SPSS 22.0软件对数据进行统计分析。计量资料以x±s表示,组间比较采单因素方差分析;计数资料以率表示,组间比较采用Kruskal-Wallis检验。P<0.05为差异有统计学意义。
3 结果
3.1 苦度评价结果
20名志愿者单组、多组口尝试验以及电子舌测试苦度评价结果分别见表2~表4。
3.2 异常值剔除结果
3.2.1 方法一 (1)单组口尝试验苦度评价数据源的异常值剔除结果:志愿者编号为7和11的数据为异常值,应予以剔除;(2)多组口尝试验苦度评价数据源的异常值剔除结果:第2组7和14号、第3组7和11号、第4组11号、第8组12号的数据均为异常值,应予以剔除。(3)电子舌测试苦度评价数据源的异常值剔除结果:ZZ传感器的第1次测试数据、BA传感器的第1次测试数据和HA传感器的第1次测试数据均为异常值,应予以剔除。
3.2.2 方法二 单组、多组口尝试验以及电子舌测试苦度评价数据源的异常值剔除结果同“3.2.1”。
3.2.3 方法三 单组、多组口尝试验以及电子舌测试苦度评价数据源的异常值剔除结果同“3.2.1”。(1)单组口尝试验苦度评价数据源输出矩阵为[0.500 0 0.600 0 0.800 0 0.600 0 0.500 0 0.500 0 0.800 0 0.700 0 0.500 0 0.500 0 0.500 0 0.800 0 0.900 0 0.800 0 0.600 0 0.800 0 0.600 0 0.500 0],剔除的测试数据为[1.500 0 2.200 0],剔除的测试数据原始编号为[7 11],即剔除了志愿者7和11对应的数据(1.5、2.2),详见图3。(2)多组口尝苦度评价数据源输出新矩阵为[20×1 double] [18×1 double] [18×1 double] [19×1 double] [20×1 double] [20×1 double] [20×1 double] [19×1 double] [20×1 double] [20×1 double](注:[20×1 double]表示为20行1列的双精度数据矩阵,下同),剔除值矩阵为[] [2×1 double] [2×1 double] [2.600 0] [] [] [] [2] [] [],剔除值的编号矩阵为[] [2×1 double] [2×1 double] [11] [] [] [] [12] [] []。其中,共显示“数据组不含溢出值!”6次,提示10组数据中有6组不含异常值,而第2、3、4、8组数据均存在异常值,在MATLAB中打开相应矩阵,即可得到相应的数据,详见图4。(3)多组电子舌苦度评价数据源输出新矩阵为[9×1 double] [9×1 double] [10×1 double] [10×1 double] [10×1 double] [9×1 double] [10×1 double],剔除值矩阵为[3.412 8e+003] [1.138 9e+003] [] [] [] [1.473 6e+003] [],剔除值的序号矩阵为[1] [1] [] [] [] [1] [],说明第1列的第1个数据、第2列的第1个数据和第6列的第1个数据均为异常值,应予以剔除,详见图5。
3.3 3种剔除方法的比较结果
方法二的剔除时间显著短于方法一,方法三的剔除时间显著短于方法一和方法二,差异均有统计学意义(P<0.01);除方法三的错误概率全部为0,方法一和方法二的错误概率分别为5.7%~20.0%、0~4.0%,但组间比较差异均无统计学意义(P>0.05),详见表5。
4 讨论
常用的苦度评价方法包括口尝法和电子舌法,均可因志愿者个体差异及电子舌环境差异而存在异常值[6],故需要对其进行合理判定及剔除。Grubbs法为目前常用异常值剔除的方法之一,是一种通过将统计量Gi及其对应临界值进行比较来判定和剔除异常值的检验方法,适用于单组数据不超过100的样本。此外,Grubbs法每次操作仅能对单组数据中最大值或最小值中的1个进行剔除,故当该组存在多个异常值时,需要进行多轮循环剔除,导致该方法存在效率低、易错风险大等缺点[19]。由此可见,如何快速运用Grubbs规则进行异常值剔除,对提高试验效率显得尤为重要。为此,本研究以2015年版《中国药典》(一部)“性狀”项下描述为“味淡”“味微苦”“味苦”的11种中药饮片为对象[每种饮片只有1种味觉描述,以保证苦度评价的准确性[20]。此外,口尝法选择10种不同苦味程度的饮片进行评价;由于电子舌传感器较为敏感,且有7个传感器同时进行测试,故选择苦味阈值较低的单味饮片川木通进行测试],建立基于Grubbs规则和MATLAB语言的异常值自动循环剔除法;以剔除时间和错误概率为指标,对上述方法与基于Grubbs规则的查表逐一剔除法和Excel软件剔除法的应用效果进行比较。
本研究结果显示,基于Grubbs规则和MATLAB语言的异常值自动循环剔除法的剔除时间显著短于其他两种方法,差异均有统计学意义,提示该方法能有效缩短异常值剔除所用的时间。该方法基于MATLAB语言进行计算机运算,是所耗时间明显更短的根本原因。基于Grubbs规则和MATLAB语言的异常值自动循环剔除法的错误概率与其他两种方法比较差异均无统计学意义,提示三者间并无明显差异,这可能与受试志愿者数量较少、样本量较小有关。
综上所述,基于Grubbs规则和MATLAB语言的异常值自动循环剔除法可快速、准确、批量地进行苦味异常值的多轮循环剔除,并一次性给出剔除结果,可免除反复核对临界值表、逐个逐级剔除数据的烦琐操作,有助于缩短异常值剔除时间、提高原始数据处理效率,可为医药生产、研发及其他相关的数据测试与分析领域中异常值的判定与剔除提供参考。但由于本法在MATLAB语言下进行,因此要求操作人员具备简单的MATLAB语言基本知识,加之软件运行要求较高,故有待于后续研究进一步完善。
参考文献
[ 1 ] 刘斌斌,简晖,田佳明,等.中药矫味与掩味技术的研究进展及问题分析[J].中国实验方剂学杂志,2016,22(16):229-234.
[ 2 ] LI L,NAINI V,AHMED SU. Utilization of a modified special-cubic design and an electronic tongue for bitterness masking formulation optimization[J]. J Pharm Sci,2007,96(10):2723-2734.
[ 3 ] 李学林,陈鹏举,桂新景,等.电子舌在羟丙基-β-环糊精抑苦规律研究中的应用[J].中草药,2017,48(20):4235-4244.
[ 4 ] LI X,GAO X,LIU R,et al. Optimization and validation of the protocol used to analyze the taste of traditional Chinese medicines using an electronic tongue[J]. Exp Ther Med,2016,12(5):2949-2957.
[ 5 ] FIELD MS. Application of robust statistical methods to background tracer data characterized by outliers and left-censored data[J]. Water Res,2011,45(10):3107- 3118.
[ 6 ] BUCKLEY JA,GEORGIANNA TD. Analysis of statistical outliers with application to whole effluent toxicity testing[J]. Water Environ Res,2001,73(5):575-583.
[ 7 ] 中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会. GB/T4883-2008数据的统计处理和解释:正态样本离群值的判断和处理[S].北京:中国标准出版社,2008:4-5.
[ 8 ] JAIN RB. A recursive version of Grubbs’ test for detecting multiple outliers in environmental and chemical data[J]. Clin Biochem,2010,43(12):1030-1033.
[ 9 ] GRAAFLAND H,SEIGNALET J,DONADIO D,et al.Our experince with antiglobulin consumption (Dixon test) in the study of antibodies bound to platelets[J]. Rev Fr Transfus Immunohematol,1981,24(4):389-404.
[10] 尹江丽,王琳静.兵器试验中的异常值检验[J].四川兵工学报,2013,34(6):137-139.
[11] 中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会. GB/T12315-1990感官分析方法学排序法[S].北京:中国标准出版社,2008:4-5.
[12] 祝国强,杭国明,滕海英,等.谈谈两总体比較的非参数检验方法[J].数理医药学杂志,2011,24(5):524-525.
[13] 刘瑞新,张杏芬,李学林,等.3种口尝评价方法用于药物苦度评价的比较[J].中国实验方剂学杂志,2013,19(20):118-122.
[14] 李学林,吴子丹,刘瑞新,等.口尝法评价中药汤剂苦味的研究[J].中国实验方剂学杂志,2011,17(23):11-13.
[15] 刘瑞新,李慧玲,李学林,等.基于电子舌的穿心莲水煎液的掩味效果评价研究[J].中草药,2013,44(16):2240- 2245.
[16] 李学林,王盼盼,刘瑞新,等.3种掩味剂单独或联合应用对黄柏的掩味作用探究及掩味前后化学成分的比较[J].中国实验方剂学杂志,2017,23(2):7-11.
[17] 王优杰,徐德生,冯怡.中药及其制剂苦味评价方法的建立[J].中国中药杂志,2007,32(15):1511-1514.
[18] LIU R,ZHANG X,ZHAGN L,et al. Bitterness intensity prediction of berberine hydrochloride using an electronic tongue and a GA-BP neural network[J]. Exp Ther Med,2014,7(6):1696-1702.
[19] 周中汉,王汉江,李梅,等.利用DPS剔除测量数据中的异常值[J].计量技术,2007(10):61-63.
[20] 国家药典委员会.中华人民共和国药典:一部[S].2015年版.北京:中国医药科技出版社,2015:210.
(收稿日期:2018-05-02 修回日期:2018-10-29)
(编辑:张元媛)