利用corrgram包中的corrgram()函数,可以用图形的方式展示相关系数矩阵
代码示例
options(digits=2)
cor(mtcars)
install.packages("corrgram")
library(corrgram)
corrgram(mtcars,order=TRUE,lower.panel = panel.shade,
upper.panel = panel.pie,text.panel = panel.txt,
main="Corrgram of mtcars intercorrelations")
我们先从下三角单元格开始解释这幅图形。默认地,蓝色和从左下指向右上的斜杠表示单元格中的两个变量呈正相关,
反过来,红色和从左上指向右下的斜杠表示变量呈负相关。颜色越深,饱和度越高,说明变量相关性越大。
本图为了将有相似相关模式的变量聚集在一起,对矩阵的行和列都重新进行了排序
#上三角单元格用饼图展示了相同的信息。颜色的功能同上,相关性的大小被填充的饼图快的大小来展示。
corrgram()函数格式如下
corrgram(x,order=, panel=, text.panel = , diag.panel = )
其中,x是一行一个观测的数据框。
当order=TRUE时,相关矩阵将使用主成分分析法对变量重新排序,这将使得二元变量的关系模式更明显
panel设定非对角线面板使用的元素类型。lower.panel和upper.panel来分别设置主对角线下方和上方的元素类型。
text.panel和diag.panel选项控制着主对角线元素类型
corrgram()函数panel选项
非对角线
panel.pie:用饼图的填充比例表示相关性大小
panel.shade:用阴影的深度来表示相关性大小
panel.ellipse:画一个置信椭圆和平滑曲线
panel.pts:画一个散点图
panel.conf: 画出相关性及置信区间
主对角线
panel.txt:输出变量名
panel.minmax: 输出变量的最大最小值和变量名
panel.density: 输出核密度曲线和变量名
第二个代码示例
corrgram(mtcars,order=TRUE,lower.panel = panel.ellipse,
upper.panel = panel.pts,text.panel = panel.txt,diag.panel = panel.minmax,
main="Corrgram of mtcars intercorrelations")
mtcars数据框中变量的相关系数图,下三角区域包含平滑拟合曲线和置信椭圆,上三角区域包含散点图。主对角线包含变量最小最大值。
第三个代码示例
corrgram(mtcars,order=TRUE,lower.panel = panel.shade,
upper.panel = NULL,text.panel = panel.txt,
main="Corrgram of mtcars intercorrelations")
11.4 马赛克图
使用马赛克图观察两个以上的类别变量的分布
在马赛克图中,嵌套矩形面积正比于单元格频率,其中该频率即多维列联表中的频率。
颜色或阴影可表示拟合模型的残差值。
vcd包中的mosais()函数可以绘制马赛克图
R基础安装中的mosaicplot()也可绘制马赛克图,但是没有vcd包中的mosaic()函数功能多。
数据使用基础安装中的Titanic数据集为例,它包含存活或者死亡乘客数,乘客的船舱等级,性别,年龄层数据
数据:
ftable(Titanic)
Survived No Yes
Class Sex Age
1st Male Child 0 5
Adult 118 57
Female Child 0 1
Adult 4 140
2nd Male Child 0 11
Adult 154 14
Female Child 0 13
Adult 13 80
3rd Male Child 35 13
Adult 387 75
Female Child 17 14
Adult 89 76
Crew Male Child 0 0
Adult 670 192
Female Child 0 0
Adult 3 20
mosaic()函数可按如下方式调用
mosaic(table)
其中table是数组形式的列联表。另外也可用
mosaic(formula, data=)
其中formula是标准的R表达式,data设定一个数据框或者表格。添加选项shade=TRUE将根据拟合模型的皮尔逊残差值对图形上色。
添加legend=TRUE 将展示残差的图例
代码示例
library(vcd)
mosaic(Titanic,shade=TRUE,legend=TRUE)
#和
mosaic(~Class+Sex+ Age+Survived,data=Titanic,shade=TRUE,legend=TRUE)
马赛克图隐含着大量的数据信息,例如;(1)从船员到头等舱,存活率突然增高;(2)大部分孩子都处在三等舱和二等舱中;(3)在头等舱中的大部分女性都存活下来了,而三等舱中仅有一半女性存活;(4)船员女性很少
扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值。在本例中,蓝色阴影表名在假定生存率与船员等级性别和年龄层无关的条件下,该类别下的生存率通常超出预期值,红色阴影含义相反
小结:
利用corrgram包中的corrgram()函数,可以用图形的方式展示相关系数矩阵
使用马赛克图观察两个以上的类别变量的分布