MATLAB实现相关性分析

2024-04-09 1157阅读

目录

一.基本理论

 二.两类相关系数的对比

三.相关系数的假设检验

四.MATLAB的相关操作

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

六.案例展示

七.实战操作


一.基本理论

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

MATLAB实现相关性分析

MATLAB实现相关性分析

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

MATLAB实现相关性分析

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

MATLAB实现相关性分析

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

 二.两类相关系数的对比

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

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

MATLAB实现相关性分析

MATLAB实现相关性分析 如下是区别方式:

MATLAB实现相关性分析

三.相关系数的假设检验

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

MATLAB实现相关性分析

MATLAB实现相关性分析

MATLAB实现相关性分析

MATLAB实现相关性分析 MATLAB实现相关性分析

满足假设检验的条件:

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

四.MATLAB的相关操作

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

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

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

MATLAB实现相关性分析

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

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实现相关性分析

勾选自己想要的选项:

MATLAB实现相关性分析

 计算结果如下:

MATLAB实现相关性分析

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

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

MATLAB实现相关性分析

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

MATLAB实现相关性分析

六.案例展示

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

MATLAB实现相关性分析

MATLAB实现相关性分析 21年亚太赛的案例,当时第一次纯小白,画得属实抽象.........

MATLAB实现相关性分析 22年华数杯,有进步

MATLAB实现相关性分析

22国赛选拔赛,渐入佳境

MATLAB实现相关性分析 MATLAB实现相关性分析

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

 MATLAB实现相关性分析

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搞定,结果如下:

    MATLAB实现相关性分析

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

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

      综上,我们可以得出结论:

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

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

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

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

      • 天助自助者,望诸君共勉~
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]