马赛克图

2018-09-03

2018-09-03
马赛克图

1 数据集准备


  马赛克图是用于展示两个分类型变量的相关性,由于图形中存在很多格子称为马赛克图,mosaic函数是按照变量提供的顺序来分隔数据。

library(vcd) # 使用vcd里的mosaic函数
data("HairEyeColor") # 加载内部自带数据集中头发眼睛颜色数据
str(HairEyeColor) # 查看数据结构
##  table [1:4, 1:4, 1:2] 32 53 10 3 11 50 10 30 10 25 ...
##  - attr(*, "dimnames")=List of 3
##   ..$ Hair: chr [1:4] "Black" "Brown" "Red" "Blond"
##   ..$ Eye : chr [1:4] "Brown" "Blue" "Hazel" "Green"
##   ..$ Sex : chr [1:2] "Male" "Female"

  该数据描述的是对不同性别下头发和眼睛的颜色的统计。

dimnames(HairEyeColor)# 查看各个变量包含的信息
## $Hair
## [1] "Black" "Brown" "Red"   "Blond"
## 
## $Eye
## [1] "Brown" "Blue"  "Hazel" "Green"
## 
## $Sex
## [1] "Male"   "Female"

  该数据集为一个三维的列联表,主要包含三个字符串型变量,分别为头发、眼睛和性别。

  其中,头发包含的颜色有黑色、棕色、红色、金色;眼睛包含的颜色有棕色、蓝色、淡褐色、绿色;性别包含有男、女。

2 马赛克图绘制


  生物学中,基因决定性状的表现在生物中极为普遍。而生物表现的性状特征有:毛发、性别、体重等指标。性状之间是否有进一步的联系呢?关于人体中头发的密码子、眼睛的密码子和性别的密码子等是否有一定的联系或影响,为此进行卡方检验的可视化分析。提出原假设为:眼睛颜色和性别之间是相互联系;头发和性别之间是相互联系的。如下图所示:

mosaic(~Sex+Hair,data=HairEyeColor, shade = TRUE,legend=TRUE) #绘制马赛克图形

  从图中可以观察得出,各行代表男女的性别,行高代表男女人数的百分比,列联表中观测频数和期望频数的最大负差为-1.8,最大正差为1.7。

  由上述检验知,P值小于0.05时,认为可以拒绝原假设,那么性别和头发间的影响较小,是相互独立的。

mosaic(HairEyeColor, shade = TRUE) #绘制马赛克图形

  由上述图像分析,关于头发、眼睛颜色和性别之间是相互独立。从图中显示看出蓝眼睛的女性比预期的要多得多,因此眼睛的颜色和性别是互相独立。

3 本章汇总


参数 类别 功能
vcd 绘制马赛克图
dimnames 函数 查看变量信息
mosaic 函数 绘制马赛克图
shade = TRUE 参数 灰度深浅表示列联表中的观测频数与期望频数差值大小
legend=TRUE 参数 显示灰度图例及卡方检验的概率P值