> 技术文档 > R语言——散点图矩阵和相关性分析图_散点图矩阵 r语言

R语言——散点图矩阵和相关性分析图_散点图矩阵 r语言

参考资料:R图形化数据分析

1、散点图矩阵

        当面对许多连续型变量时,首先要查看每个可能的变量之间的关系。为了避免为每个组合都输入plot()命令,R提供了一个快捷命令pairs(),它可以执行这一操作。此外,pairs()函数将所有图放到同一页面上,以便进行比较。这样得到的图被称为散点图矩阵(scatter plot matrix)。下面将用ex1713数据集进行演示。

install.packages(\"Sleuth2\")library(Sleuth2)attach(ex1713)head(ex1713)pairs(~ Distinct + Attend + NonChurch + StrongPct + AnnInc, pch=16, col=\"deepskyblue\")detach(ex1713)

        car包中有一个scatterplotMatrix()函数,它为散点图矩阵添加了一些有用的特性。首先,我们可以在矩阵的对角线上绘制每个变量的分布,比如绘制直方图、密度图、箱线图、QQ图,还可以为每张图添加最小二乘曲线。平滑器(smoother)也可以应用在每张图上。

library(car)library(Sleuth2)scatterplotMatrix( ~Distinct + Attend + NonChurch + StrongPct + AnnInc, data=ex1713)

scatterplotMatrix( ~ Distinct + Attend + NonChurch + StrongPct + AnnInc, data=ex1713, diagonal=list(method=\"histogram\"), smooth=FALSE)

        smooth=FALSE,表示不设置平滑曲线。

        diagonal=list(method=\"histogram\"),表示对角线处展示各变量的直方图。 

2、相关性分析图

        相关性分析图(corrgram,或称correlogram),是一种和散点图矩阵相关的图。在这类图形中,各个散点图被替换为代表数字的符号,这些数字衡量的是两个连续型变量之间的线性相关。

        皮尔森相关系数(Pearsoncorrelation coefficient)通常表示为 r,在 -1 和 1 之间变化。完全正相关时, r = 1,表明两个定量变量在散点图上的所有点正好在一条上升的直线上。完全负相关时, r = -1,表明所有的点正好在一条下降的直线上。 r 接近 0,表示变量之间关联很少或没有关联。注意,相关系数衡量的不是直线的倾斜度,而是测量点到直线的总偏差。

        要绘制相关性分析图,首先必须定义一个相关矩阵(correlation matrix),该矩阵包含数据集中所有变量对的相关系数,有cor()函数实现。相关矩阵生成后,可以使用corrplot包中的corrplot()函数生成几种类型的相关性分析图:

library(Sleuth2)attach(ex1713)library(corrplot)y<-cor(ex1713[,2:6])y# 绘图par(mfrow=c(2,2))corrplot(y) # method使用默认值\"circle\"corrplot(y,method=\"color\")corrplot(y,method=\"number\")corrplot(y,method=\"ellipse\",type=\"lower\")

        上面四个图中,所有图都用颜色表示关联强度,在右边或底部以渐变顺序列出各种颜色的含义。蓝色阴影呈正相关,颜色越深关联越强(即接近 1)。红色阴影呈负相关,颜色越深越接近 -1。(左上角和右下角)两张图中,图形大小也表示关联强度,但表示方式相反。在左上角的图中,较大的图形表示较大的绝对值。在右下角的图中,方向指示正相关或负相关,窄椭圆形表示点紧挨着线即强相关。宽椭圆形表明线周围有很多震动,即弱相关

        GGally 包中的 ggscatmat() 函数可以实现把一部分图放在矩阵的下半部,另一部分放在上半部,也可将散点图矩阵与相关分析图相结合。

install.packages(\"GGally\")library(GGally)library(Sleuth2)ggscatmat(ex1713,columns=2:6)

3、混合定量变量和分类边阿玲的广义对矩阵

        既有定量变量又有分类变量的数据集是很常见的。在这种情况下,虽然散点图不能处理分类变量,但仍然可以以有意义的方式展示所有变量对。这意味着仅显示几种类型的图,每一种和相关变量类型相适应。可以使用GGally包中的ggpairs()函数和gpairs包中的gpairs()函数进行展示。