• <em id="ommgs"></em>
    <dd id="ommgs"><center id="ommgs"></center></dd>

    1. <em id="ommgs"><acronym id="ommgs"><u id="ommgs"></u></acronym></em>
      首 页IT知识库翔宇问吧收藏内容
      当前位置:翔宇亭IT乐园IT知识库R语言

      标准分数法检测数据的异常值及在R语言中的实现方法

      减小字体 增大字体 作者:biye5u.com  来源:本站整理  发布时间:2020-04-27 10:49:04

      一、异常值的概念

      在数据处理与应用中(如训练机器学习算法或应用统计技术),错误值或异常值通常会造成测量误差或异常系统条件的结果。

      有时数据集中含有一个或多个异常大或者异常小的观测值,像这种极端的值被称为异常值。通常异常值产生的原因可能有:

      (1)观测、记录或录入时不正确;

      (2)测量值来自不同的总体;

      (3)测量值是正确的,但代表一个稀有或偶然的事件。

      二、异常值的判断之标准分数法

      目前有许多技术可以检测异常值,并且可以自主选择是否从数据集中删除。

      这篇文章首先介绍一下一维数据中检测异常值的一个方法:标准分数法。

      变量值与其平均数的差除以标准差的值称为标准分数,或称Z得分,公式如下:

      计算标准分数

      当Zi的绝对值大于某个数值时,可以将第i个样本看成异常值。

      三、异常值判断法则

      在具体使用时,可以使用下面的判别法则。

      (1)经验法则:若数据集近似于丘形对称分布,则①大约有68%的测测量值位于平均值的1个标准差的范围内;②大约有95%的测量值位于平均值的2个标准差的范围内;③几乎所有的测量值位于平均值的3个标准差的范围内。

      (2)切比雪夫法则:对于任意的数据集,无论数据的频数分布是什么形状的,则①可能有很少的测量值落在平均值落在平均值的1个标准差的范围内;②至少有3/4的测量值落在平均值的2个标准差的范围内;③至少有8/9的测量值落在平均值的3个标准差的范围内;④对于任意大于1的数k,至少有1-1/k2的测量值落在平均值的k个标准差的范围内。

      通过z得分及这两个法则,可以判断哪些样本是异常的。

      四、标准分数法在R语言中实现的方法

      这里使用一个具体的例子来说明标准分数法的具体使用过程。

      某妇产医院随机地选取了100个新生儿,其体重数据存储在名为birthWeight的文本文件中。找出这些新生儿体重的异常值。数据在文件中的存储格式如下:

      找出异常值数据

      编写R语言程序:

      X <- scan("birthWeight.txt") #定义变量X读取数据
      names(X) <- 1:length(X) #给每个数据编号
      Xjz <- mean(X) #均值
      S <- sd(X) #标准差
      Z <- (X - Xjz) / S #Z得分
      X[abs(Z) > 3] #提取出得分绝对值大于3的值

      其在R语言编辑器中的情景:

      R语言找出异常值

      运行结果如下图所示:

      R语言中异常值检测结果

      从运行结果来看,是第6个数据960属于异常值。因为根据经验法则来看,几乎所有的观测值Z得分的绝对值均小于3.

      微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

      个人成长离不开各位的关注,你的关注就是我继续前行的动力。

      知识评论评论内容只代表网友观点,与本站立场无关!

         评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
      愿您的精彩评论引起共鸣,带来思考和价值。
      用户名: 查看更多评论
      分 值:100分 90分 80分 70分 60分 40分 20分
      内 容:
      验证码:
      关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
      本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
      Copyright © 2007-2021 biye5u.com. All Rights Reserved.
      japanese日本熟妇photo