数学建模学习笔记(五)——相关系数以及假设检验

皮尔逊相关系数

  1. 总体皮尔逊(Pearson)相关系数
    如果有 A : { A 1 , A 2 , ⋯   , A n } A:\{A_1, A_2, \cdots, A_n\} A:{A1,A2,,An} Y : { Y 1 , Y 2 , ⋯   , Y n } Y:\{Y_1, Y_2, \cdots, Y_n\} Y:{Y1,Y2,,Yn} 这两组数据,并且这两组数据都是总体数据。(即调查所有对象而得出的数据),那么可以求出总体均值为: E ( X ) = ∑ i = 1 n X i n , E ( Y ) = ∑ i = 1 n Y i n E(X) = \frac{\sum_{i = 1}^{n}X_i}{n}, E(Y) = \frac{\sum_{i = 1}^{n}Y_i}{n} E(X)=ni=1nXi,E(Y)=ni=1nYi 同时,总体协方差也就可以表示为: C o v ( X , Y ) = ∑ i = 1 n ( X i − E ( X ) ) ( Y i − E ( Y ) ) n Cov(X, Y) = \frac{\sum_{i = 1}^{n}(X_i - E(X))(Y_i - E(Y))}{n} Cov(X,Y)=ni=1n(XiE(X))(YiE(Y)) 协方差可以理解为 X X X Y Y Y 的变化方向是否相同。但是,协方差要受到量纲的影响,因此不适合作为比较。

    有了协方差以及总体均值,那么总体皮尔逊(Pearson)相关系数便可表示为: ρ = C o v ( X , Y ) σ = ∑ i = 1 n ( X i − E ( X ) ) σ X Y i − E ( Y ) σ Y n \rho = \frac{Cov(X, Y)}{\sigma} = \frac{\sum_{i = 1}^{n}\frac{(X_i - E(X))}{\sigma_{X}}\frac{Y_i - E(Y)}{\sigma_Y}}{n} ρ=σCov(X,Y)=ni=1nσX(XiE(X))σYYiE(Y)其中, σ X \sigma_X σX σ Y \sigma_Y σY 表示 X X X Y Y Y 的标准差,计算公式为: σ X = ∑ i = 1 n ( X i − E ( X ) ) 2 n , σ Y = ∑ i = 1 n ( Y i − E ( Y ) ) 2 n \sigma_X = \sqrt{\frac{\sum_{i = 1}^{n}(X_i - E(X))^2}{n}}, \sigma_Y = \sqrt{\frac{\sum_{i = 1}^{n}(Y_i - E(Y))^2}{n}} σX=ni=1n(XiE(X))2 ,σY=ni=1n(YiE(Y))2 我们还可以得出, ∣ ρ X Y ∣ ≤ 1 |\rho_{XY}| \leq 1 ρXY1 0 ≤ ρ ≤ 1 0 \leq \rho \leq 1 0ρ1 时,表示 X X X Y Y Y 之间成正相关关系,反之则成负相关关系。

  2. 样本皮尔逊(Pearson)系数
    样本均值: X ˉ = ∑ i = 1 n X i n , Y ˉ = ∑ i = 1 n Y i n \bar{X} =\frac{\sum_{i = 1}^{n}X_i}{n}, \bar{Y} = \frac{\sum_{i = 1}^{n}Y_i}{n} Xˉ=ni=1nXi,Yˉ=ni=1nYi
    样本协方差为: C o v ( X , Y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 Cov(X, Y) = \frac{\sum_{i = 1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{n - 1} Cov(X,Y)=n1i=1n(XiXˉ)(YiYˉ) (注意分母是 n − 1 n - 1 n1 , 而不是 n n n ! !)
    样本皮尔逊(Pearson)相关系数: r X Y = C o v ( X , Y ) S X S Y r_{XY} = \frac{Cov(X, Y)}{S_X S_Y} rXY=SXSYCov(X,Y)
    其中, S X = ∑ i = 1 n ( X i − X ˉ ) 2 n − 1 , ∑ i = 1 n ( Y i − Y ˉ ) 2 n − 1 S_X = \sqrt{\frac{\sum_{i = 1}^{n}(X_i - \bar{X})^2}{n - 1}}, \sqrt{\frac{\sum_{i = 1}^{n}(Y_i - \bar{Y})^2}{n - 1}} SX=n1i=1n(XiXˉ)2 ,n1i=1n(YiYˉ)2 同样,分母都是 n − 1 n - 1 n1 哦!!

  3. 关于皮尔逊相关系数容易理解错误的点
    ∙ \bullet 必须要在两个变量线性相关时,求出的相关系数才能说明这两个变量的相关性
    ∙ \bullet 异常点对于线性相关系数的影响很大,不能一概而论
    ∙ \bullet 相关系数为0,只能说明这两个变量不是线性相关的,但也有可能会有其他更为复杂的关系。

  4. 使用皮尔逊相关系数之前需要:
    ∙ \bullet 做出散点图确定这两个变量是否初步拥有线性相关关系
    不确定两个变量的关系,及时相关系数很大也无法判断。
    确定两个变量具有线性相关关系,计算皮尔逊(Pearson)相关系数时,可以直接在 M a t l a b Matlab Matlab 中调用 c o r r c e o f corrceof corrceof 函数来计算。

假设检验

假设检验一般有如下几个步骤:

  1. 提出原假设 H 0 H_0 H0 以及备择假设 H 1 H_1 H1 (两个假设互补)
  2. 在原假设成立的条件下,利用要检验的量构造一个满足某一分布的统计量(分布一般有:标准正态分布、 t t t 分布、 χ 2 \chi^2 χ2 分布、 F F F 分布)
  3. 根据这个统计量,将检验对象带入统计量,得到一个检验值。
  4. 确定置信水平(99%, 95%, 90%,一般选取95%),根据置信水平确定临界值。
  5. 由检验值和临界值的大小来判断假设是否能够显著接受。

下面来看一个例子

首先必须画出散点图确定是否有相关性哦!!!

经过 M a t l a b Matlab Matlab 处理后可得的相关系数表为:
相关系数表
这是一个对称矩阵,矩阵中的数据表示行和列的相关系数。

  1. 提出假设:
    H 0 H_0 H0 r r r = 0, H 1 H_1 H1 r r r ≠ 0
  2. 提出满足分布的统计量
    可以构造统计量为: t = r n − 2 1 − r 2 t = r\sqrt{\frac{n - 2}{1 - r^2}} t=r1r2n2 可以证明 t t t 时服从自由度为 n − 2 n - 2 n2 t t t 分布。
  3. 带入得检验值
    看第一行、第二列的值为:0.0580,样本数为730,因此 t ∗ = 0.0580 730 − 2 1 − 0.058 0 2 = 1.5676 t^* = 0.0580\sqrt{\frac{730 - 2}{1 - 0.0580^2}}=1.5676 t=0.058010.058027302 =1.5676
  4. 给定置信水平,确定临界值
    给定置信水平为 95%,根据 t t t 分布表查阅对应的临界值
    接受范围
    比较检验值是否在接受域或者拒绝域。

{ 若在拒绝域,结论:在95%的置信水平上,我们拒绝原假设,r显著不为0 若在接受域,结论:在95%的置信水平上,我们无法拒绝原假设 \left\{\begin{aligned} &\text{若在拒绝域,结论:在95\%的置信水平上,我们拒绝原假设,r显著不为0} \\ &\text{若在接受域,结论:在95\%的置信水平上,我们无法拒绝原假设}\end{aligned}\right. {若在拒绝域,结论:在95%的置信水平上,我们拒绝原假设,r显著不为0若在接受域,结论:在95%的置信水平上,我们无法拒绝原假设

  1. 补充P值判断法
    根据得到的检验值 t ∗ t^* t,可以计算出这个检验值对应的概率。 { 若是单侧检验,可在 Matlab 中 P = 1 − t c d f ( t ∗ , 728 ) 若是双侧检验,可在 Matlab 中 P = ( 1 − t c d f ( t ∗ , 728 ) ) × 2 \left\{\begin{aligned} &\text{若是单侧检验,可在 Matlab 中} P = 1 - tcdf(t^*, 728) \\ &\text{若是双侧检验,可在 Matlab 中} P = (1 - tcdf(t^*, 728)) \times 2 \end{aligned} \right. {若是单侧检验,可在 Matlab P=1tcdf(t,728)若是双侧检验,可在 Matlab P=(1tcdf(t,728))×2

  2. 皮尔逊相关系数假设检验的条件
    ∙ \bullet 实验数据满足正态分布
    ∙ \bullet 实验数据不能差距太大
    ∙ \bullet 魅族样本之间时独立抽样的
    在平常的题目中,可以当作第二个和第三个条件成立。但是,第一个条件必须需要经过检验,检验成立才能使用皮尔逊(Pearson)相关系数检验。

  3. 正态分布检验
    ∙ \bullet 正态分布 J B JB JB 检验(大样本 n > 30 n > 30 n>30 时)

    对于一个随机变量 { X i } \{X_i\} {Xi} ,假设其偏度为 S S S,峰度为 K K K,那么可以构造JB统计量: J B = n 6 [ S 2 + ( K − 3 ) 2 4 ] JB = \frac{n}{6}[S^2 + \frac{(K - 3)^2}{4}] JB=6n[S2+4(K3)2]可以证明,如果 { X i } \{X_i\} {Xi} 是正态分布,那么在大样本情况下 J B − χ 2 ( 2 ) JB - \chi^2(2) JBχ2(2) (自由度为2的卡方分布)
    注:正态分布的偏度为 0,峰度为 3

    那么假设检验的步骤如下:
    H 0 H_0 H0:该变量服从正态分布, H 1 H_1 H1:该随机变量不服从正态分布。
    然后可以计算变量的偏度和峰度,得到检验值 J B ∗ JB^* JB ,并计算出其相应的 p p p 值。
    p p p 值与 0.05 作比较,小于 0.05 则可拒绝原假设,否则不能拒绝原假设。
    可以在 M a t l a b Matlab Matlab 中调用 [ h , p ] = j b t e s t ( c o l u m n , 置信水平 ) [h, p] = jbtest(column, \text{置信水平}) [h,p]=jbtest(column,置信水平) h h h 表示 J B ∗ JB^* JB 的值, p p p 表示对应的 p p p 值。

    ∙ \bullet 夏皮洛-威尔克(Shapiro-wilk)检验

    H 0 H_0 H0:该随机变量服从正态分布, H 1 H_1 H1:该随机变量不服从正态分布
    计算出威尔克统计量后,可以求出对应的 p p p
    p p p 值与 0.05 比较,如果小于 0.05 则可以拒绝原假设,否则不能拒绝原假设。
    计算威尔克统计量可以使用 S P S S SPSS SPSS 工具。

    ∙ \bullet Q − Q 图 Q-Q \text{图} QQ

    直接在 M a t l a b Matlab Matlab 中调用 q q p l o t ( c o l u m n ) qqplot(column) qqplot(column) 函数做出图像,如果 Q Q QQ QQ 图近似于一条直线,该随机变量满足正态分布。
    注意:作 Q Q QQ QQ 图要求数据量非常大,做出图像才会更加准确。

斯皮尔曼(spearman)相关系数

  1. 一种定义
    X X X Y Y Y 为两组数据,其斯皮尔曼相关系数定义为: r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) r_s = 1 - \frac{6\sum_{i = 1}^{n}d_i^2}{n(n^2 - 1)} rs=1n(n21)6i=1ndi2其中, d i d_i di X i X_i Xi Y i Y_i Yi 之间的等级差(一个数的等级 = 将它的一列数按照从小到大排序后,这个数的位置
    同样, r s r_s rs 位于 -1 和 1 之间
    |X|Y|X的等级|Y的等级|等级差|等级差的平方|
    |–|--|–|--|–|--|
    |3|5|2|1|1|1|
    |8|10|5|4.5|0.5|0.25|
    |4|8|3|3|0|0|
    |7|10|4|4.5|-0.5|0.25|
    |2|6|1|2|-1|1|
    根据公式: r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) r_s = 1 - \frac{6\sum_{i = 1}^{n}d_i^2}{n(n^2 - 1)} rs=1n(n21)6i=1ndi2可得: r s = 1 − 6 × ( 1 + 0.25 + 0.25 + 1 ) 5 × 24 = 0.875 r_s = 1 - \frac{6\times(1+0.25+0.25+1)}{5\times24} = 0.875 rs=15×246×(1+0.25+0.25+1)=0.875
  2. 另一种定义
    等级之间的皮尔逊相关系数
XYX的等级Y的等级等级差等级差的平方
352111
81054.50.50.25
483300
71044.5-0.50.25
2612-11
rank_X = [2 5 3 4 1]
rank_Y = [1 4.5 3 4.5 2]
R = corrcoef(rank_X, rank_Y)

M a t l a b Matlab Matlab 中,可以使用 c o r r ( ) corr() corr() 函数, c o r r ( r a n k X , r a n k Y , ′ t y p e ′ , ′ S p e a r m a n ′ ) corr(rank_X, rank_Y, 'type', 'Spearman') corr(rankX,rankY,type,Spearman)
注意: M a t l a b Matlab Matlab 中使用的是第二种计算方法

∙ \bullet 小样本情况下( n < 30 n < 30 n<30),可以直接查表

∙ \bullet 大样本情况下,可以构造统计量为: r s n − 1 r_s\sqrt{n - 1} rsn1
H 0 H_0 H0 r s = 0 r_s = 0 rs=0 H 1 H_1 H1 r s ≠ 0 r_s ≠ 0 rs=0
计算检验值 z ∗ = r s n − 1 z^* = r_s\sqrt{n - 1} z=rsn1 ,并求出对应的 p p p 值与 0.05 比较。 { 若是单侧检验 , P = 1 − n o r m c d f ( z ∗ ) 若是双侧检验 , P = ( 1 − n o r m c d f ( z ∗ ) ) × 2 \left\{\begin{aligned} &\text{若是单侧检验},P = 1 - normcdf(z^*) \\ &\text{若是双侧检验},P = (1 - normcdf(z^*))\times 2 \end{aligned} \right. {若是单侧检验P=1normcdf(z)若是双侧检验P=(1normcdf(z))×2或者直接在 M a t l a b Matlab Matlab 中: [ R , P ] = c o r r ( r a n k X , r a n k Y , ′ t y p e ′ , ′ S p e a r m a n ′ ) [R, P] = corr(rank_X, rank_Y, 'type', 'Spearman') [R,P]=corr(rankX,rankY,type,Spearman)

注意

  1. 皮尔逊相关系数条件:连续数据、正态分布、线性关系
    因此,要使用皮尔逊相关系数:
    首先要是连续数据
    然后画散点图初步确定线性关系
    接着还要进行正态分布检验
    最后才能使用。

    当这些条件满足时,也可以使用斯皮尔曼相关系数,但是效率没皮尔逊相关系数高。

  2. 上述条件任意不满足,就用斯皮尔曼相关系数,不能使用皮尔逊相关系数

  3. 两个定序数据也可以使用斯皮尔曼相关系数,不能使用皮尔逊相关系数。

有什么好的建议,烦请告知hhh~~~

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值