ZL1023

V1

2022/11/19阅读:23主题:全栈蓝

R语言:相关系数热图

1. 原始图片

图片来源
图片来源
原始图片
原始图片

2. 模仿图片

①加载包

# 加载包
## Hadley Wickham开发的包
library(tidyverse)
## 本期使用gWQS包中的数据
library(gWQS)
## 绘制相关系数图的包
library(corrplot)

②示例数据集

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

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

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

③数据分布类型

做完实验之后,我们会得到大量的实验数据。一些同学拿到实验数据后就直接进行各种数据分析,包括T检验、方差分析、线性回归等等。然而,这样的分析结果可能是错的,为什么呢?

原因是一些数据分析方法对数据的分布类型是有要求的,我们经常使用的T检验方差分析均要求数据呈正态分布

因此,进行数据分析之前,我们要养成查看数据分布类型的习惯,数据分布类型对于数据分析来说非常重要。

# 使用Shapiro-Wilk检验来检验10种多环芳烃是不是正态分布?
PCBs_distribution <- apply(X=PCBs, MARGIN=2, FUN=shapiro.test)
# 将得到的列表数据展开后转换成数据框
PCBs_distribution <- as.data.frame(unlist(PCBs_distribution))
# 提取Shapiro-Wilk检验的p值
PCBs_p_value <- PCBs_distribution[c(grep(pattern="p.value", x=rownames(PCBs_distribution))), ]
# 将提取的p值转换成数值变量
PCBs_p_value <- as.numeric(PCBs_p_value)
# 给上述提取的p值赋予对应的多环芳烃名称
names(PCBs_p_value) <- rownames(PCBs_distribution)[c(grep(pattern="p.value", x=rownames(PCBs_distribution)))]
# 筛选p值小于0.05的多环芳烃,
## p值小于0.05的多环芳烃,不是正态分布
PCBs_p_value[PCBs_p_value<0.05]

named numeric(0)

Shapiro-Wilk检验结果表明10种多环芳烃都是正态分布,因此,下文计算10种多环芳烃的相关系数时,选择Pearson相关系数

④相关系数图

# 相关性热图
corrplot(corr = cor(PCBs, method = "pearson"), 
         p.mat = cor.mtest(PCBs, method = "pearson", exact = FALSE)$p,
         sig.level = 0.05,
         pch.col = "grey40",
         addCoef.col = "black",
         method = "color"
         type = "upper"
         tl.col = "black"
         tl.srt = 45,
         addgrid.col = "black",
         col = colorRampPalette(c("#4477AA""#77AADD""#FFFFFF""#EE9988""#BB4444"))(200))
模仿图片
模仿图片

Reference

[1]

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

分类:

人工智能

标签:

数据挖掘

作者介绍

ZL1023
V1