相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)

article/2025/9/20 12:28:09

目录

总体皮尔逊Person相关系数:

样本皮尔逊Person相关系数:

两点总结:

假设检验:(可结合概率论课本假设检验部分)

皮尔逊相关系数假设检验:

更好的方法:p值判断方法

皮尔逊相关系数假设检验的条件:

正态分布JB检验(大样本 n>30)

小样本3≤n≤50:Shapiro-wilk检验:

斯皮尔曼spearman相关系数:

MATLAB中计算斯皮尔曼相关系数:

斯皮尔曼相关系数的假设检验:

两个相关系数的比较:


相关系数:皮尔逊pearson相关系数斯皮尔曼spearman等级相关系数,可用来衡量两个变量之间的相关性的大小

总体皮尔逊Person相关系数:

皮尔逊相关系数也可以看成是剔除了两个变量量纲影响,即将X和Y标准化后的协方差。

样本皮尔逊Person相关系数:

关于皮尔逊相关系数的一些理解误区:

这里的相关系数只是用来衡量两个变量线性相关程度的指标;
也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能
告诉你他俩相关程度如何。

容易忽视和犯错的点:

(1)非线性相关也会导致线性相关系数很大,例如图2。
(2)离群点对相关系数的影响很大,例如图3,去掉离群点后,相关系数为0.98。
(3)如果两个变量的相关系数很大也不能说明两者相关,例如图4,可能是受到
了异常值的影响。
(4)相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关
关系(非线性相关),例如图5。

两点总结:

(1)如果两个变量本身就是线性的关系(前提),那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱;
(2)在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说他们相关,我们一定要画出散点图来看才行

对相关系数大小的解释:(图中仅为参考)

上表所定的标准从某种意义上说是武断的和不严格的。对相关系数的解释是依赖于具体的应用背景和目的的。

事实上,比起相关系数的大小,我们往往更关注的是显著性。(假设检验)

描述性统计:

MATLAB中基本统计量的函数:

代码:

MIN = min(Test); % 每一列的最小值
MAX = max(Test); % 每一列的最大值
MEAN = mean(Test); % 每一列的均值
MEDIAN = median(Test); %每一列的中位数
SKEWNESS = skewness(Test); %每一列的偏度
KURTOSIS = kurtosis(Test); %每一列的峰度
STD = std(Test); % 每一列的标准差
RESULT = [MIN;MAX;MEAN;MEDIAN;SKEWNESS;KURTOSIS;STD]
%将这些统计量放到一个矩阵中表示

将计算结果复制到EXCEL表格中,进行描述性统计,最后可将表加到论文中

描述性统计结果和矩阵散点图都可以用spss来实现

如果散点图存在一定线性关系 ,下面我们来计算皮尔逊相关系数:R=corrcoef(Test) (可将美化后的相关系数表放到论文中)

假设检验:(可结合概率论课本假设检验部分)

皮尔逊相关系数假设检验:

更好的方法:p值判断方法

计算各列之间的相关系数以及p值:
一行代码:[R,P] = corrcoef(Test) 

R返回的是相关系数表,P返回的是对应于每个相关系数的p值

%% 计算各列之间的相关系数以及p值
[R,P] = corrcoef(Test)
% 在EXCEL表格中给数据右上角标上显著性符号吧
P < 0.01 % 标记3颗星的位置 (P < 0.05) .* (P > 0.01) % 标记2颗星的位置
(P < 0.1) .* (P > 0.05) % 标记1颗星的位置

可以用spss构造标记显著性的相关系数表加到论文中

皮尔逊相关系数假设检验的条件:

第一, 实验数据通常假设是成对的来自于正态分布的总体。因为我们在求皮尔
逊相关性系数以后,通常还会用t检验之类的方法来进行皮尔逊相关性系数检验,
而t检验是基于数据呈正态分布的假设的。
第二, 实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较
大。
第三:每组样本之间是独立抽样的。构造t统计量时需要用到。

偏度和峰度:

x = normrnd(2,3,100,1);
% 生成100*1的随机向量,每个元素是均值为2,标准差为3的正态分布
skewness(x) %偏度
kurtosis(x) %峰度

正态分布JB检验(大样本 n>30)

MATLAB中进行JB检验的语法:[h,p] = jbtest(x,alpha)
当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设。
alpha就是显著性水平,一般取0.05,此时置信水平为1‐0.05=0.95
x就是我们要检验的随机变量,注意这里的x只能是向量。

MATLAB代码:

%% 正态分布检验
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)
% 用循环检验所有列的数据
n_c = size(Test,2); % number of column 数据的列数
H = zeros(1,6);
P = zeros(1,6);
for i = 1:n_c
[h,p] = jbtest(Test(:,i),0.05);
H(i)=h;
P(i)=p;
end
disp(H)
disp(P)

小样本3≤n≤50:Shapiro-wilk检验:

Q-Q图法:

要利用Q‐Q图鉴别样本数据是否近似于正态分布,只需看Q‐Q图上的点
是否近似地在一条直线附近。(要求数据量非常大)

斯皮尔曼spearman相关系数:

注:如果有的数值相同,则将它们所在的位置取算术平均

MATLAB中计算斯皮尔曼相关系数:

两种用法
(1)corr(X , Y , ‘type’ , ‘Spearman’)
这里的X和Y必须是列向量哦~
(2)corr(X , ‘type’ , ‘Spearman’)
这时计算X矩阵各列之间的斯皮尔曼相关系数

斯皮尔曼相关系数的假设检验:

分为小样本和大样本两种情况:
小样本情况,即𝒏 < 𝟑𝟎时,直接查临界值表即可。

% 直接给出相关系数和p值 [R,P]=corr(Test, ‘type’ , ‘Spearman’)

两个相关系数的比较:

1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用
spearman相关系数也可以, 就是效率没有pearson相关系数高。
2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
3.两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量
形成的,表现为类别,可以进行排序,属于品质数据。
例如:优、良、差;
我们可以用1表示差、2表示良、3表示优,但请注意,用2除以1得出的2并不
代表任何含义。定序数据最重要的意义代表了一组数据中的某种逻辑顺序。
注:斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只要数据满足单调关系
(例如线性函数、指数函数、对数函数等)就能够使用


http://chatgpt.dhexx.cn/article/HkBPX5mc.shtml

相关文章

三大统计学相关系数(pearson、kendall、spearman)

一、皮尔逊相关系数 前边文章讲了很多了&#xff0c;这里不详细讲了&#xff0c;想了解的可以看这篇。 相似度计算&#xff08;2&#xff09;——皮尔逊相关系数 适用范围&#xff1a; 当两个变量的标准差都不为零时&#xff0c;相关系数才有定义&#xff0c;皮尔逊相关系数适…

Pearson相关系数和Spearman相关系数的区别

Pearson相关系数和Spearman相关系数的区别 1、协方差、相关系数2、Pearson相关系数3、Spearman相关系数3.1 定义3.2 什么时候用 4、两者的区别点4.1 线性相关与单调相关4.2 前提假设不同4.3 变量正态分布与否 5、实例展示6、参考资料 参考资料前两个博客讲解的非常详细&#xf…

Pearson相关系数, Spearman相关系数,Kendall相关系数

三个相关性系数&#xff08;pearson, spearman, kendall&#xff09;反应的都是两个变量之间变化趋势的方向以及程度&#xff0c;其值范围为-1到1&#xff0c;0表示两个变量不相关&#xff0c;正值表示正相关&#xff0c;负值表示负相关&#xff0c;值越大表示相关性越强。 1.…

数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

目录 前言 一、基本概念及二者适用范围比较 1、什么是相关性分析 2、什么是相关系数 3、适用范围比较 二、相关系数 1.皮尔逊相关系数&#xff08;Pearson correlation&#xff09; 1、线性检验 2、正态检验 3、求相关系数 2、斯皮尔曼相关系数&#xff08;Spearman…

斯皮尔曼相关(Spearman correlation)系数概述及其计算例

目录 1. 什么是秩相关系数&#xff1f; 2. 单调性&#xff0c;monotonicity 3. 斯皮尔曼秩相关系数 4. 什么时候使用斯皮尔曼秩相关系数呢&#xff1f; 5. 斯皮尔曼秩相关系数计算公式 6. 斯皮尔曼秩相关系数计算例 6.1 手动计算 6.2 scipy函数 6.3 pandas corr() 6…

一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码

前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达。其中常见的相关性系数就有三种:person相关系数,spearman相关系数,Kendalls tau-b等级相关系数。各有各自的用法和使用场景。当然关于这以…

斯皮尔曼(spearman)相关系数python代码实现

简介 斯皮尔曼等级相关系数&#xff08;简称等级相关系数&#xff0c;或称秩相关系数&#xff0c;英语&#xff1a;Spearmans rank correlation coefficient或Spearmans ρ&#xff09;。一般用或者表示。它是衡量两个变量的相关性的无母数指标。它利用单调函数评价两个统计变量…

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录 引述一、斯皮尔曼相关系数&#xff08;spearman&#xff09;1.定义12.定义23.使用MATLAB计算spearman相关系数4. 斯皮尔曼相关系数的假设检验 二、斯皮尔曼相关系数与皮尔逊相关系数的比较 引述 经过之前几节的学习&#xff0c;我们了解并掌握了皮尔逊相关系数。在学…

Spearman相关系数的含义及适用场景

斯皮尔曼相关系数计算工具: https://geographyfieldwork.com/SpearmansRankCalculator.html斯皮尔曼相关系数的解释&#xff1a;https://statisticsbyjim.com/basics/spearmans-correlation/ 统计中&#xff0c;斯皮尔曼相关系数是皮尔逊相关系数的非参数替代方法。对遵循曲线、…

SPSS——相关分析——Spearman秩相关系数

简介 斯皮尔曼等级相关&#xff08;Spearman’s correlation coefficient for ranked data&#xff09;主要用于解决称名数据和顺序数据相关的问题。适用于两列变量&#xff0c;而且具有等级变量性质具有线性关系的资料。由英国心理学家、统计学家斯皮尔曼根据积差相关的概念推…

ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略

ML之Spearman&#xff1a;Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略 目录 Spearman相关系数(斯皮尔曼等级相关系数)的简介 (1)、Spearman相关系数(斯皮尔曼等级相关系数)的计算逻辑 Spearman相关系数(斯皮尔曼等级相关系数)的的案例应用 Spearman相…

斯皮尔曼spearman相关系数

斯皮尔曼spearman相关系数 斯皮尔曼相关系数定义&#xff1a; X和Y为两组数据&#xff0c;其斯皮尔曼&#xff08;等级&#xff09;相关系数: r s 1 − 6 ∑ i 1 n d i 2 n ( n 2 − 1 ) r_s1-\frac{6\sum\limits_{i1}^nd_i^2}{n(n^2-1)} rs​1−n(n2−1)6i1∑n​di2​​ …

数据库知识及数据库编程

数据库的概念 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。它的存储空间很大&#xff0c;可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数…

数据库编程与设计—SQL语言

一、SQL语言基础 1 什么是SQL 结构化查询语言结构化查询语言(Structured Query Language)简称 SQL(发音&#xff1a;sequal[si:kwəl])&#xff0c;是一种数据库查询和程序设计语言&#xff0c;用于存取数据以及查询、更新和管理关系数据库系统&#xff1b;同时也是数据库脚本…

JDBC --- Java的数据库编程

目录 &#x1f348;一、数据库编程的必备条件 &#x1f349;二、什么是 JDBC JDBC 的优势 &#x1f34a;三、JDBC 使用流程 以及 常用接口和类的讲解 &#x1f361;0. 前置工作 &#x1f36d;1. 引入依赖 &#x1f36c;2. 数据库连接Connection &#x1f36c;3. 创建操…

数据库—mysql、数据库编程(API)

1. Linux平台准备 &#xff08;1&#xff09;安装SDK开发包的命令 sudo apt-get install libmysqlclient-dev &#xff08;2&#xff09;编译时需要链接的库:-lmysqlclient 2. mysql 的初始化和清理 #include <mysql/mysql.h> MYSQL mysql1; //创建句柄 mysql_init(&…

8.数据库编程

一、思维导图 二、基础梳理 1.游标的使用步骤 ① 声明游标。 用DECLARE语句为一条SELECT语句定义游标 EXEC SQL DECLARE<游标名> CURSOR FOR <SELECT语句>;使用T-SQL语句生成一个结果集&#xff0c;并且定义游标的特征&#xff0c;如游标中的记录是否可以修改。…

数据库编程----Mysql简介

数据库编程----Mysql简介 文章目录 一、什么是Mysql二、Mysq的l特点三、总结 一、什么是Mysql Mysql是一个关系型数据库管理系统二、Mysq的l特点 三、总结 Mysql是一个关系型的数据管理系统

6.数据库编程

PL-SQL编程 1.PL/SQL的特点 PL(Procedure Language)/SQL&#xff09;是Oracle在数据库中引入的一种过程化的编程语言。 PL/SQL是对SQL的扩充&#xff1a;具有为程序开发而设计的特性&#xff1b; 在PL/SQL 中可以使用变量&#xff0c;进行流程控制&#xff0c;来实现比较复杂…

编程语言与数据库

从新近的TIOBE编程语言排名可看到&#xff0c;Java、C依然稳定地在最受欢迎前列。 因具备图灵完备性&#xff0c;2018年才重新被纳入清单的SQL语言已快速出现在第9位置&#xff08;7月&#xff09;——这似乎意味着&#xff0c;传统的RDBMS(关系数据库系统)仍然是应用的主流&am…