马赛克图
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值 |