马赛克图用来表示两个及以上分类变量之间的关系。尤其是对于列联表数据,可以进行数据的可视化。之所以叫马赛克,是因为图形被分割成一块块的格子。
Mosaic plot 的起点是一个边长为1的正方形。然后开始对它进行分割。我们以泰坦尼克号数据为例。
> Titanic
, , Age = Child, Survived = No
Sex
Class Male Female
1st 0 0
2nd 0 0
3rd 35 17
Crew 0 0
, , Age = Adult, Survived = No
Sex
Class Male Female
1st 118 4
2nd 154 13
3rd 387 89
Crew 670 3
, , Age = Child, Survived = Yes
Sex
Class Male Female
1st 5 1
2nd 11 13
3rd 13 14
Crew 0 0
, , Age = Adult, Survived = Yes
Sex
Class Male Female
1st 57 140
2nd 14 80
3rd 75 76
Crew 192 20
首先,我们按性别分割这个正方形:
> mosaicplot(~Sex, data = Titanic)
分割后得到的两块面积,就是男女在存活中所占比例。
接下来,我们在性别分割的基础上,再用Class变量进行分割:
mosaicplot(~Sex + Class, data = Titanic, shade = T)
男性的一长条被分割成四块,分别是“1st,2nd,3rd,Crew”,深红色说明,一等舱男性的生存人数较其期望而言偏少;深蓝色说明,男性船员生存人数较其期望而言偏多。我们还可以得到的结论是,女性中乘客生存比例远大于女性船员生存比例。
Standardized Residuals:
\[\frac{(X_{i,j}-\bar{X_{i,j}})^2}{\bar{X_{i,j}}}\]