R语言数据分析系列六

上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步。探索性数据分析。

统计量,即统计学里面关注的数据集的几个指标。经常使用的例如以下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差。极差,偏度,峰度

先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的

众数:出现次数最多的

方差:每一个样本值与均值的差得平方和的平均数

标准差:又称均方差,是方差的二次方根。用来衡量一个数据集的集中性

极差:最大值与最小值仅仅差

偏度:相对于正态分布而言假设波峰出如今左边,就表明长尾出如今右边。成为右偏态(正偏态)偏度值>0,分布反之为左偏太(负偏态)偏度值<0

峰度:也是相对于正太分布的。正态分布的峰度为3。假设峰度>3图形越胖,越矮。称为厚尾。峰度<3 图形越瘦,越高,称为瘦尾

本节数据集:

我们採用MASS包的Insurance数据集,该数据集为某保险公司的车险数据。

"District"  "Group"    "Age"      "Holders"  "Claims"

按列一次表示:家庭住址区域。投保汽车排量,投保人年龄,投保人数量,要求索赔的数量

安装包与载入数据集:

install.pacakges('MASS') # 安装包
library(MASS) #载入包
data(Insurance) # 载入数据集
ins <- Insurance #拷贝一份数据

探索行数据分析

R包自带的函数summary能够给出数据的概括:

summary(ins)

District   Group       Age        Holders            Claims

1:16    <1l   :16   <25 :16   Min.   :  3.00   Min.   : 0.00

2:16    1-1.5l:16   25-29:16   1st Qu.: 46.75   1st Qu.:  9.50

3:16    1.5-2l:16   30-35:16   Median : 136.00   Median : 22.00

4:16    >2l   :16   >35 :16   Mean   : 364.98  Mean   : 49.23

3rd Qu.:327.50   3rd Qu.: 55.50

Max.   :3582.00  Max.   :400.00

我们发现对于因子类型向量该方法给出了频度分布,对于连续型变量该方法给出了,最小值。第一四分位数。中位数,均值,第三四分位数,最大值

从结果中我们能够看到Holders列的数据中位数明显远小于均值,这说明这个数据集是个偏数据集,总体数据集中在3——327.5之间。我们能够通过点图来继续查看:

plot(ins$Holders)

点图看的可能不是非常直观,我们期望直观的看到数据的变化,能够通过直方图来展示:

col <- c(brewer.pal(9,'YlOrRd')[1:9])
h<-hist(ins$Holders,breaks=12,col=col)
xfit <-seq(min(ins$Holders),max(ins$Holders),length=40)
yfit <-dnorm(xfit,mean=mean(ins$Holders),sd=sd(ins$Holders))
yfit <- yfit*diff(h$mids[1:2]) *length(ins$Holders)
lines(xfit,yfit,col='red',lwd=2)

方差与标准差

来计算Holders列的方差和标准差:

var(ins$Holders)
sd(ins$Holders)

事实上单变量的方差和标准差是没有太大意义的。对照才干够看出数据集的异同。

假设我们要分析用户依照年龄分组后的统计值该怎样计算呢。aggregate函数为我们提供了非常好的方法例如以下:

agg<-aggregate(ins[4:5],by=list(age=ins$Age),sd)
pie(agg$Claims,labels=agg$age)
agg

age   Holders    Claims

1  <25  80.41797  16.55181

2 25-29 141.11414  22.63184

3 30-35 177.34353  24.23694

4  >35 941.66603 103.52228

相当于依照age列 group by 后的分组统计量。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29tYXBsZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

偏度和峰度:

为了计算偏度和峰度我们能够自己实现函数stat例如以下:

stat <- function(x,na.omit=F){
if(na.omit) x <- x[!is.na(x)]
m<- mean(x)
n<- length(x)
s<- sd(x)
skew <- sum((x-m)^3/s^3)/n
kurt <- sum((x-m)^4/s^4)/n - 3
return(c(n=round(n),mean=m,stdev=s,skew=skew,kurtosis=kurt))
} sapply(ins[4:5],stat)

Holders    Claims

n        64.000000 64.000000

mean    364.984375 49.234375

stdev   622.770601 71.162399

skew      3.127833  2.877292

kurtosis 10.999610  9.377258

我们能够看到,Holders和Claims的偏度都是大于零的,那么就是说明,这两个变量都是正偏态分布也就是说数据偏向左边,而峰度值都非常高。那么说明这两个变量都存在离群点。

同样,我们可以使用的开箱图观察,本节已经介绍,这里不再赘述。

版权声明:本文博主原创文章,博客,未经同意不得转载。

R语言数据分析系列六的更多相关文章

  1. R语言数据分析系列之四

    R语言数据分析系列之四 -- by comaple.zhang 说到统计分析我们就离不开随机变量,所谓随机变量就是数学家们为了更好的拟合现实世界的数据而建立的数学模型.有了她我们甚至能够来预測一个站点 ...

  2. R语言数据分析系列之五

    R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi ...

  3. R语言数据分析利器data.table包—数据框结构处理精讲

    R语言数据分析利器data.table包-数据框结构处理精讲 R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代 ...

  4. R学习:《R语言数据分析与挖掘实战》PDF代码

    分三个部分:基础篇.实战篇.提高篇.基础篇介绍了数据挖掘的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例实践获得数据挖掘项目经验,同时快速领悟看似难懂的数据 ...

  5. R语言数据分析

    CSDN博客:包括R语言基础.R语言数据挖掘.hadoop大数据及spark等 http://blog.csdn.net/qq_16365849 R语言及数据分析 http://blog.csdn.n ...

  6. R语言数据分析利器data.table包 —— 数据框结构处理精讲

        R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理 ...

  7. R语言实战(六)重抽样与自助法

    本文对应<R语言实战>第12章:重抽样与自助法 之前学习的基本统计分析.回归分析.方差分析,是假定观测数据抽样自正态分布或者其他性质较好的理论分布,进而进行的假设检验和总体参数的置信区间估 ...

  8. 中部:执具 | R语言数据分析(北京邮电大学)自整理笔记

    第5章工欲善其事.必先利其器 代码,是延伸我们思想最好的工具. 第6章基础编程--用别人的包和函数讲述自己的故事 6.1编程环境 1.R语言的三段论 大前提:计算机语言程序=算法+数据结构 小前提:R ...

  9. Go语言入门系列(六)之再探函数

    Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ...

随机推荐

  1. POJ 1019 Number Sequence 解读

    这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...

  2. MyReport报表引擎2.1.0.0新功能

    支持简单的四则运算样例1:算总分,简单连加 样例2:算平均分.除非和加法混合(可以识别先乘除后加减,不支持小括号优先运算) 新增行号函数 直接生成行号 新增多种格式化设置修复数个已发现的Bug.优化代 ...

  3. HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)

    pid=4508">http://acm.hdu.edu.cn/showproblem.php?pid=4508 题目大意: 给定一些数据. 每组数据以一个整数n開始,表示每天的食物清 ...

  4. 微软最牛MS08-067漏洞各系统补丁下载地址

    本次MS08-067严重漏洞各系统补丁地址例如以下: 中文操作系统KB958644补丁下载地址: Windows Vista 安全更新程序 (KB958644) http://download.mic ...

  5. 解决adb server is out of date. killing...问题

    在运行 adb 命令时出现了例如以下提示: adb server is out of date.  killing... 导致 adb 无法正常启动,更无法运行其它命令. 有问题怎么办?百度呗.查了查 ...

  6. CSS设计指南之浮动与清除

    原文:CSS设计指南之浮动与清除 浮动意思就是把元素从常规文档流中拿出来,浮动元素脱离了常规文档流之后,原来紧跟在其后的元素就会在空间允许的情况下,向上提升到与浮动元素平起平坐. 一.浮动 CSS设计 ...

  7. poj 2182 Lost Cows(段树精英赛的冠军)

    主题链接:http://poj.org/problem? id=2182 Lost Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  8. Cocos2d-x场景功能描述的生命周期

    层(Layer)的生命周期函数有例如以下: init().初始化层调用. onEnter().进入层时候调用. onEnterTransitionDidFinish(). 进入层并且过渡动画结束时候调 ...

  9. Singleton模式(Singleton创建类型)c#简单的例子

    单(Singleton创建模式)c#简单的例子 当需要生成一个实例,可单发模式 样品可以在短短的球员中产生,玩家和测试.单线程例子,如以下: namespace singletonpattern { ...

  10. JAVA中的I/O流以及文件操作

    一 JAVA语言中主要通过流来完成IO操作. 流:计算机的输入输出之间流动的数据序列,也是类的对象.java中的流方式就像是建立在数据交换源和目的之间的一条通信路径. 数据源:计算机中的数据源是指可以 ...