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)

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" >

偏度和峰度:

为了计算偏度和峰度我们能够自己实现函数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的偏度都是大于零的,那么就是说明,这两个变量都是正偏态分布也就是说数据偏向左边,而峰度值都非常高。那么说明这两个变量都存在离群点。

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

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

时间: 2024-10-11 17:53:33

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

R语言数据分析系列之九 - 逻辑回归

R语言数据分析系列之九 -- by comaple.zhang 本节将一下逻辑回归和R语言实现,逻辑回归(LR,LogisticRegression)其实属于广义回归模型,根据因变量的类型和服从的分布可以分为,普通多元线性回归模型,和逻辑回归,逻辑回归是指因变量是离散并且取值范围为{0,1}两类,如果离散变量取值是多项即变为 multi-class classification,所以LR模型是一个二分类模型,可以用来做CTR预测等.那么我们现在来引出逻辑回归如何做二分类问题. 问题引入 在多元线

R语言数据分析系列之八

R语言数据分析系列之八 -- by comaple.zhang 再谈多项式回归,本节再次提及多项式回归分析,理解过拟合现象,并深入cross-validation(交叉验证),regularization(正则化)框架,来避免产生过拟合现象,从更加深入的角度探讨理论基础以及基于R如何将理想照进现实. 本节知识点,以及数据集生成 1,        ggplot2进行绘图; 2,        为了拟合更复杂的数据数据集采用sin函数加上服从正太分布的随机白噪声数据; 3,        poly

R语言数据分析系列之五

R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,详细实现细节请參见我的github项目:https://github.com/comaple/R-wordcloud.git 好了我们開始今天的旅程吧: 本节用到的包有:RColorBrewer用来生成序列颜色值, plotrix三维图形 本节用到的数据集:vcd包中的Arthritis数据集 数据集 install.pa

R语言数据分析系列之六

R语言数据分析系列之六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标,常用的如下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差,极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根,用来衡量一个数据集的集中性

R语言数据分析系列之三

R语言数据分析系列之三 -- by comaple.zhang 上次讲了vector这次讲matrix,array,dataframe,ts 数据结构 matrix 矩阵 R语言中矩阵可以理解为是由两个及两个以上的向量组成. 矩阵创建 从向量创建 > x <- sample(1:100,16) > x [1] 14 43 89  3 96 58 61 75 33 66 24 54 45 15  6 44   > m <- matrix(x)   > m         

R语言数据分析系列之四

R语言数据分析系列之四 -- by comaple.zhang 说到统计分析我们就离不开随机变量,所谓随机变量就是数学家们为了更好的拟合现实世界的数据而建立的数学模型.有了她我们甚至可以来预测一个网站未来几天的日访问用户,股票的未来走势等等.那么本节我们来一起探讨以下常用的函数分布,以及流程控制语句. 常见分布有:正态分布(高斯分布),指数分布,beta分布,gamma分布等. 正态分布 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率密度函数曲线,由正态分

R语言数据分析系列之七

R语言数据分析系列之七 -- by comaple.zhang 回归分析建模是数据分析里面很重要的一个应用之一,即通过使用已有的自变量的值建立某种关系,来预测未知变量(因变量)的值.如果因变量是连续的那就是回归分析,如果因变量为离散的,可以理解为是分类.在机器学习算法中,不管是连续变量预测还是离散的变量预测,我们都称之为有监督学习. 回归分析可以用来做广告点击率预测也可以用来做销量预测,app各种指标预测,或者库存量,分仓铺货预测等.既然如此神奇,那么我们就来看一下回归是如何做到的. 数据集 我

R语言多元分析系列

R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析.简化数据集的技术.它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推.主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征.这是通过保留低阶主成分,忽略高阶主成分做到的.这样低阶成分往往能够保留住数据的最重要方面.但是在处理观测数目小于变量数目时无法发挥

R语言速成实战 R语言数据分析实战

详情请交流  QQ  709639943 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务原理改造房产销售平台 00.Python3入门机器学习 经典算法与应用 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程.