温州免费建站模板wordpress科技主题
一、相关性模型简介
相关性模型并不是指一个具体的模型,而是一类模型,这一类模型用来判断变量之间是否具有相关性。一般来说,分析两个变量之间是否具有相关性,我们根据数据服从的分布和数据所具有的特点选择使用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)
直接查临界值表即可
|   
  |   单尾检验的显著水平  | |||
|   .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等级相关系数。
