4.3 可视化探索

4.3.1 直方图
library("MASS")
data(Insurance)
hist(Insurance$Claims,main="Histogram of freq of Insurance$Claims") # 要求索赔的人数

hist(Insurance$Claims,main="Histogram of freq of Insurance$Claims whit 20 bars" ,breaks=20,labels=TRUE,col="black",border="white" ) # breaks-分组(0-20,20-40,40-60...); col填充颜色设置; border-边框颜色设置

hist(Insurance$Claims,freq=FALSE,density=20,main="Histogram of density of Insurance$Claims") # freq-频率直方图(T)/密度直方图(F),
lines(density(Insurance$Claims)) # 绘制密度曲线

##### 4.3.2 积累分布图

library("Hmisc") # 书上有错误
par(mfrow=c(1,2)) # 子图模式,两个图在同一列(1行2列)
Ecdf(Insurance$Claims,xlab="Claims",main="Cumulative Distribution of Claims") # 可以认为积累分布图各点斜率为概率密度曲线在该点的取值,即积累密度曲线在某一点的斜率越大,概率密度越大
plot(density(Insurance$Claims),main="密度曲线图")

par(mfrow=c(1,1)) # 退出子图模式(这里并没有什么子图模式,只是便于记忆)
data_plot<-with( Insurance,
                 rbind( 
                   data.frame( var1=Claims[Age=="<25"],var2="<25" ),
                   data.frame( var1=Claims[Age=="25-29"],var2="25-29" ),
                   data.frame( var1=Claims[Age=="30-35"],var2="30-35" ),
                   data.frame( var1=Claims[Age==">35"],var2=">35" ) # 小心这里不要多了逗号
                 )
) # 构建数据
data_plot[c(1:4,16+1:4,32+1:4,48+1:4),] # 查看数据
##    var1  var2
## 1    38   <25
## 2    63   <25
## 3    19   <25
## 4     4   <25
## 17   35 25-29
## 18   84 25-29
## 19   52 25-29
## 20   18 25-29
## 33   20 30-35
## 34   89 30-35
## 35   74 30-35
## 36   19 30-35
## 49  156   >35
## 50  400   >35
## 51  233   >35
## 52   77   >35
Ecdf( data_plot$var1,group=data_plot$var2,lty=1:4,label.curves=1:4,col=c("blue","green","red","black"),
      xlab="Claims",main="Cumulative Distribution of Claims by Age"
      ) # lty-线型设置; label.curves-标出分组曲线组名; group-分组变量
Ecdf(Insurance$Claim,add=TRUE,col="red")

结论:一定程度上说明了年龄较大的投保人(>35)要求索赔量较高