第五章 变量间关系可视化

Author

221527109付楚妍

1 解释原始数据

1.1 mtcars

  • mtcars 是R自带的数据集,该数据集摘自 1974年《美国汽车趋势》杂志,包括32款汽车(1973~74款)的油耗、汽车设计和性能等共11个指标。根据该数据集绘制本次练习图形。
  • 指标解释:cyl、vs、am、gear和carb作为因子变量,其余可看作数值变量。

    • mpg: 燃油效率(英里/加仑),数值越高越省油。

    • cyl: 发动机气缸数(4/6/8缸),缸数越多通常动力越强。

    • disp: 发动机排量(立方英寸),排量越大动力越强,油耗越高。

    • hp: 发动机马力(马力),数值越高动力越强。

    • drat: 后轴传动比(比值),影响加速和燃油经济性。

    • wt: 车重(千磅),重量轻的车通常更省油。

    • qsec: 1/4英里加速时间(秒),时间越短动力越强。

    • vs: 发动机类型(0=V型,1=直列),V型多见于高性能车。

    • am: 变速器类型(0=自动,1=手动),手动挡通常更省油。

    • gear: 前进挡位数(3/4/5挡),挡位多可能更平顺省油。

    • carb: 化油器数量(1-8个),数量多可能提升动力。

1.2 diamonds

  • diamondsRggplot2包内置的经典数据集,记录了约 54,000 颗钻石的物理属性和价格信息。数据集包含 10 个变量,4个分类变量,6个数值变量。
  • 指标解释:cut、color、clarity为因子变量,其余可看作数值变量。
    • carat: 钻石重量,单位是克拉(1克拉=0.2克),数值越大钻石越大越贵。
    • cut: 切工质量,分为5个等级:Fair(一般)、Good(良好)、Very Good(很好)、Premium(优质)、Ideal(完美),切工越好钻石光泽越强。
    • color: 颜色等级,从D(无色,最佳)到J(浅黄色),颜色越接近无色价值越高。
    • clarity: 净度等级,分为8级:I1(内含物明显)、SI1-SI2(小内含物)、VS1-VS2(极小内含物)、VVS1-VVS2(极微小内含物)、IF(内部无瑕),净度越高钻石越纯净。
    • depth: 总深度百分比(%),计算公式为z/(x+y)/2*100,影响钻石的光反射效果。
    • table: 台面宽度百分比(%),指钻石顶部平面相对于平均宽度的比例,影响钻石的外观比例。
    • x: 钻石长度(毫米),物理尺寸之一。
    • y: 钻石宽度(毫米),物理尺寸之一。
    • z: 钻石高度(毫米),物理尺寸之一。
    • price: 钻石价格(美元),反映其综合价值,受carat、cut、color、clarity等因素影响。

2 两变量散点图

2.1 绘图要求

  • 利用ggplot(data,aes(x,y))+geom_point()绘制燃油效率(mpg,横轴)和车重(wt,纵轴)两个变量的散点图;

  • 利用geom_rug()为横轴和纵轴绘制地毯图;

  • 利用stat_smooth()为散点图添加拟合直线;

  • 利用geom_point()为散点图添加均值点;

  • 利用ggMarginal(type="densigram") 为散点图添加边际核密度直方图;

  • 利用ggtitle() 将图标题改为散点图+地毯图+线性拟合+边际图

2.2 作图代码

2.3 图形观察和代码编写的心得体会

  • 每个点代表一个观测值(如一辆车),显示 mpg 与 wt的原始数据关系。

  • 点的分布趋势表明两变量是 负相关(随着 mpg增加,wt降低),符合常见汽车特性(如车重越大燃油效率越低)。

  • 线性回归拟合线,表示 mpg 与 wt 的总体趋势。斜率为负,验证负相关关系

  • X轴和Y轴上的“地毯”标记显示单个变量的数据密度。

  • 顶部直方图/密度图:展示 mpg变量的分布。

  • 右侧直方图/密度图:展示 wt的分布。

3 散点图矩阵和相关系数矩阵图

3.1 绘图要求

  • 利用GGally::ggpairs(columns)绘制除cyl、vs、am、gear和carb外6个变量的散点图矩阵;

  • 修改参数upper=list(continuous = "density") ,将上三角图形改为二维核密度等高线图;

  • 利用ggiraphExtra::ggCor() 绘制除cyl、vs、am、gear和carb外6个变量的相关系数矩阵图。

3.2 散点图矩阵

3.3 相关系数矩阵图代码

3.4 图形观察和代码编写的心得体会

  • 散点图矩阵:矩阵中每个小图展示两个变量的关系:

    • 对角线:可能是变量的 核密度估计图或直方图,显示单变量分布。

    • 非对角线:散点图 + 拟合线,展示两两变量关系。

    • 变量间的关系:

      • mpg vs disp/hp/wt

        • 负相关(散点呈下降趋势,拟合线斜率为负)。

        • 说明发动机排量、马力或车重越大,燃油效率越低。

      • mpg vs drat

        • 正相关(散点较分散,拟合线略微上升)。

        • 后轴速比越高,可能略微提升燃油效率。

      • mpg vs qsec

        • 正相关(加速时间越长,燃油效率越高,与经济型车特性一致)。
      • hp vs disp/wt

        • 强正相关(马力大的车通常排量和重量也更大)。
      • qsec vs hp/wt

        • 负相关(马力大或车重重的车加速更快,qsec 值更小)。
    • 单变量关系:

      • mpg:近似正态分布,峰值在20左右。

      • hp/disp:右偏分布(多数车集中在低马力/小排量区间)。

      • wt:分布较对称,均值约3-4千磅。

  • 相关系数矩阵图:矩阵中每个单元格包含:

    • 相关系数(r值):范围从 -1(完全负相关)到 +1(完全正相关)。

    • p值(括号内):表示统计显著性(<.001 表示高度显著)。

    • 结论

      • 车重(wt)、排量(disp)、马力(hp 与燃油效率显著负相关,是影响油耗的关键因素。

      • 后轴速比(dratmpg 正相关,可能略微提升燃油效率。

      • 加速时间(qsec 相关性较弱,但仍有统计意义(p < 0.05)。

      • hpdisp:r = 0.7909(强正相关,p < .001)

      • hpwt:r = 0.8880(极强正相关,p < .001)

      • dratwt:r = -0.7102(中等负相关,p < .001)

4 大数据集的散点图

4.1 绘图要求

  • 利用diamonds数据,绘制carat: 钻石重量price: 钻石价格两个变量的散点图;

  • 利用geom_hex(bins=30,size=0.3,color="black"),将散点图转化为六边形分箱散点图;

  • 利用stat_density_2d(geom="raster",aes(fill=..density..),contour=FALSE) ,将散点图转化为二维核密度图;

  • 利用geom_density_2d() ,在散点图上添加核密度等高线;

  • 利用geom_density_2d_filled(alpha=0.8) ,对核密度等高线区域填充颜色。

4.2 六边形分箱散点图

[1] 1

4.3 二维核密度图

4.4 散点图+密度等高线

4.5 散点图+密度等高线带

4.6 图形观察和代码编写的心得体会

  • 六边形分箱散点图:

    • 颜色越深(或六边形越大)表示该区域的观测值数量越多。

    • 随着 carat 增加,price 整体呈上升趋势,表明克拉数越大,价格可能越高。

    • 大多数样本是小克拉中等价位的商品。

  • 二维核密度图:

    • 颜色越深表示该区域的联合概率密度越高。

    • 密度峰值沿左下到右上方向延伸,表明 carat 和 price 整体呈正相关。

    • 克拉数1-2、价格5000-10000的区域密度最高,对应最常见的中低克拉中等价位商品。

  • 散点图+密度等高线:

    • 密度等高线类似地图中的等高线,同一圈线上的位置具有相同的概率密度。

    • 颜色越深或线条越密集的区域,表示数据点越集中(出现频率越高)。

    • 散点整体呈左下到右上的分布趋势,表明克拉数越大,价格越高。

    • 散点图保留原始数据细节,避免平滑导致的信息丢失。

    • 等高线揭示整体密度分布,弥补散点图在数据重叠时的可读性问题。

  • 散点图+密度等高线带: 

    • 颜色深浅或等高线密集度:反映数据点的局部密度,深色/密集区域表示数据高度集中。

    • 带状分布:显示价格的波动范围

    • 低克拉区间(0-2克拉):价格增长较平缓,近似线性。

    • 高克拉区间(>3克拉):价格曲线陡升,体现“克拉溢价”

    • 散点图保留个体数据,避免过度平滑。

    • 密度带揭示整体分布规律,解决散点重叠问题。

5 3D散点图和气泡图

5.1 绘图要求

  • 绘制hp发动机马力、mpg燃油效率和wt车重三个变量的 3D 散点图和气泡图。

  • 采用scatterplot3d(x=hp,y=wt,z=mpg)绘制3D散点图,并添加回归平面。

  • 采用ggplot(df,aes(x=hp,y=mpg,color=wt,size=wt)) 绘制气泡图

5.2 3D散点图代码

5.3 气泡图代码

5.4 图形观察和代码编写的心得体会

  • 3D散点图:(1) 三维关系模式

    • mpghp:负相关(马力越大,燃油效率越低)。

    • mpgcyl:负相关(气缸数越多,油耗越高)。

    • 交互作用:回归面的弯曲程度反映 hpcylmpg 的联合影响。

    5.4.0.1 (2) 回归面解读

    • 曲面倾斜方向:沿 hpcyl 增加的方向,mpg 下降,验证双重负相关性。

    • 曲面曲率

      • 若为平面:说明 hpcylmpg 的影响是独立的、可加和的。

      • 若为曲面:表明存在交互作用。

  • 气泡图:(1)马力(hp)与燃油效率(mpg)的关系

    • 强负相关

      • 马力(hp)越大,燃油效率(mpg)越低(气泡从左到右呈下降趋势)。

    5.4.0.2 (2)车重(wt)的调节作用

    • 气泡大小规律

      • 右侧(高hp)的大气泡(车重wt大)对应低mpg,说明 “车重+马力”双重因素会显著降低燃油经济性

      • 左上方(高mpg)的小气泡(车重wt小)代表轻量化节能车型。

6 分组散点图

6.1 绘图要求

  • 以气缸数(cy1)为因子,绘制车重(wt)和燃油效率(mpg)的分组散点图,添加回归直线;

  • 利用facet_grid(~cy1,scale="free_x") ,按因子变量分面;

  • 利用ggplot(data=df,aes(x=wt,y=mpg,shape=cyl,color=cyl)) ,按形状和颜色分组

6.2 按因子变量分面代码

  • 注意分组变量cyl需要转化为因子

6.3 按形状和颜色分组代码

6.4 图形观察和代码编写的心得体会

  • 按因子变量分组:(1) 整体趋势

    • 负相关:所有子图中,车重(wt)增加时,燃油效率(mpg)普遍下降,符合物理规律。

    • 分面差异

      • 4缸车型mpg 较高(集中在20-35),且车重较轻(1.5-3.5千磅),斜率较平缓。

      • 6缸车型mpg 中等(15-25),车重中等(2.5-4.5千磅),负相关性更明显。

      • 8缸车型mpg 最低(10-20),车重最大(3.5-5.5千磅),斜率最陡峭。

    6.4.0.1 (2) 组内特征

    • 4缸组

      • 数据点分散,部分轻量化车型(wt<2)的 mpg 极高(>30),可能是混动或小型车。
    • 8缸组

      数据点集中,车重和 mpg 变化范围小,代表传统大排量车型。

  • 按颜色和形状分组:(1) 车重与燃油效率的关系

    • 整体负相关:所有分组的 wt 增加时,mpg 下降,但不同气缸数的下降斜率不同:

    6.4.0.2 (2) 颜色分组(气缸数 cyl

    • 4缸:集中在左上方(车重轻、油耗低),代表经济型车型。

    • 6缸:居中,平衡动力与油耗。

    • 8缸:集中在右下方(车重重、油耗高),多为性能车或重型车。