问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

相关系数及相关性分析(数学建模)

创作时间:
作者:
@小白创作中心

相关系数及相关性分析(数学建模)

引用
CSDN
1.
https://blog.csdn.net/SHRtuji/article/details/114107221

相关系数

一、皮尔逊(Pearson)相关系数

1. Pearson相关系数使用条件和检验条件
1) 使用和检验条件

我们常说的相关系数指得就是皮尔逊(pearson)相关系数。条件如下:

  • 条件一:样本数据必须满足正态分布
  • 条件二:样本数据是连续的且数据之间的差异不能太大(不能包含离群点或异常值)。
  • 条件三:每组样本之间相互独立
  • 条件四:皮尔逊相关系数有效的前提是两组数据(两个对象)之间呈线性关系
2) 散点图检验

使用EXCEL或者SPSS(对象很多)或者matlab绘制散点图来看是否存在线性关系,并看数据是否连续,有无离群点。

3) 正态分布检验

正态分布检验方法包括:

  • 雅克-贝拉检验(Jarque-Bera test)
  • 夏皮洛-威尔克检验(Shapiro-Wilk test)
  • Q-Q图

JB检验:MATLAB中进行JB检验的语法为[h,p] = jbtest(x,alpha)。JB检验是大样本检验(n>30)。

Shapiro-Wilk检验:是小样本检验(3≤n≤50)。在SPSS中的操作步骤为:分析->描述统计->探索->图->含检验的正态图。得到P值,P值<0.05表示拒绝原假设即随机变量不服从正态分布。

Q-Q图:要利用Q-Q图鉴别样本数据是否近似于正态分布,只需看Q-Q图上的点是否近似地在一条直线附近。(要求数据量非常大)MATLAB函数为qqplot(x),其中x是数据向量。

2. Pearson相关系数如何求?

在MATLAB中,可以使用corrcoef函数来计算:

  • R = corrcoef(A):返回 A 的相关系数的矩阵,其中 A 的列表示随机变量(指标),行表示观测值(样本)。
  • R = corrcoef(A,B):返回两个随机变量 A 和 B (两个向量)之间的相关系数。
3. Pearson相关系数假设性检验(显著性检验)

1)在MATLAB中,可以使用一行代码进行检验:[R,P] = corrcoef(Test)。其中R返回的是相关系数表,P返回的是对应于每个相关系数的p值。p值小于0.05说明在95%置信水平上拒绝原假设即相关系数显著异于0。

2)在SPSS中,也可以生成相关系数表,并且有显著性标记。步骤为:分析->相关->双变量->皮尔逊。

二、斯皮尔曼(Spearman)等级相关系数

Spearman等级相关系数的定义有两种,MATLAB使用的定义是:斯皮尔曼相关系数被定义成等级之间的皮尔逊相关系数。等级按照从小到大排序。

在MATLAB中,可以使用以下函数计算:

  • corr(X , Y , 'type' , 'Spearman'):计算两个列向量的Spearman等级相关系数。
  • corr(X , 'type' , 'Spearman'):计算X矩阵各列之间的Spearman等级相关系数。
1. Spearman等级相关系数假设性检验(显著性检验)

分为小样本大样本两种情况:

1)小样本

当样本量n <= 30时,直接查临界值表即可。当相关系数大于临界值说明相关系数显著异于0即显著相关

2)大样本

在MATLAB中,可以使用函数[R,P]=corr(X, 'type' , 'Spearman')直接给出P值。P值小于0.05则拒绝原假设即 相关系数 和 0 有显著性差异。

三、两种相关系数的选择

如果满足皮尔逊相关系数的使用条件检验条件,则使用皮尔逊相关系数。如果任何一个条件不满足,则使用斯皮尔曼等级相关系数。另外,两个定序数据之间的相关系数求解也用斯皮尔曼。斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广。定序数据是指反映在某一指标下观测对象的等级、排名、优劣等,可用数字和文字表示,但不能参与运算,所以只能用斯皮尔曼等级相关系数。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号