数学建模相关系数

本文详细介绍了皮尔逊和斯皮尔曼相关系数的计算及其应用,强调了在不同条件下选择合适相关系数的重要性。皮尔逊系数适用于线性相关,而斯皮尔曼适用于非线性和定序数据。文中还阐述了如何进行假设检验,包括t检验和p值计算,以及正态性检验方法,如JB检验和Q-Q图。此外,提到了异常值和离群点对相关性分析的影响。
摘要由CSDN通过智能技术生成

相关系数

本文介绍两种最为常用的相关系数:皮尔逊pearson相关系数斯皮尔曼spearman等级相关系数。它们可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方法)。

描述性统计

  • 使用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
    在这里插入图片描述

Pearson相关系数

  • 总体Pearson相关系数
    假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:
    在这里插入图片描述

可以证明 ∣ ρ X Y ∣ ≤ 1 |\rho_{XY}|\leq1 ρXY1,且当 Y = a X + b Y=aX+b Y=aX+b时, ρ X Y = { 1 , a > 0 − 1 , a < 0 \rho_{XY}=\{ { 1, a>0 \atop -1,a<0} ρXY={1,a<01,a>0
皮尔逊相关系数也可以看成是剔除了两个变量量纲影响,即将X和Y标准化后的协方差。

  • 样本Pearson相关系数
    样本皮尔逊Pearson相关系数
    在这里插入图片描述
  • 相关理解

在这里插入图片描述
上面四个散点图对应的数据的皮尔逊相关系数均为0.816
在这里插入图片描述

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

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

  • 矩阵散点图
    在计算皮尔逊相关系数之前,一定要做出散点图来看两组变量之间是否有线性关系
    使用Spss : 图形 ‐ 旧对话框 ‐ 散点图/点图 ‐ 矩阵散点图

  • 皮尔逊相关系数的计算
    使用corrcoef函数(correlation coefficient相关系数)

    • R = corrcoef(A)
      返回 A 的相关系数的矩阵,其中 A 的列表示随机变量(指标),行表示观测值(样本)。
    • R = corrcoef(A,B)
      返回两个随机变量 A 和 B (两个向量)之间的系数。
  • 使用EXCEL美化相关系数表
    在这里插入图片描述

  • 对皮尔逊相关系数进行假设检验

    • 方法一
    1. 提出原假设 H 0 H_0 H0和备择假设 H 1 H_1 H1         H 0 : r = 0       H 1 : r ≠ 0 \ \ \ \ \ \ \ H_0:r=0\ \ \ \ \ H_1:r\neq0        H0:r=0     H1:r=0
    2. 在原假设成立的条件下,利用被检测的量构造出一个符合某一分布的统计量

    统计量相当于被检验的量的一个函数,里面不可以有其他的随机变量
    其中分布一般有四种:标准正态分布, t t t分布, X 2 X^2 X2 分布, F F F分布
    对于皮尔逊相关系数 r r r而言,在满足一定条件下,可以构造统计量: t = r n − 2 > 1 − r 2 t=r\sqrt{\frac{n-2}>{1-r^2}} t=r>n21r2 , t t t是服从自由度为 n − 2 n-2 n2 t t t分布

    1. 将检验的值代入统计量中,得到特定的值(检验值 t ∗ t^* t
    2. 根据统计量的分布情况,绘制该分布的概率密度函数 p d f pdf pdf,并给定一个置信水平,根据置信水平查表寻找临界值,画出检验统计量的接受域和拒绝域。
      x = -4:0.1:4;
      y = tpdf(x,28); %用于画t分布的pdf
      plot(x,y,'-')
      grid on % 在画出的图上加上网格线
      
    3. 判断 t ∗ t^* t在拒绝域还是接受域
    • 方法二
      得到检验值后根据这个值计算其对应的概率,再用1减去这个数得到 p p p
      disp('该检验值对应的p值为:')
      disp((1-tcdf(3.055,28))*2) %双侧检验的p值要乘以2,单侧的不用
      %tcdf : 累积分布函数
      

    p < 0.01 p<0.01 p<0.01, 说明在 99 % 99\% 99%的置信水平上拒绝原假设
    p < 0.05 p<0.05 p<0.05, 说明在 95 % 95\% 95%的置信水平上拒绝原假设
    p < 0.10 p<0.10 p<0.10, 说明在 90 % 90\% 90%的置信水平上拒绝原假设
    p > 0.01 p>0.01 p>0.01, 说明在 99 % 99\% 99%的置信水平上无法拒绝原假设
    p > 0.05 p>0.05 p>0.05, 说明在 95 95% 95的置信水平上无法拒绝原假设
    p > 0.10 p>0.10 p>0.10, 说明在 90 % 90\% 90%的置信水平上无法拒绝原假设

  • 显著性标记

    • 没有星星表示不显著
    • *(一颗星星)表示在置信水平为90%时显著异于零,p值小于0.1
    • **(两颗星星)表示在置信水平为95%时显著异于零,p值小于0.05
    • ***(三颗星星)表示在置信水平为99%时显著异于零,p值小于0.01
%% 计算各列之间的相关系数以及p值
[R,P] = corrcoef(Test)
% 在EXCEL表格中给数据右上角标上显著性符号
P < 0.01 % 标记3颗星的位置
(P < 0.05) .* (P > 0.01) % 标记2颗星的位置
(P < 0.1) .* (P > 0.05) % 标记1颗星的位置

Matlab计算的是双侧检验的p值,如果需要单侧的话只需要除以2即可。

  • 皮尔逊相关系数假设检验的条件
  1. 实验数据通常假设是成对的来自于正态分布的总体。(最重要)
  2. 实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较大。
  3. 每组样本之间是独立抽样的。构造t统计量时需要用到。

检验正态分布

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

  • 雅克‐贝拉检验(Jarque‐Bera test)
    H 0 : 该 变 量 服 从 正 态 分 布 H_0 : 该变量服从正态分布 H0:
    H 1 : 该 变 量 不 服 从 正 态 分 布 H_1 : 该变量不服从正态分布 H1:

  • 偏度和峰度
    在这里插入图片描述当偏度≈0时,可认为分布是对称的,服从正态分布

在这里插入图片描述正态分布的峰度为3

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

% 用循环检验所有列的数据
n_c = size(Test,2);  %数据的列数
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)

Shapiro-wilk检验(小样本 n ≤ 3 ≤ 50 n\leq 3\leq 50 n350

  • Shapiro‐wilk夏皮洛‐威尔克检验
    H 0 : 该 变 量 服 从 正 态 分 布 H_0 : 该变量服从正态分布 H0:
    H 1 : 该 变 量 不 服 从 正 态 分 布 H_1 : 该变量不服从正态分布 H1:
  • 计算出威尔克统计量,得到相应的 p p p 值m将 p p p 值与显著性水平比较,如果小于就可以拒绝 H 0 H_0 H0,反之接受 H 0 H_0 H0

Q-Q图检验

如果要检验的随机变量是正态分布,那么QQ图就是一条直线。要利用Q‐Q图鉴别样本数据是否近似于正态分布,只需看Q‐Q图上的点是否近似地在一条直线附近。(要求数据量非常大)

  • SPSS生成Q-Q图
    在这里插入图片描述
  • MATLAB生成Q-Q图
qqplot(Test(:,1)) %第一列数据和正态分布的Q-Q图

符合正态分布的点非常贴合于一条直线,首尾没有分散的现象。

斯皮尔曼spearman相关系数

  • 第一种定义
    对于样本容量为 n n n的样本, X X X Y Y Y为两组数据, d i d_i di X i X_i Xi Y i Y_i Yi之间的等级差,相关系数
    r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) r_s=1-\frac{6\displaystyle\sum^{n}_{i=1}d_i^2}{n(n^2-1)} rs=1n(n21)6i=1ndi2
    r s r_s rs位于 − 1 -1 1 1 1 1之间。
    (等级为把一个数所在的列从小到大的排序后这个数所在位置,如果数值相同,就取算术平均)

  • 第二种定义

    • 斯皮尔曼相关系d数被定义成等级变量之间的皮尔逊相关系数
    • 可以用MATLAB中求解皮尔逊相关系数的函数求解斯皮尔曼相关系数。 corrcoef(RX,RY)此处RX RY是等级
  • MATLAB中求斯皮尔曼相关系数

  1. corr(X , Y , 'type' , 'Spearman')
    这里的X和Y必须是列向量
  2. corr(X , 'type' , 'Spearman')
    这时计算X矩阵各列之间的斯皮尔曼相关系数
X = [3 8 4 7 2]' % 一撇表示求转置
Y = [5 10 9 10 6]'%
coeff = corr(X , Y , 'type' , 'Spearman')

MATLAB使用第二种定义

  1. 小样本情况下(n ≤ 30 \leq 30 30),将斯皮尔曼系数值和临界值表中的比较即可 ( r r r大于临界值可以得出显著结论)
  2. 大样本情况下,统计量 r s n − 1 ∼ N ( 0 , 1 ) r_s\sqrt{n-1} \sim N(0,1) rsn1 N(0,1)
    H 0 : r s = 0 H_0 : r_s=0 H0:rs=0, H 1 : r s ≠ 0 H_1 : r_s\neq 0 H1:rs=0,计算出 r s n − 1 r_s\sqrt{n-1} rsn1 ,求出对应的 p p p 值与显著性水平相比。
% 直接给出相关系数和p值
[R,P]=corr(Test, 'type' , 'Spearman')

两个相关系数的选择

  1. 连续数据,正态分布,线性关系,用pearson相关系数是最恰当,用spearman相关系数也可以, 就是效率没有pearson相关系数高。
  2. 上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
  3. 两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
    (一般情况下都用斯皮尔曼相关系数)

定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据。
例如:优、良、差;
我们可以用1表示差、2表示良、3表示优,但用2除以1得出的2并不代表任何含义。定序数据最重要的意义代表了一组数据中的某种逻辑顺序。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值