数学建模中,相关性分析往往是建模的前提。但是,相关系数是数学建模中最容易出错滥用的点,需要注意不同相关系数的使用条件。
一.Pearson相关系数及其假设性检验
1.1 Pearson相关系数的定义及计算
(1)总体的Pearson相关系数
(2)样本的Pearson相关系数
(3)Pearson相关系数的误区:
- 理解误区1——散点图和皮尔逊相关系数的联系(垂直x轴或者垂直y轴时,Person相关系数计算为零)<—— Person相关系数只是用来衡量线性相关程度的指标,只有确定了两个变量是线性相关的,这个相关系数才能用来衡量相关程度
- 易错点1——非线性相关也会导致线性相关系数很大—>Person相关系数高不能证明具有线性相关性
- 易错点2——离群点对相关系数的影响很大->用Person相关系数进行分析时,考虑去除异常值
- 易错点3——如果两个变量的相关系数高也不能说明两者相关->Person相关系数高不能证明线性函数具有很大相关性,也有可能是受到异常值影响
- 易错点4——Person相关系数计算结果为零,不能认为没有相关性,也许有比线性相关更复杂的相关性
总而言之,Pearson相关系数能够有力使用的前提是
- 该相关系数只能识别简单的线性相关关系,无法处理非线性相关关系;
- 对异常值(或离群点)和样本容量较为敏感;
- 要求研究的变量是数值变量,且变量符合或较为接近正态分布。
- 每组样本之间是独立抽样的(需要加在论文假设前提里)
相关系数的大小能够说明两者的相关程度,但我们往往更关注相关系数的显著性。
1.2 Pearson相关系数的假设性检验
(1)假设检验的步骤
- 确定原假设:相关系数为0(即两个变量不相关)和备择假设:相关系数不为0(即两个变量可能相关)
- 在原假设成立的条件下,构造一个统计量,该统计量有一个分布
- 画出概率密度函数图
- 给一个置信水平β,求出接受域
- 用已知的样本数据代入计算统计量,得到检测值,若检测值落在接受域内,则无法拒绝原假设,否则拒绝原假设
(2)pearson相关系数的假设性检验
对pearson相关系数而言,我们构造统计量,是服从自由度为的分布
查表:t分布表T分布表 - 百度文库
但我们一般不用查表法,而用p值判断法:利用检测值t,计算出对应的概率
单边检验
双边检验
用计算出的概率值p与0.01,0.05,0.10比较:
显著性越小,在更大的概率上,两者可能存在相关关系。即***越多,显著性越强,这个相关系数的置信程度越大。
1.3 正态分布的假设检验
(1)JB检验(Jarque-Bera test)
条件:
大样本 n>30
matlab实现:
[h,p]=jbtest(x,alpha)% x是向量,alpha是显著性水平
jb检验只能一组一组进行检验
h=1时拒绝原假设,即不满足正态分布
h=0时接受原假设,即满足正态分布
(2)Shapiro-wilk检验
条件:
小样本 3<=n<=50
SPSS实现:
分析->描述统计->探索->图,含检验的数据图
(3)QQ图
条件:
数据量非常大
matlab实现:
qqplot(Test(:,1))
只能一列一列进行检验
1.4 matlab及spss实现
(1)描述性分析
1.matlab
例如,min(Test)计算每一列的最小值。注意,基本统计量的自变量可以是矩阵。
2.SPSS
分析->描述统计->描述
(2)矩阵的散点图
散点图可以初步确定变量是否有线性相关性,我们需要画出个变量的散点图。
用SPSS比较方便:
图形->旧对话框->散点图/点图->矩阵散点图
(3)Pearson相关系数的计算
matlab实现
R = corrcoef(Test)
Test可以是个矩阵
R = corrcoe(A,B)
A,B在这里必须是两个向量
(4)Pearson相关系数假设性检验的t统计量的计算
matlab实现
[R,P]=corrcoef(Test)
也就是说corr()可以同时给出相关系数和p值
画出t分布的图
x=-4:0.1:4
y=tpdf(x,28)
plot(x,y,'-')
grid on % 加上网格线
(5)美化相关系数表,美化p值表
1.相关系数表
a.EXCEL行列调成适合的大小,字号,对齐方式文章来源:https://www.toymoban.com/news/detail-774251.html
b.选中相关系数表,开始-条件格式-色阶
c.选中相关系数表,条件格式-管理规则-编辑规则
2.显著性表
a.EXCEL行列调成适合的大小,字号,对齐方式
b.matlab筛选出矩阵,excel手动给表格加*文章来源地址https://www.toymoban.com/news/detail-774251.html
matlab命令
P<0.01
(P<0.05).*(P>0.01)
(P<0.1).*(P>0.05)
二.Spearman等级相关系数及其假设检验
2.1 Spearman相关系数的定义及计算
也可以定义成等价之间的pearson相关系数。
2.2 Spearman相关系数的假设性检验
(1)小样本
直接查临界值表(即系数本身就服从某种分布)
(2)大样本
2.3 matlab及spss实现
(1)描述性分析
1.matlab
例如,min(Test)计算每一列的最小值。注意,基本统计量的自变量可以是矩阵。
2.SPSS
分析->描述统计->描述
(2)SPearsman相关系数的计算
matlab实现:
定义一
corr(X,Y,'type','Spearman')I
X,Y必须是列向量
corr(X,'type','Spearman')
计算X矩阵之间的spearman相关系数
定义二
RX=[2 5 3 4 1]
RY=[1 4.5 3 4.5 2]
R = corrcoef[RX,RY]
(3)计算Spearman相关系数的p值
matlab实现
[R,P]=corr(Test,'type','Spearman')
也就是说corr()可以同时给出相关系数和p值
(4)美化相关系数表,美化p值表
1.相关系数表
a.EXCEL行列调成适合的大小,字号,对齐方式
b.选中相关系数表,开始-条件格式-色阶
c.选中相关系数表,条件格式-管理规则-编辑规则
2.显著性表
a.EXCEL行列调成适合的大小,字号,对齐方式
b.matlab筛选出矩阵,excel手动给表格加*
P<0.01
(P<0.05).*(P>0.01)
(P<0.1).*(P>0.05)
三.总结
- 连续数据,正态分布,线性关系,用pearson相关系数是最恰当的
- 上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数
- 两个定序数据也用spearman相关系数,不能用pearson相关系数
- 90%都用spearman相关系数
到了这里,关于相关系数及其假设检验——matlab及spss实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!