数据可视化(直方图、累积分布图、箱线图、点阵图)
1 可视化探索
1.1 直方图
这是一种简单快速探索数据分布的方式。以Insurance数据集中过的“索赔量”变量Claims为例,观察该变量的分布情况。
hist(Insurance$Claims,main="Histogram of Freq of Insurance$Claims")
结果分析:从图中可以看出观测样本多集中与0-50组,一般开说,要求索赔人数大多小于50,且呈明显下降趋势,即索赔量越高的样本量越少。
将参数freq设置为F可以绘制密度直方图,以各组的概率密度来确定矩形高度,density参数用来为各矩形添加阴影,取值越大阴影越深。
hist(Insurance$Claims,freq=F,density=20,main="Histogram of Freq of Insurance$Claims") lines(density(Insurance$Claims)) #添加概率密度曲线
hist(Insurance$Claims,breaks=20,labels=T,col="black",border="white",main="Histogram of Freq of Insurance$Claims")
结果分析:将breaks值设置为20来绘图,labels,col,border这三个参数用来标注各矩形高度(频率),更改矩形的填充和轮廓颜色。
也可以用str来获取各组边界值breaks,频数counts,概率密度density,中间值mids,绘图对象名xname,是否等距分组equidist,这些信息。
1.2 累积分布图
该图形中(x,y)的含义为:共有y(百分数)的数据小于或等于该x值,因此,数据中x最大值所对应的y值为1,即100%。
使用Himsc软件包中的Ecdf()函数来绘制累积分布图:
library(Hmisc) Ecdf(Insurance$Claims,xlab="Claims",main="Histogram of Freq of Insurance$Claims")
结果分析:与上图中的密度曲线相对比,累积分布图中0-100部分的曲线斜率比较大,且0-50部分尤其陡峭,正对应于密度曲线0-100的高取值,这正是两曲线间相互关系的体现。
绘制各年龄段Age中要求索赔人数Claims的累积分布图:
data_plot<-with(Insurance, rbind(data.frame(var1=Insurance$Claims[Insurance$Age=="<25"],var2="<25"), data.frame(var1=Insurance$Claims[Insurance$Age=="25-29"],var2="25-29"), data.frame(var1=Insurance$Claims[Insurance$Age=="30-35"],var2="30-35"), data.frame(var1=Insurance$Claims[Insurance$Age==">35"],var2=">35")))
....
LT=c(1:4) Ecdf(data_plot$var1,lty=LT,group=data_plot$var2,label.curves=1:4,col="red",xlab="Claims",main="Cumulative Distribution of Claims by Age") Ecdf(Insurance$Claims,add=T)
#四个参数lty用于设置曲线的类型,实线或者虚线,group用于设置分许变量,这里及那个Age作为分组变量,label.curves用于标出按分组变量划分的各曲线组名,比如四个组别:<25、25-29、30-35和>35,add参数表示是否在上一个输出图形中添加图形。
结果分析:Claims分组曲线与Claims总体曲线的基本趋势大致相同,都在0-100区间比较陡峭,之后基本平缓,其前三组曲线都止于100左右,最后一组>35则一直延续到400左右,这说明年龄较大投保人的要求索赔量较高。
1.3 箱线图
我们利用箱线图探究在各年龄段Age中要求索赔人数Claims的分布情况。
boxplot(var1~var2,data=data_plot,horizontal = T,main="Distribution of Claims by Age",xlab = "Claims",ylab="Age")
结果分析:>35的组最大值在400左右,这说明年龄较大投保人的要求索赔量较高。
1.4 点阵图
点阵图于条形图本质上是一样的,也是用于呈现离散型变量各取值水平的分布情况,不同之处在于用点和背景网格线的形式代替条形来表示。
本文来自博客园,作者:zhang-X,转载请注明原文链接:https://www.cnblogs.com/YY-zhang/p/15243427.html