R语言数据分析系列之六

R语言数据分析系列之六

——by comaple.zhang

上一节讲了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)

DistrictGroup Age Holders Claims

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

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

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

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

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

Max. :3582.00Max. :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 后的分组统计量。

偏度和峰度:

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

不义而富且贵,于我如浮云。

R语言数据分析系列之六

相关文章:

你感兴趣的文章:

标签云: