R语言中级图形:相关系数图及马赛克图

利用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")

R语言中级图形:相关系数图及马赛克图_第1张图片

我们先从下三角单元格开始解释这幅图形。默认地,蓝色和从左下指向右上的斜杠表示单元格中的两个变量呈正相关,
反过来,红色和从左上指向右下的斜杠表示变量呈负相关。颜色越深,饱和度越高,说明变量相关性越大。
本图为了将有相似相关模式的变量聚集在一起,对矩阵的行和列都重新进行了排序
#上三角单元格用饼图展示了相同的信息。颜色的功能同上,相关性的大小被填充的饼图快的大小来展示。

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数据框中变量的相关系数图,下三角区域包含平滑拟合曲线和置信椭圆,上三角区域包含散点图。主对角线包含变量最小最大值。
R语言中级图形:相关系数图及马赛克图_第2张图片

第三个代码示例

corrgram(mtcars,order=TRUE,lower.panel = panel.shade,
         upper.panel = NULL,text.panel = panel.txt,
         main="Corrgram of mtcars intercorrelations")

R语言中级图形:相关系数图及马赛克图_第3张图片

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)

R语言中级图形:相关系数图及马赛克图_第4张图片

马赛克图隐含着大量的数据信息,例如;(1)从船员到头等舱,存活率突然增高;(2)大部分孩子都处在三等舱和二等舱中;(3)在头等舱中的大部分女性都存活下来了,而三等舱中仅有一半女性存活;(4)船员女性很少

扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值。在本例中,蓝色阴影表名在假定生存率与船员等级性别和年龄层无关的条件下,该类别下的生存率通常超出预期值,红色阴影含义相反

小结:
利用corrgram包中的corrgram()函数,可以用图形的方式展示相关系数矩阵
使用马赛克图观察两个以上的类别变量的分布

你可能感兴趣的:(R语言)