一、相关性模型简介
相关性模型并不是指一个具体的模型,而是一类模型,这一类模型用来判断变量之间是否具有相关性。一般来说,分析两个变量之间是否具有相关性,我们根据数据服从的分布和数据所具有的特点选择使用pearson(皮尔逊)相关系数和spearman(斯皮尔曼)等级相关系数;分析两组变量,每组变量都有多个指标的时候,无论是pearson相关系数还是spearman等级相关系数都无能为力,所以又要介绍一个新的典型相关分析来解决这个问题。
二、适用赛题
显而易见,这些相关性模型适用于探究变量之间的关系,帮助了解它们是否存在相关性,以及相关性的强度和方向。
三、模型流程
四、流程分析
因为整个流程包含三个模型,所以会以pearson相关系数,spearman等级相关系数,典型相关分析的顺序来讲解。
注:本篇存在大量的概率论与数理统计的知识,这里并不对其中出现的知识、定理等作概念说明和详细证明
1.pearson相关系数
可以从流程图看到,应用pearson相关系数条件还是比较苛刻的。首先得是两个变量之间,其次这两个变量的数据还要服从正态分布。其实应用pearson相关系数的条件还不止,后面会全部介绍。
①正态分布检验
为什么要正态分布检验?
- 第一,实验数据通常假设是成对的来自于正态分布的总体。因为我们在求pearson相关系数以后,通常还会用t检验之类的方法来进行皮尔逊相关系数检验,而t检验是基于数据呈正态分布的假设的
- 第二,实验数据之间的差距不能太大。皮尔逊相关性系数受异常值的影响比较大
- 第三,每组样本之间是独立抽样的。构造t统计量时需要用到
Ⅰ正态分布JB检验(大样本 n > 30)
雅克-贝拉检验(Jarque-Bera test)
这是原理,但是在MATLAB中,代码很简单
注:有些地方正态分布峰度为0,MATLAB中是3
skewness(x) % 偏度
kurtosis(x) % 峰度
可以用这两句查询数据的偏度和峰度
MATLAB中进行JB检验的语法:
[h, p] = jbtest(x, alpha);
当输出h等于1时,表示拒绝原假设;h等于0则代表不能拒绝原假设。alpha就是显著性水平,一般取0.05, 此时置信水平为1 – 0.05 = 0.95。x就是我们要检验的随机变量,注意这里的x只能是向量。
ⅡShapiro-wilk检验(小样本 3 ≤ n ≤ 50)
Shapiro-wilk 夏皮洛-威尔克检验
此操作一般在SPSS软件上进行。
②计算相关系数
pearson相关系数的原理在概率论课本上有,无论是总体还是样本。这里给出MATLAB中如何求
R = corrcoef(A) % 返回A的相关系数的矩阵,其中A的列表示随机变量(指标),行表示观测值(样本)
R = corrcoef(A, B) % 返回两个随机变量A和B (两个向量) 之间的系数
关于pearson相关系数的总结
- 如果两个变量本身就是线性的关系,那么pearson相关系数绝对值大的就是相关性强,小的就是相关性弱
- 在不确定两个变量是什么关系的情况下,即使算出pearson相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说它们相关,我们一定要画出散点图来看才行
③假设检验
事实上,比起相关系数的大小,我们往往更关注的是显著性(假设检验)
原理这里不再给出,证明过于复杂。
这里用更好的方法:p值判断法
一行代码得到p值
[R, P] = corrcoef(test);
R返回的是相关系数表,P返回的是对应于每个相关系数的p值
注:拒绝原假设意味着pearson相关系数显著的异于0
2.spearman等级相关系数
pearson相关系数不能用,就使用spearman等级相关系数。鉴于pearson相关系数中已经介绍过正态分布检验,这里不在重复。
①计算相关系数
注:如果有的数值相同,则将它们所在的位置取算术平均。
举个例子:
在MATLAB中,代码也是很简单
coeff = corr(X, Y, 'type', 'Spearman'); % 这里的X和Y必须是列向量
coeff = corr(x, 'type', 'Spearman'); % 这时计算X矩阵各列之间的spearman相关系数
②假设检验
Ⅰ小样本情况(n ≤ 30)
直接查临界值表即可
n |
单尾检验的显著水平 |
|||
.05 |
.025 |
.01 |
.005 |
|
双尾检验的显著水平 |
||||
.10 |
.05 |
.02 |
.01 |
|
4 |
1.000 |
|||
5 |
0.900 |
1.000 |
1.000 |
|
6 |
0.829 |
0.886 |
0.943 |
1.000 |
7 |
0.714 |
0.786 |
0.893 |
0.929 |
8 |
0.643 |
0.738 |
0.833 |
0.881 |
9 |
0.600 |
0.700 |
0.783 |
0.833 |
10 |
0.564 |
0.648 |
0.745 |
0.794 |
11 |
0.536 |
0.618 |
0.709 |
0.755 |
12 |
0.503 |
0.587 |
0.671 |
0.727 |
13 |
0.484 |
0.560 |
0.648 |
0.703 |
14 |
0.464 |
0.538 |
0.622 |
0.675 |
15 |
0.443 |
0.521 |
0.604 |
0.654 |
16 |
0.429 |
0.503 |
0.582 |
0.635 |
17 |
0.414 |
0.485 |
0.566 |
0.615 |
18 |
0.401 |
0.472 |
0.550 |
0.600 |
19 |
0.391 |
0.460 |
0.535 |
0.584 |
20 |
0.380 |
0.447 |
0.520 |
0.570 |
21 |
0.370 |
0.435 |
0.508 |
0.556 |
22 |
0.361 |
0.425 |
0.496 |
0.544 |
23 |
0.353 |
0.415 |
0.486 |
0.532 |
24 |
0.344 |
0.406 |
0.476 |
0.521 |
25 |
0.337 |
0.398 |
0.466 |
0.511 |
26 |
0.331 |
0.390 |
0.457 |
0.501 |
27 |
0.324 |
0.382 |
0.448 |
0.491 |
28 |
0.317 |
0.375 |
0.440 |
0.483 |
29 |
0.312 |
0.368 |
0.433 |
0.475 |
30 |
0.306 |
0.362 |
0.425 |
0.467 |
35 |
0.283 |
0.335 |
0.394 |
0.433 |
40 |
0.264 |
0.313 |
0.368 |
0.405 |
45 |
0.248 |
0.294 |
0.347 |
0.382 |
50 |
0.235 |
0.279 |
0.329 |
0.363 |
60 |
0.214 |
0.255 |
0.300 |
0.331 |
70 |
0.190 |
0.235 |
0.278 |
0.307 |
80 |
0.185 |
0.220 |
0.260 |
0.287 |
90 |
0.174 |
0.207 |
0.245 |
0.271 |
100 |
0.165 |
0.197 |
0.233 |
0.257 |
注:样本相关系数r必须大于等于表中的临界值,才能得出显著的结论。
Ⅱ大样本情况
依旧是选择更好用的p值检验法
[R, P] = corr(test, 'type', 'Spearman'); % 直接给出相关系数和p值
这里和p值和pearson相关系数假设检验那里的p值解释相同。
3.pearson相关系数和spearman等级相关系数选择
- 连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman等级相关系数也可以,就是效率没有pearson相关系数高
- 上述任一条件不满足,就用spearman等级相关系数,不能用pearson相关系数
- 两个定序数据之间也用spearman等级相关系数,不能用pearson相关系数
定序数据是指仅仅反映观测对象等级、顺序关系的数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据。
例如:优、良、差;我们可以用1表示差、2表示良、3表示优,但请注意,用2除以1得出的2并不代表任何含义。定序数据最重要的意义代表了- -组数据中的某种逻辑顺序。
注:斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。
4.典型相关分析
声明:对于典型相关分析,其中原理、证明过于复杂,本篇不作涉及,只介绍得出结果的流程。
基本思想
典型相关分析由Hotelling提出,其基本思想和主成分分析非常相似。首先在每组变量中找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数。然后选取和最初挑选的这对线性组合不相关的线性组合,使其配对,并选取相关系数最大的一对,如此继续下去,直到两组变量之间的相关性被提取完毕为此。被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数。典型相关系数度量了这两组变量之间联系的强度。
①矩阵标准化变换
矩阵的标准化变换属于线性代数的知识,这里介绍为什么要对矩阵进行标准化变化的操作
- 典型相关分析涉及多个变量,不同的变量往往具有不同的量纲及不同的数量级别。在进行典型相关分析时,由于典型变量是原始变量的线性组合,具有不同量纲变量的线性组合显然失去了实际意义
- 其次,不同的数量级别会导致“以大吃小”,即数量级别小的变量的影响会被忽略,从而影响了分析结果的合理性
- 因此,为了消除量纲和数量级别的影响,必须对数据先做标准化变换处理,然后再做典型相关分析
②求解
再看过第一步之后肯定是一头雾水,矩阵是哪里来的?这里对典型相关分析中的变量做一些介绍
规定有
第一步的矩阵标准化就是对这四个矩阵进行操作
这里以一组数据为例子
康复俱乐部对20名中年人测量了三个生理指标:体重(x1),腰围(x2),脉搏(x3);三个训练指标:引体向上次数(y1),起坐次数(y2),跳跃次数(y3)。分析生理指标与训练指标的相关性。
根据数据可得
在标准化之后,矩阵用R表示
设置A和B
这里A和B的特征值是相同的
则可得
每一个a和b都是对应的特征向量,在这里也就是典型相关系数
第二对和第三对也是如此。
③假设检验
对于每一对典型变量进行计算
④典型载荷分析
进行典型载荷分析有助于更好解释分析已提取的p对典型变量。所谓的典型载荷分析是指原始变量与典型变量之间相关性分析。
⑤典型冗余分析
5.补充
可以看见,典型相关分析过于复杂,不过可以利用SPSS软件完成对数据相关性的分析,包括pearson相关系数和spearman等级相关系数。
版权声明:本文为博主作者:还有糕手原创文章,版权归属原作者,如果侵权,请联系我们删除!