• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【数据分析】数值型数据的探索分析

      【数据分析】数值型数据的探索分析

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2016年3月8日
      测试开头

      数据分析过程中,往往需要对数据作基本的探索性分析,查看数据是否存在问题,如缺失值数量、是否存在明显的异常值、数据是如何分布的、数据的集中趋势和离散趋势等。

      探索性分析一般包括三大部分,即数据的分布情况、数据的集中与离散趋势和数据的分布形态:

      首先来看看关于数据分布情况的探索性分析。一般统计中通过5数就可以大致了解数据的分布,他们是最小值、下四分位数、中位数、上四分位数和最大值。

      其次看看数据的集中趋势和离散趋势,通过集中趋势可以了解数据的中心值或代表值,通过离散趋势可以了解数据远离中心的程度。关于集中趋势,一般可使用均值、众数、中位数来衡量,离散趋势一般通过标准差、极差和四分位差来体现。

      最后看看数据的分布形态,数据的分布形态无非是相比于正态分布而言,即偏度和峰度。偏度是数据分布形态呈现左偏或右偏;峰度是数据分布形态呈现尖瘦或矮胖。对于偏度和峰度需要说明的是:若偏度=0,则无偏;若偏度>0,则有偏;若偏度<0,则左偏;若峰度=0,则陡峭程度与正态分布一致;如峰度>0,则分布陡峭;若峰度<0,则分布平缓。

      下面从定量和定性的角度看观察数据的探索性分析过程:

      自定义函数describe_statistics,函数返回变量的观测数目、缺失值数目、最小值、下四分位数、中位数、上四分位数、最大值、均值、众数、标准差、极差、四分位差、偏度和峰度。这里的自定义函数返回结果类似于SAS的输出结果形态:

      describe_statistics <- function(x){

        options(digits = 3)

        require(timeDate);

        N = length(x);

        Nmiss = sum(is.na(x));

        Min = min(x, na.rm = TRUE);

        Q1 = quantile(x, probs = 0.25, na.rm = TRUE);

        Median = median(x, na.rm = TRUE);

        Q3 = quantile(x, probs = 0.75, na.rm = TRUE);

        Max = max(x, na.rm = TRUE);

        Mean = mean(x, na.rm = TRUE);

        Mode = as.numeric(names(table(x)))[which.max(table(x))];

        Sd = sd(x, na.rm = TRUE);

        Range = abs(diff(range(x)));

        QRange = IQR(x, na.rm = TRUE);

        Skewness = skewness(x, na.rm = TRUE);

        Kurtosis = kurtosis(x, na.rm = TRUE);

        #返回函数结果

        return(data.frame(N = N, Nmiss = Nmiss, Min = Min, Q1 = Q1, Median = Median, Q3 = Q3, Max = Max, Mean = Mean, Mode = Mode, Sd = Sd, Range = Range, QRange = QRange, Skewness = Skewness, Kurtosis = Kurtosis))

      }

      下面我们就用这个自定义函数来测试一下,通过上面的这些统计量值来探索数据分布、集中趋势、离散趋势和分布形态。由于本文讲解的是数值型数据的探索分析,故需要将数据框中的数值型数据挑选出来,仍然自定义函数,返回数据框中所有数值型数据的字段:


      Value_Variables <- function(df){

        Vars <- names(df)[sapply(df,class) == 'integer' | sapply(df,class) == 'numeric']

        return(Vars)

      }


      以R中自带的iris数据集测试:

      vars <- Value_Variables(iris)

      res <- sapply(iris[,vars], describe_statistics)

      res

      【数据分析】数值型数据的探索分析
      上面的结果呈现了鸢尾花四个数值型变量的探索性分析。


      以C50包中的churnTrain数据集测试:

      library(C50)

      data(churn)

      vars <- Value_Variables(churnTrain)

      res <- sapply(churnTrain[,vars], describe_statistics)

      res

      【数据分析】数值型数据的探索分析
      很显然,当变量很多时,这样的返回结果让人看的很难受,如要使输出结果便读的话,可以将返回结果转置:

      t(res)

      【数据分析】数值型数据的探索分析

      这会结果要比较整齐,好看。

      以上是从定量的角度来探索数据的分布、集中趋势、离散趋势和分布形态,下面我们简单介绍一下定性的方法。

      从定性角度,即通过可视化来进行数据的探索性分析,强烈推荐使用GGally包中的ggpairs()函数,该函数将绘制两两变量的相关系数、散点图,同时也绘制出单变量的密度分布图:


      library(GGally)

      vars <- Value_Variables(iris)

      ggpairs(iris[,vars])

      【数据分析】数值型数据的探索分析
      上图不仅仅反映了数据的分布情况、还得出两两变量间的散点图和相关系数,可为下一步分析做铺垫。

      数据的探索性分析过程中,通过定量和定性方法的搭配,可使分析者快速的了解数据的结构、分布及内在关系。

      刘顺祥,数据分析师,热爱数据分析与挖掘工作,擅长使用R语言,目前自学Python语言。

      严禁修改,可以转载,请注明出自数据人网和原文链接:http://shujuren.org/index.php/Article/update/aid/185

      更多精彩内容,请点击阅读原文。

      数据人网(http://shujuren.org),数据人学习、交流和分享的家园,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值。为“让人懂数据、用数据”之使命坚持做点事情。大家可以来投稿,做分享和传播,可以给反馈。您有什么想法,请反馈给我们,谢谢。数据人网,我们共建和共享。

      数据人网构建了数据人圈子,诚邀热爱数据和利用数据朋友入群。加小编微信:luqin360,注明入圈子。

             数据人网官方公众号:数据科学自媒体,分享数据科学干货。

            

             【数据分析】数值型数据的探索分析


      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【R与统计】样本比较(下)
      2016年3月8日

      下一篇文章

      【R扩展包】caret包运用
      2016年3月9日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?