[发明专利]一种基于格拉布斯规则和矩阵实验室语言的药学测试数据中异常值的剔除方法有效
申请号: | 201110283466.3 | 申请日: | 2011-09-22 |
公开(公告)号: | CN102436542A | 公开(公告)日: | 2012-05-02 |
发明(设计)人: | 刘瑞新;李学林;陈天朝;孙广科;施钧瀚;吴子丹 | 申请(专利权)人: | 河南中医学院 |
主分类号: | G06F19/00 | 分类号: | G06F19/00 |
代理公司: | 郑州天阳专利事务所(普通合伙) 41113 | 代理人: | 聂孟民 |
地址: | 450008 *** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及基于格拉布斯规则和矩阵实验室语言的药学测试数据中异常值的剔除方法,可有效解决药学中数据异常值的剔除和药学科研领域之外的适宜数据组的异常值处理的问题,方法是,首先编制程序,然后输入原始数据及相应函数,按照对单组数据的异常值的处理方法,首先判断输入的原始数据是否符合函数要求,若符合,再生成输出变量的空元胞数组矩阵后,依次对每组数据进行单组数据的格拉布斯异常值剔除,同时将生成的结果依次赋给上述元胞数组相应的矩阵,最后给出输出信息,实现对多组数据的批量循环剔除,本发明方法快速、准确,易操作,大大提高原始数据处理效率。 | ||
搜索关键词: | 一种 基于 格拉布斯 规则 矩阵 实验室 语言 药学 测试数据 异常 剔除 方法 | ||
【主权项】:
1.一种基于格拉布斯规则和矩阵实验室语言的药学测试数据中异常值的剔除方法,其特征在于,由以下步骤实现: (1)、编制程序模型,方法是:用函数[Xnew,del,index]=Grubbs(X,alpha,tail),其中X,alpha,tail为输入变量,Xnew,del,index为输出变量,各变量含义如下:X为输入原始数据的矩阵,或称测试值的输入向量,数据个数最多为100个,对数据的横排或竖排无要求,处理后的结构与原结构一致;alpha是显著水平值,为0.01、0.05、0.1,默认0.05;tail为尾数值,包括单侧检验尾数值和双侧检验尾数值,-1为单侧低值检验尾数值,1为单侧高值检验尾数值,0为双侧检验尾数值,默认为0;Xnew是最终生成的无离群值的向量;del是删掉的离群值;index是删掉的离群值的原始编号;如果输入的变量数为1个,则默认显著水平值取0.05,同时默认尾数为0,即双侧检验;如果输入的变量数为2个,则默认尾数为0,即双侧检验,结束;如果输入的显著水平不为0.01、0.05、0.1中任一个数,则提示输入备选的显著水平值0.01 、 0.05 或 0.1,返回,结束;如果输入的尾数不为1、-1、0中任一个数,则提示输入正确的尾数-1 、 0 或 1,返回,结束;统一为列向量:[p,q]=size(X),其中p、q是矩阵X的行数与列数,如果q等于1,[n,m]=size(X),则将矩阵X的行数与列数的值赋给变量n和m,如果p等于1,则将矩阵X进行转置X=X',即如果原来是1行20列的矩阵,则变成20行1列的矩阵,[n,m]=size(X),将矩阵X的行数与列数的值赋给变量n和m,结束;平行测定的个数不能大于100,如果平行测定的个数大于100,超出程序范畴,则返回,结束;构建一个n×2的样本矩阵,N=1:1:n,N为1,2,3……n的数列,将N转置为列向量N=N', [Xsort,N]=sort(X),将矩阵X中的数值进行由小到大的排序,并将排序后的新矩阵命名为Xsort,Xorigin=[N,Xsort],生成一个按样本编号大小同时排序的“原始”矩阵Xorigin,Xsort2=Xorigin,Xsort2与Xorigin相同,index=zeros(n,1),即生成一个n行1列的零矩阵;临界值表:参照国标《数据的统计处理和解释——正态样本离群值的判断和处理(GB-T4883-2008)》:Gtab=[ 1 0.9 0.95 0.975 0.99 0.995 2 0 0 0 0 0 3 1.148 1.153 1.155 1.155 1.155 4 1.425 1.463 1.481 1.492 1.496 5 1.602 1.672 1.715 1.749 1.764 6 1.729 1.822 1.887 1.944 1.973 7 1.828 1.938 2.020 2.097 2.139 8 1.909 2.032 2.126 2.221 2.274……略去90行 99 3.014 3.204 3.380 3.597 3.750 100 3.017 3.207 3.383 3.600 3.754];临界值表Gtab中,第一列为序号,第一行中0.9、0.95、0.975、0.99、0.995为显著水平,从第3行至第100行,分别为样本量为3至100时各显著水平对应的临界值,中间略去90行,具体数据可参见GB-T4883-2008;如果尾数为-1,则进行低值检验,首先找到第一个值即最小值,计算统计量Gi,计算公式按国标《数据的统计处理和解释——正态样本离群值的判断和处理(GB-T4883-2008)》中的“G”,并比较Gi与临界值表中相应的值(Gs)的相对大小,如果Gi/Gs>1,则最小值剔除,得到新数据,再进行新数据的下一轮循环比较;否则不进行剔除;如果尾数取1,则进行高值检验,首先找到最后一个值即最大值,计算统计量Gi,计算公式按国标《数据的统计处理和解释——正态样本离群值的判断和处理(GB-T4883-2008)》中的“Gn”,并比较Gi与临界值表中相应的值(Gs)的相对大小,如果Gi/Gs>1,则最大值剔除,得到新数据,再进行新数据的下一轮循环比较;否则不进行剔除;如果尾数取0,则进行双侧检验,首先找到最小值和最大值,计算最大值减去均值的统计量Dmax和均值减去最小值的统计量Dmin并比较二者大小,若Dmax/Dmin > 1,则按照上述“如果尾数取1,则进行高值检验,……”的方式进行下一步;否则按上述“如果尾数为-1,则进行低值检验,……”的方式进行下一步,如果有数据被剔除,则再进行新一轮的比较和剔除;最后,再把新生成的Xnew的元素顺序调为原始的、无序的、向量的单列,将新矩阵中的检测后的数据仍按最初输入时的顺序显示,序号同步,将离群值编号数列index中为0的数值去掉,如果去掉后没有元素了,则删掉的离群值为空,即未删掉离群值,同时所删掉的离群值的编号也为空,显示“数据组不含溢出值”,返回;如果删掉为0的元素后还有元素,则对编号进行由小到大的排序,b=length(index),b是一共删掉的数据的个数,for c=1:b,c依次取1,2,……b,依次取值,循环进行,找到Xsort2的第一列序号中等于c的行号,则该行号所对应的Xsort2的第二列数据即为所删除的异常值,结束循环,转置矩阵,结束;最后,如果p取1,即初始向量是行向量,则对新生成的矩阵进行转置,删除的异常值的矩阵也进行转置,删除的异常值的序号矩阵也同时进行转置;(2)、对单组数据的异常值循环剔除,方法是,根据步骤1编制的程序,经微机进行如下步骤:
首先输入原始数据、显著水平和尾数变量,即X,alpha,tail,并输入函数[Xnew,del,index]=Grubbs(X,alpha,tail),对于同一组的输入变量测试数据,平行测定的数据个数最多为100个,否则返回提示文字“平行测定数超过100,超出本程序范畴”;“显著水平”的值为0.01、0.05、0.1,默认为0.05,按步骤1程序要进行该显著水平是否取0.01、0.05 、0.1三个值之一的判断,如果符合条件,则进入下一步,否则提示输入备选的显著水平值;“尾数”的选值为 -1、1、0,默认为0,即单侧检验和双侧检验的尾数取值不同,-1为单侧的低值检验,1为单侧的高值检验,0为双侧检验,根据步骤1程序要进行尾数是否取-1、0、1三个值之一的判断,若符合条件,则进入下一步,否则提示输入正确的尾数;
统一数据结构:如果原输入数据为列向量,则保持不变;若为行向量,则转置为列向量,例如,可将原来是1行20列的矩阵,变成20行1列的矩阵;
构建一个含有原始序号及原始测试数据的矩阵,并按原始数据由小到大的排序方式排序,同时原始序号随测试数据的顺序变化而变化,生成新的矩阵备用;
判断所输入的尾数值:如果尾数是-1,则进行下侧的低值检验,首先找到第一个最小值,计算统计量Gi,其数值与国标《数据的统计处理和解释——正态样本离群值的判断和处理(GB-T4883-2008)》中的“G”相同,比较Gi与临界值表中相应的值(Gs)的相对大小,如果Gi/Gs>1,则最小值剔除,得到新数据,再进行新数据的下一轮循环比较;否则不进行剔除;如果尾数是1,则进行上侧的高值检验,首先找到最后的一个最大值,计算统计量Gi,其数值与国标《数据的统计处理和解释——正态样本离群值的判断和处理(GB-T4883-2008)》中的“Gn”相同,比较Gi与临界值表中相应的值(Gs)的相对大小,如果Gi/Gs>1,则最大值剔除,得到新数据,再进行新数据的下一轮循环比较;否则不进行剔除;注意,这里的G和Gn计算公式是不同的,具体参见GB-T4883-2008;如果尾数是0,则进行双侧检验,首先找到最小值和最大值,计算统计量Dmax和Dmin并比较二者大小,若Dmax/Dmin > 1,则按照步骤
中尾数是1的方法进行下一步;否则按步骤
中尾数是-1的方法进行下一步,如果有数据被剔除,则再进行新一轮的比较和剔除;
整理数据结构,把新矩阵的元素顺序调为原始的顺序;如果初始向量是行向量,仍还原为行向量;⑥给出输出变量,包括新数据、剔除值以及剔除值的序号,如果原始数据符合异常值剔除条件,则得到剔除后的新数据,可对新数据继续进行其他相应处理;如果所有数据均不符合异常值剔除条件,则数据组不含异常值,可直接对原始数据继续进行其他相应处理;(3)、对多组数据异常值的批量循环剔除,方法是,按步骤1编制的程序,由以下步骤实现:①首先判断输入变量是否符合函数要求,输入变量除原始数据由数组向量变为矩阵外,显著水平、尾数的要求均同步骤2,原始数据矩阵中单组数据最大平行测定的个数为100,但对组数没有限制,但应保证原始数据矩阵的“行”与“列”与设计程序时的规定一致,否则转置矩阵;②生成输出变量的空元胞数组矩阵,因不同数据组最终剔除的值的个数可能不同,因此未采用矩阵形式,而采用元胞数组的形式表示;③依次按步骤2对每组数据进行单组数据的格拉布斯异常值剔除,同时将生成的结果依次赋给上述元胞数组相应的矩阵;④给出输出信息,包括新数据最终生成的无离群值的元胞数组、剔除值元胞数组以及剔除值的序号元胞数组,从而得到最终的药学测试数据。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南中医学院,未经河南中医学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110283466.3/,转载请声明来源钻瓜专利网。
- 上一篇:可旋转喷浆机料仓装置
- 下一篇:车辆用前照灯
- 同类专利
- 专利分类
G06 计算;推算;计数
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用