• MATLAB实现相关性分析


    目录

    一.基本理论

     二.两类相关系数的对比

    三.相关系数的假设检验

    四.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

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

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

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

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

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

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

    1. %% 正态分布检验
    2. [hx,px] = jbtest(x,0.05);
    3. [hy,py] = jbtest(y,0.05);
    4. disp(H)
    5. 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

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

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

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

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

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

    • 天助自助者,望诸君共勉~
  • 相关阅读:
    物流查询 批量查询物流如何查看快递是否已签收
    在 Ubuntu 环境中安装 Go 语言及运行脚本
    HDFS将普通用户添加到超级用户组
    Vulnhub系列靶机---HarryPotter-Fawkes-哈利波特系列靶机-3
    这本springMVC源代码分析与实战,阿里P9看了都说源代码分析透了
    数字营销卷得再狠,「阿琉克斯之踵」不能忽视
    Gerrit Supported Hooks
    Nginx基于Basic Auth实现静态资源的访问权限控制
    Vue基本知识
    Duplicate entry ‘1559098812383174658‘ for key ‘rc_amt_contributions.PRIMARY‘
  • 原文地址:https://blog.csdn.net/jsl123x/article/details/133183582