相关性分析和作图

博客围绕R语言相关性分析展开,介绍了Pearson、Spearman和Kendall相关及偏相关类型,提及相关性显著性检验函数cor.test()和corr.test(),说明了不同分布下相关性方法的选择,还详细阐述了使用corrplot、ggcorrplot包及pheatmap绘制相关性热图的方法。

目录

相关的类型

1. Pearson、Spearman和Kendall相关

2. 偏相关

相关性的显著性检验

cor.test()

corr.test()更好

相关性方法选择

正态分布Pearson

秩相关Spearman

相关性热图

corrplot包corrplot函数

数据处理:计算相关性系数和P值

绘图:

添加下三角:上下三角不一致

ggcorrplot包ggcorrplot函数

数据

作图

计算矩阵后使用pheatmap作图

数据准备

作图

补充P值***替换

方法一:笨方法逐个替换

方法二:循环


相关的类型

1. PearsonSpearmanKendall相关
Pearson 积差相关系数衡量了两个定量变量之间的线性相关程度。(连续)
Spearman等级相关系数则衡量分级定序变量之间的相关程度。(分类)
Kendall’s Tau 相关系数也是一种非参数的等级相关度量。
cor() 函数可以计算这三种相关系数,而 cov() 函数可用来计算协方差。两个函数的参数有
很多,其中与相关系数的计算有关的参数可以简化为:
cor(x, y = NULL, use = "everything",
    method = c("pearson", "kendall", "spearman"))
states<-state.x77[,1:6]
cov(states)#协方差
cor <- cor(states)#相关性

1.计量资料 计量资料(measurement data)又称定量资料(quantitative data)或数值变量(numericalvariable)资料。为观测每个观察单位某项指标的大小而获得的资料。其变量值是定量的,表现为数值大小,一般有度量衡单位。根据其观测值取值是否连续,又可分为连续型(continuous)或离散型(discrete)两类。前者可在实数范围内任意取值,如身高、体重、血压等;后者只取整数值,如某医院每年的病死人数等。

2.计数资料 计数资料(cnumeration data)又称定性资料(qualitative data)或无序分类变量(unorderedcategorical variable)资料,亦称名义变量(nominal variable)资料。为将观察单位按某种属性或类别分组计数,分组汇总各组观察单位数后而得到的资料。其变量值是定性的,表现为互不相容的属性或类别,如试验结果的阳性阴性、家族史的有无等。分两种情形:

(1)二分类:如检查某小学学生大便中的蛔虫卵,以每个学生为观察单位,结果可报告为蛔虫卵阴性与阳性两类;如观察某药治疗某病患者的疗效,以每个患者为观察单位,结果可归纳为治愈与未愈两类。两类间相互对立,互不相容。

(2)多分类:如观察某人群的血型分布,以人为观察单位,结果可分为A型、B型、AB型与O型,为互不相容的四个类别。

3.等级资料 等级资料(ranked data)又称半定量资料(semi-quantitative data)或有序分类变量(ordinalcategorical variable)资料。为将观察单位按某种属性的不同程度分成等级后分组计数,分类汇总各组观察单位数后而得到的资料。其变量值具有半定量性质,表现为等级大小或属性程度。如观察某人群某血清反应,以人为观察单位,根据反应强度,结果可分一、±、+、++、+++、++++六级;又如观察用某药治疗某病患者的疗效,以每名患者为观察单位,结果可分为治愈、显效、好转、无效四级等。

2. 偏相关
偏相关 是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。你可以使用
ggm 包中的 pcor() 函数计算偏相关系数。
library(ggm)
pcor(c(1,5,2,3,6),cov(states))
[1] 0.3462724
在控制了收入、文盲率和高中毕业率的影响时,人口和谋杀率之间的相关系数为
0.346

pcor(c(1,5,2,3,6),cov(states))##控制了变量

相关性的显著性检验

cor.test()

可以使用cor.test()函数对单个的PearsonSpearmanKendall相 系数进行检验。简化后的使用格式为:

cor.test(x, y,
         alternative = c("two.sided", "less", "greater"),#指定进行双侧检验或单侧检验
         method = c("pearson", "kendall", "spearman"),#计算的相关类型
         exact = NULL, conf.level = 0.95, continuity = FALSE, ...)
当研究的假设为总体的相关系数小于 0 时,请使用alternative= "less" 。在研究的假设为总体的相关系数大于 0 时,应使用
### 使用SHAP库进行特征重要性相关性分析绘图 #### 安装依赖包 为了使用 SHAP 库,需先安装必要的 Python 包。 ```bash pip install shap numpy pandas scikit-learn matplotlib seaborn ``` #### 加载数据集与训练模型 加载所需的数据集,并利用选定算法(如梯度提升树)来构建机器学习模型。这里假设已经完成了数据预处理工作。 ```python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier # 假设 df 是已有的 DataFrame 数据框 X = df.drop('target', axis=1) y = df['target'] val_X, test_X, val_y, test_y = train_test_split(X, y, random_state=42) my_model = GradientBoostingClassifier( n_estimators=30, max_depth=19, max_features=24 ).fit(val_X, val_y)[^4] ``` #### 创建解释器对象并计算 SHAP 值 通过 `TreeExplainer` 来创建解释器实例,并据此获取输入样本对应的 SHAP 值。 ```python import shap explainer = shap.TreeExplainer(my_model) shap_values = explainer.shap_values(val_X) ``` #### 绘制 Summary Plot 图表 此图表能够展示各个特征对于预测结果影响程度的整体分布情况;其中横坐标表示 SHAP value 的大小,纵坐标则列举了不同变量名称。 ```python shap.summary_plot(shap_values[1], val_X) ``` #### 制作 Dependency Plot 进一步探索关联模式 Dependency plot 能够揭示某个特定特征与其他任意单一属性之间的相互作用规律,以及这些因素共同作用下对最终输出产生的效应变化趋势[^2]。 ```python for feature in ['Feature_1', 'Feature_2']: # 替换为实际的列名 shap.dependence_plot(feature, shap_values[1], val_X) ```
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值