MATLAB实现相关性分析-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

一.基本理论

 二.两类相关系数的对比

三.相关系数的假设检验

四.MATLAB的相关操作

五.其他有关的一些列技巧

六.案例展示

七.实战操作


一.基本理论

所谓相关系数本质上是来衡量两组数据的关系大小——对应呈现函数关心的两种变量那么我们可以很清楚他们之间的关系而对于没有强烈关联的变量我们若无法抽象他们之间的函数那么可以用相关性强弱来描述他们之间的关系所在。

如上是有关相关系数的计算方式所谓的皮尔逊相关系数即为我们本科期间学过的那种也就是考研数一数三会涉及的部分~

如下是需要注意的一些列理论知识
 总的来说当变量之间呈现线性关系时才有考虑相关系数大小的意义~

如上是衡量相关性强弱的普遍标准一般认为相关系数大于0.5时呈现较强的相关性~

 二.两类相关系数的对比

通常我们会接触到皮尔逊相关系数斯皮尔曼相关系数两种类型。

如下是关于斯皮尔曼相关系数的理论

 如下是区别方式

三.相关系数的假设检验

这一部分非常理论考数一的同学可以稍微研究研究不过还是以实际操作为重点~ 

 

满足假设检验的条件

第一 实验数据通常假设是成对的来自于正态分布的总体。 因为我们在求皮尔
逊相关性系数以后通常还会用 t 检验之类的方法来进行皮尔逊相关性系数检验
t 检验是基于数据呈正态分布的假设的。
第二 实验数据之间的差距不能太大。 皮尔逊相关性系数受异常值的影响比较
大。
第三每组样本之间是独立抽样的。 构造 t 统计量时需要用到。

四.MATLAB的相关操作

如下是20个初二学生的身高及跳远成绩

身高立定跳远
163208
158210
157210
158210
157210
170198
167180
160187
167180
160187
170198
160167
165190
162175
166200
169179
159217
162175
166200

首先介绍一些基本的统计函数

如下是计算皮尔逊相关系数的代码

x=[163,158,157,158,157,170,167,160,167,160,170,160,165,162,166,169,159,162,166];
y=[208,210,210,210,210,198,180,187,180,187,198,167,190,175,200,179,217,175,200];
R=corrcoef(x,y);

如下代码会返回假设检验要用到的p值

[R,P]=corrcoef(x,y);

 如下是正态分布检验用到的代码

%% 正态分布检验
[hx,px] = jbtest(x,0.05);
[hy,py] = jbtest(y,0.05);
disp(H)
disp(P)

如下是计算斯皮尔曼相关系数的代码通常情况下两种相关系数不一样大

注意x与y必须是列向量

Rs=corr(x',y','type','Spearman');

 斯皮尔曼相关系数假设检验的公式

test=(1-normcdf(Rs*(19-1)^1/2))*2;

test值>0.05即无法拒绝原假设。

如上即为操作的基本功。

五.其他有关的一些列技巧

相关技术等统计学问题用SPSS计算往往更方便如下图

勾选自己想要的选项

 计算结果如下

此外关于热力图的画法MATLAB种用到函数heatmap(R)其中R即为相关系数矩阵。 

此处介绍一种更投机的操作方式——Excel法

具体的方式就是把相关系数矩阵沾进Excel中再将行列大小调成一致——成正方形显示~再根据条件格式设置样式~

六.案例展示

分享在数模和市场调研大赛中用到相关性分析的典例

 21年亚太赛的案例当时第一次纯小白画得属实抽象.........

 22年华数杯有进步

22国赛选拔赛渐入佳境

 

 22年国赛养兵千日用兵一时写得有点问题不重要。。。当时已经交了才发现错误

 

23年正大杯——这种就是前文提到的Excel法属实有点low哈哈哈平时小打小闹无所谓学术论文尽量还是正经画比较好~ 

七.实战操作

来做一个实战很多小伙伴都会关心——考研时名校会不会对本科出身比较有成见呢我们采用23年WHU电子信息专硕的录取情况来做一个统计~

我们计算4组相关系数

  • 初试成绩与本科出身
  • 复试成绩与本科出身
  • 初试成绩与录取情况
  • 出生与录取情况

其中我们对本科出身做出如下正向化——即学校越好得分得分越高

学校类型对应数值
武汉9854
其他区域9853
2112
双非及以下1

是否拟录取使用1和0分别标记

注意实际上处理0-1变量更适合使用Logistic回归不过这里为了说明相关性分析的主要思想就凑合用了...

最后得到如下118条数据

序号初试得分复试得分录取情况
142888.7241
241489.0431
342386.1231
440591.0821
539691.2841
641286.1221
740189.3211
840288.8841
940387.9231
1042680.0841
1142180.611
1240384.6841
1339686.3641
1437791.3241
1541280.811
164018431
173928611
1839484.7241
1938487.1621
2040281.431
2139184.6841
2238486.6821
2338785.2831
2438585.6441
2539283.3231
2640977.1631
2737088.6821
2839381.5221
2940278.7631
3037187.841
3136389.8821
3237187.411
3336389.6441
3435691.6411
3537087.3621
3636189.7241
3739479.7611
3837485.4821
3937784.3611
4036089.421
4138083.3621
4237784.2421
4338880.9231
4436089.3231
4538980.4421
4636487.8841
4736886.0411
4838879.8421
4935689.441
5038181.831
5137483.3631
5237184.241
5338380.611
5436984.7611
5536785.3221
5638679.441
5737781.4831
5835986.8811
5937681.6421
6037183.1241
6137681.3231
6237581.611
6335587.4811
6437581.2431
6536185.3231
6636185.0421
6736982.631
6836583.6421
6935885.5611
7036981.821
7137280.8831
7236483.2411
7336582.6811
7436682.3621
7535984.1221
7637280.1241
7736581.9641
7835983.7211
7935784.211
8036381.7211
8136680.5621
8235583.6411
8335683.3221
8438375.0821
8537378.0411
8637278.3221
8736081.8821
8838574.2840
8935781.9220
9039271.420
9136579.1210
9236179.4820
9337874.210
9438073.2810
9537076.1630
9635979.410
9737175.4440
9835978.3210
9936775.6820
10035778.240
10136176.4810
10236275.610
10339465.5620
10439465.5210
10538767.5610
10637770.1620
10737071.820
10835974.810
10936173.5620
11036273.220
11135873.9610
11235873.8820
11335574.420
11436869.3220
11535571.9630
11635670.8810
11736761.5210
11836063.0810

直接用MATLAB一个corrcoef搞定结果如下

因此得出如下相关系数的结果

  • 初试成绩与本科出身0.2760
  • 复试成绩与本科出身0.2935
  • 初试成绩与录取情况0.2892
  • 出生与录取情况0.2493

综上我们可以得出结论

首先初试成绩与本科出身的相关性较低这现实逻辑相一致——初试成绩仅与过去一年你的投入时间成本呈强烈正相关而与别的面板数据——比如绩点等没有太大的关系

此外复试成绩与本科出身并没有很强的相关性证明该校不歧视本科出身

初试成绩与录取情况虽然成较弱的正相关可能有两个原因——一是模型的严谨性不足另一方面可能是因为初试成绩占比相对较低巧合的是复试强相关......这要不同学校具体分析

最后出身与录取情况呈弱相关说明上岸与否全掌握在自己手里。

  • 天助自助者望诸君共勉~
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6