3.1 相关系数(person与spearman)

article/2025/9/20 11:10:05

1.1总体皮尔逊(person)相关系数:

在概率论与数理统计中我们学到,若两组数据X{x1,x2…xn}与Y{y1,y2…yn}为总体数据,则总体协方差为在这里插入图片描述
它表示两个变量的总体误差,若XY相对于各自均值同向变化,为正值,反之为负值。其数值与数据本身量纲有关。
则总体皮尔逊相关系数为上面的协方差除以X与Y的标准差。即:
在这里插入图片描述
可以看成是剔除了两个变量量纲影响,即将X和Y标准化后的协方差。

1.2 样本皮尔逊相关系数:
与上面类似,XY是两组样本数据。样本的协方差与标准差分母改成n-1即可:
在这里插入图片描述
在这里插入图片描述
通过绘制散点图,我们可以清楚的看出x与y的相关性:
在这里插入图片描述
注:
1.我们只能通过这种方法衡量X与Y线性相关的程度,若两组本身不是线性关系,那么结果并不具有说服力。一定要先判断两变量是否是线性关系!
2.野值对结果存在影响。
3.计算得出的相关性结果是大是小需要根据不同的背景来解释。

1.3 进行假设检验来判断其显著性:
原假设H0:相关系数r=0 ;H1:r≠0。对于这里的皮尔逊相关系数来说,满足一定条件时,我们可以认为它是服从自由度为n-2的t分布。在这里插入图片描述
在后面的MATLAB代码中,方便起见,我们用到了p值判别法,计算相关系数矩阵的元素对应的p值(当p<0.01时,在99%的置信水平上拒绝H0,其他同理)


例题:
在这里插入图片描述
我们将数据导入spss,利用描述功能,我们可以得出一些基本信息
在这里插入图片描述
在这里插入图片描述

我们接下来看一下两两变量的线性关系,利用spss的矩阵散点图做出:
在这里插入图片描述

我们可以看出,两两的线性关系并不太好,但是为了演示后面的过程,我们假设这里是满足线性的。
接下来用MATLAB来进行后续的操作

[R,P] = corrcoef(PE_Test) %PE_Test为体侧的数据,corrcoef函数是求相关系数的函数,R为相关系数,P为p值

运行结果:
在这里插入图片描述
在这里插入图片描述


我们如何判断数据是否是正态分布?
2.1雅克‐贝拉检验(Jarque‐Bera test),适用于大样本(n>30)
在这种方法中,主要是通过比较偏度与峰度来判断
在这里插入图片描述
H0为变量服从正态分布;H1为不服从,一般取α=0.05(95%置信区间)

MATLAB代码:

% 以下两行为检验第一列数据是否为正态分布
%[h,p] = jbtest(PE_Test(:,1),0.05) 当p<0.05时,在95%的置信水平上拒绝H0
%[h,p] = jbtest(PE_Test(:,1),0.01) 当p<0.01时,在99%的置信水平上拒绝H0,则h=1,反之h=0% 用循环检验所有列的数据
n_c = size(PE_Test,2);  % number of column 数据的列数
H = zeros(1,6);  %预分配,初始化
P = zeros(1,6);
for i = 1:n_c[h,p] = jbtest(PE_Test(:,i),0.05);H(i)=h;P(i)=p;
end
disp(H) %运行结果为H全是1,不服从正态分布
disp(P)

2.2Shapiro‐wilk夏皮洛‐威尔克检验,适用于小样本(3<=n<=50):
与上面类似,H0为服从正态分布,H1为不服从。α默认0.05,为了满足条件,我选取的前三十组数据,并使用spss操作:
在这里插入图片描述
在这里插入图片描述
可以看到,身高,立定跳远与坐位体前屈大于0.05,即无法拒绝原假设,是正态分布的。
在这里插入图片描述
身高的qq图大体上表现为线性,但要注意,这里的n并不大,可能qq图的说服力并不强。

2.3 qq图:
Q‐Q图(Q代表分位数Quantile)是一种通过比较两个概率分布的分位数对这两个概率分布进行比较的概率图方法。首先选定分位数的对应概率区间集合,在此概率区间上,点(x,y)对应于第一个分布的一个分位数x和第二个分布在和x相同概率区间上相同的分位数。
这里,我们选择正态分布和要检验的随机变量,并对其做出QQ图,可想而知,如果要检验的随机变量是正态分布,那么QQ图就是一条直线。要利用Q‐Q图鉴别样本数据是否近似于正态分布,只需看Q‐Q图上的点是否近似地在一条直线附近。(数据量最好非常大)


在第一部分的皮尔逊相关系数的内容中,我们可以看出他需要满足许多条件:
(1)、两个变量之间是线性关系,都是连续数据。
(2)、两个变量的总体是正态分布,或接近正态的单峰分布。
(3)、两个变量的观测值是成对的,每对观测值之间相互独立。(引用自Leaveager的博客https://blog.csdn.net/qq_30142403/article/details/82350628)
但如果有一条不满足呢?接下来,我们将介绍第三部分,斯皮尔曼(spearman)相关系数

3.1斯皮尔曼相关系数的定义:
斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。它的适用范围更广,但面对特定问题时,可能不够准确,如两个变量满足上面的(1)(2)(3),则优先考虑皮尔逊相关系数。

3.2 数学表达:
在这里插入图片描述rs位于-1到1.
举个例子
在这里插入图片描述
代入公式可计算出rs=0.875。

3.3 MATLAB代码:

%% MATLAB求解斯皮尔曼
X = [3 8 4 7 2]' % 一定要用列向量!
Y = [5 10 9 10 6]'
coeff = corr(X , Y , 'type' , 'Spearman')

在这里插入图片描述
3.4 又到了爷最爱的假设检验环节
当样本较小时,我们可以直接查表。但样本大的话,遵循下面的公式
在这里插入图片描述
H0:rs=0;H1:rs不等于0。

当然,我们可以不用考虑上面的情况,直接用代码来解决:

% 直接给出相关系数R和p值,和上面皮尔逊差不多
%[R,P]=corr(PE_Test, 'type' , 'Spearman')

在这里插入图片描述
结果和皮尔逊的确实不太一样。


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

相关文章

斯皮尔曼相关(spearman)系数法

在分析指标与指标、指标与研究对象的影响程度时&#xff0c;很多时候会用到相关系数法&#xff0c;下面介绍一下斯皮尔曼相关系数法。 斯皮尔曼等级相关是根据等级资料研究两个变量间相关关系的方法。它是依据两列成对等级的各对等级数之差来进行计算的&#xff0c;斯皮尔曼等级…

Spearman 相关性分析法,以及python的完整代码应用

Spearman 相关性分析法 简介 Spearman 相关性分析法是一种针对两个变量之间非线性关系的相关性计算方法&#xff0c;同时&#xff0c;它不对数据的分布进行假设。该方法的基本思想是将两个&#xff08;也可以多个&#xff09;变量的值进行排序&#xff0c;并计算它们之间的等…

统计学三大相关系数之斯皮尔曼(spearman)相关系数

斯皮尔曼相关性系数&#xff0c;通常也叫斯皮尔曼秩相关系数。“秩”&#xff0c;可以理解成就是一种顺序或者排序&#xff0c;那么它就是根据原始数据的排序位置进行求解&#xff0c;这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式&#xff1a;…

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

目录 总体皮尔逊Person相关系数&#xff1a; 样本皮尔逊Person相关系数&#xff1a; 两点总结&#xff1a; 假设检验&#xff1a;&#xff08;可结合概率论课本假设检验部分&#xff09; 皮尔逊相关系数假设检验&#xff1a; 更好的方法&#xff1a;p值判断方法 皮尔逊相…

三大统计学相关系数(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(&…