ZL1023

V1

2023/01/06阅读:27主题:全栈蓝

R语言:散点图矩阵

目录

1. 为什么画散点图矩阵呢?

拿到数据之后,首先要做的是探索性数据分析,什么是探索性数据分析呢?大致可以分为以下4类:

  1. 一维数据看看分布和离群值;
  2. 二维数据看看关系和趋势;
  3. 三维数据看看维度间的两两关系;
  4. 高维数据降维。

这里需要注意的是,即使刚开始拿到的是高维数据(这里指的是三维及以上数据),也要先进行一维数据和二维数据的探索性数据分析,因为高维数据是由一维数据或二维数据组成的,一维数据和二维数据的探索性数据分析是高维数据探索性数据分析的基础。

对于高维数据,

  • 我们可以先将高维数据拆分成一维数据,看看各个一维数据的分布和离群值;
  • 再将拆分的一维数据两两组合成二维数据,看看各个二维数据的关系和趋势;
  • 最后再进行高维数据的探索性数据分析。

直方图是看一维数据分布的最常用方法,箱线图是看一维数据离群值的最常用方法。散点图是看二维数据关系和趋势的最常用方法,如果我们只有两个变量,我们画一幅散点图就可以了。如果我们有n个变量,那么,我们需要画很多幅散点图才可以。如果我们一个一个地画散点图,那太费劲了。偷懒的方法是画散点图矩阵,那么,怎么画散点图矩阵呢?

2. 怎么画散点图矩阵呢?

2.1 示例数据集

示例数据集简介:gWQS包中有一个内置数据集,内置数据集的名称叫wqs_data[1]wqs_data数据集有34种多环芳烃暴露数据、25种邻苯二甲酸酯暴露数据和其他类型数据。

本期仅使用wqs_data数据集中前5种多环芳烃暴露数据

# 提取wqs_data中前5种多环芳烃暴露数据
PCBs <- wqs_data[1:5]
# 查看前10种多环芳烃暴露数据
head(PCBs)

2.2 散点图矩阵

方法① graphics包

# 画散点图矩阵
pairs(PCBs, upper.panel=NULL)

方法② car包

# 加载包
library(car)

# 画散点图矩阵
scatterplotMatrix(x=PCBs, 
                  col="black"
                  smooth=FALSE
                  diagonal=list(method="histogram"))

3. 结果分析

我个人更喜欢scatterplotMatrix函数画的散点图矩阵。scatterplotMatrix函数画的散点图矩阵,其对角线是各个变量的直方图,通过直方图能看出各个变量的分布状态。左下角或右上角是两两变量之间的散点图,通过散点图能大致看出各个变量之间的相关关系。

scatterplotMatrix绘制
scatterplotMatrix绘制

上述散点图矩阵显示:

  • 5种多环芳烃都是正态分布
  • 5种多环芳烃之间都不存在相关关系

Reference

[1]

wqs_data数据集: https://search.r-project.org/CRAN/refmans/gWQS/html/wqs_data.html

分类:

数学

标签:

数学编程

作者介绍

ZL1023
V1