数学建模常用模型13 :相关性分析

数学建模常用模型13 :相关性分析相关分析研究的是两个变量的相关性 但你研究的两个变量必须是有关联的 如果你把历年人口总量和你历年的身高做相关性分析 分析结果会呈现显著地相关 但它没有实际的意义 因为人口总量和你的身高都是逐步增加的 从数据上来说是有一致性 但他们没有现实意义 相关性分析和聚类分析一样 比较简单 数学建模中经常用 但是每次都只用一小步 或者只是对数据进行一下分析 根据分析的结果确定使用的方法 所以这些方法不要掌

给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM,XGBoost等)

PS:巨方便简单上手,貌似现在是免费

官网:www.mpaidata.com   mpai数据科学平台

 

 

相关分析研究的是两个变量的相关性,但你研究的两个变量必须是有关联的,如果你把历年人口总量和你历年的身高做相关性分析,分析结果会呈现显著地相关,但它没有实际的意义,因为人口总量和你的身高都是逐步增加的,从数据上来说是有一致性,但他们没有现实意义。

相关性分析和聚类分析一样,比较简单,数学建模中经常用,但是每次都只用一小步,或者只是对数据进行一下分析,根据分析的结果确定使用的方法,所以这些方法不要掌握的特别深,能会用SPSS实现就行。相关性分析可以是简单的理解为各个变量之间的相关程度。

相关性分析的SPSS操作不在演示,比较简单,大家可以参考下面链接操作一下。

https://jingyan.baidu.com/article/22a299b5f4d17e9e18376a60.html

一般这样认为:

0.8-1.0 极强相关

0.6-0.8 强相关

0.4-0.6 中等程度相关

0.2-0.4 弱相关

0.0-0.2 极弱相关或无相关

 

Sperman或kendall等级相关分析

Person相关(样本点的个数比较多)//一般常用皮尔逊相关

Copula相关(比较难,金融数学,概率密度)

典型相关分析(因变量组Y1234,自变量组X1234,各自变量组相关性比较强,问哪一个因变量与哪一个自变量关系比较紧密?)

 

下面是一个典型相关性分析的MATLAB的程序,想看的可以看一下

例 满意度典型相关分析

某调查公司从一个大型零售公司随机调查了 784 人,测量了 5 个职业特性指标和 7个职业满意变量,有关的变量见表 1讨论两组指标之间是否相联系。

表1 指标变量表

X组

X1—用户反馈,X2—任务重要性,X3—任务多样性,X4—任务特殊性

X5—自主性

Y组

Y1—主管满意度,Y2—事业前景满意度,Y3—财政满意度,Y4—工作强度满意度,Y5—公司地位满意度, Y6—工作满意度,Y7—总体满意度

相关系数矩阵数据见表 2

表2 相关系数矩阵数据

 

X1

X2

X3

X4

X5

Y1

Y2

Y3

Y4

Y5

Y6

Y7

X1

1.00

0.49

0.53

0.49

0.51

0.33

0.32

0.20

0.19

0.30

0.37

0.21

X2

0.49

1.00

0.57

0.46

0.53

0.30

0.21

0.16

0.08

0.27

0.35

0.20

X3

0.53

0.57

1.00

0.48

0.57

0.31

0.23

0.14

0.07

0.24

0.37

0.18

X4

0.49

0.46

0.48

1.00

0.57

0.24

0.22

0.12

0.19

0.21

0.29

0.16

X5

0.51

0.53

0.57

0.57

1.00

0.38

0.32

0.17

0.23

0.32

0.36

0.27

Y1

0.33

0.30

0.31

0.24

0.38

1.00

0.43

0.27

0.24

0.34

0.37

0.40

Y2

0.32

0.21

0.23

0.22

0.32

0.43

1.00

0.33

0.26

0.54

0.32

0.58

Y3

0.20

0.16

0.14

0.12

0.17

0.27

0.33

1.00

0.25

0.46

0.29

0.45

Y4

0.19

0.08

0.07

0.19

0.23

0.24

0.26

0.25

1.00

0.28

0.30

0.27

Y5

0.30

0.27

0.24

0.21

0.32

0.34

0.54

0.46

0.28

1.00

0.35

0.59

Y6

0.37

0.35

0.37

0.29

0.36

0.37

0.32

0.29

0.30

0.35

1.00

0.31

Y7

0.21

0.20

0.18

0.16

0.27

0.40

0.58

0.45

0.27

0.59

0.31

1.00

 

一些计算结果的数据见下面的表格。

表3 的典型变量

 

u1

u2

u3

u4

u5

X1

0.

-0.34285

0.

-0.78841

0.030843

X2

0.

0.

-0.44343

-0.26913

0.

X3

0.

0.

0.

0.

-0.91414

X4

-0.02289

-0.35607

0.

1.042324

0.

X5

0.

-0.72872

-0.97991

-0.16817

-0.43924

表 4原始变量与本组典型变量之间的相关系数

 

u1

u2

u3

u4

u5

X1

0.

-0.10934

0.48534

-0.24687

0.061056

X2

0.

0.

-0.20014

0.002084

0.

X3

0.

0.

0.

0.

-0.33603

X4

0.

-0.22251

0.

0.

0.

X5

0.

-0.26604

-0.38859

0.

-0.12457

 

 

V1

V2

V3

V4

V5

Y1

0.

0.044607

0.

0.

-0.33702

Y2

0.

0.

-0.17172

0.

-0.33353

Y3

0.

0.037277

-0.17673

0.53477

0.

Y4

0.

0.

-0.00536

-0.28865

0.

Y5

0.

0.

0.

0.

0.

Y6

0.

-0.2416

-0.23477

-0.40522

0.

Y7

0.

0.

0.4933

0.

0.067761

表 5原始变量与对应组典型变量之间的相关系数

 

V1

V2

V3

V4

V5

X1

0.

0.025848

-0.05785

0.017831

0.003497

X2

0.

-0.10321

0.023854

-0.00015

0.027816

X3

0.

-0.11019

-0.01258

-0.02181

-0.01924

X4

0.

0.052602

-0.02446

-0.04777

0.01733

X5

0.

0.062893

0.046315

-0.01072

-0.00713

 

 

u1

u2

u3

u4

u5

Y1

0.41883

-0.01055

-0.04046

-0.00934

-0.0193

Y2

0.

-0.08467

0.020466

-0.0255

-0.0191

Y3

0.

-0.00881

0.021064

-0.03863

0.023758

Y4

0.

-0.18722

0.000639

0.020849

0.019133

Y5

0.3617

-0.02562

-0.02493

-0.03161

0.02489

Y6

0.

0.057116

0.027981

0.029268

0.011249

Y7

0.

-0.0385

-0.05879

-0.01365

0.003881

表6 典型相关系数

1

2

3

4

5

0.5537

0.2364

0.1192

0.0722

0.0573

 

MATLAB源代码:

clc,clear load r.txt %原始的相关系数矩阵保存在纯文本文件r.txt中 n1=5;n2=7;num=min(n1,n2); s1=r(1:n1,1:n1); %提出X与X的相关系数 s12=r(1:n1,n1+1:end); %提出X与Y的相关系数 s21=s12'; %提出Y与X的相关系数 s2=r(n1+1:end,n1+1:end); %提出Y与Y的相关系数 m1=inv(s1)*s12*inv(s2)*s21; %计算矩阵M1 m2=inv(s2)*s21*inv(s1)*s12; %计算矩阵M2 [vec1,val1]=eig(m1); %求M1的特征向量和特征值 for i=1:n1 vec1(:,i)=vec1(:,i)/sqrt(vec1(:,i)'*s1*vec1(:,i)); %特征向量归一化,满足a's1a=1 vec1(:,i)=vec1(:,i)/sign(sum(vec1(:,i))); %特征向量乘以1或-1,保证所有分量和为正 end val1=sqrt(diag(val1)); %计算特征值的平方根 [val1,ind1]=sort(val1,'descend'); %按照从大到小排列 a=vec1(:,ind1(1:num)) %取出X组的系数阵 dcoef1=val1(1:num) %提出典型相关系数 [vec2,val2]=eig(m2); for i=1:n2 vec2(:,i)=vec2(:,i)/sqrt(vec2(:,i)'*s2*vec2(:,i)); %特征向量归一化,满足b's2b=1 vec2(:,i)=vec2(:,i)/sign(sum(vec2(:,i))); %特征向量乘以1或-1,保证所有分量和为正 end val2=sqrt(diag(val2)); %计算特征值的平方根 [val2,ind2]=sort(val2,'descend'); %按照从大到小排列 b=vec2(:,ind2(1:num)) %取出Y组的系数阵 dcoef2=val2(1:num) %提出典型相关系数 x_u_r=s1*a %x,u的相关系数 y_v_r=s2*b %y,v的相关系数 x_v_r=s12*b %x,v的相关系数 y_u_r=s21*a %y,u的相关系数 mu=sum(x_u_r.^2)/n1 %x组原始变量被u_i解释的方差比例 mv=sum(x_v_r.^2)/n1 %x组原始变量被v_i解释的方差比例 nu=sum(y_u_r.^2)/n2 %y组原始变量被u_i解释的方差比例 nv=sum(y_v_r.^2)/n2 %y组原始变量被v_i解释的方差比例 fprintf('X组的原始变量被u1~u%d解释的比例为%f\n',num,sum(mu)); fprintf('Y组的原始变量被v1~v%d解释的比例为%f\n',num,sum(nv)); 

可以看出,所有五个表示职业特性的变量与有大致相同的相关系数,视为形容职业特性的指标。第一对典型变量的第二个成员V1与Y1,Y2,Y5,Y6有较大的相关系数,说明V1主要代表了主管满意度,事业前景满意度,公司地位满意度和工种满意度。而U1和V1之间的相关系数0.5537。

u1和v1解释的本组原始变量的比率:

{m_{​{u_1}}} = 0.5818 ,{n_{​{v_1}}} = 0.3721

X组的原始变量被到解释了100%, Y 组的原始变量被到解释了80.3%。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229902.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:36
下一篇 2026年3月16日 下午3:36


相关推荐

  • 扩展kmp求最长回文子串_算法-字符串之最长回文子串

    扩展kmp求最长回文子串_算法-字符串之最长回文子串上一篇KMP算法之后好几天都没有更新,今天介绍最长回文子串。首先介绍一下什么叫回文串,就是正着读和倒着读的字符顺序都是一样的,eg:level,noon。而回文子串,顾名思义,就是主串中满足回文性质的子串。求解的常规思想,就是先求出主串的所有子串,在判断是否是回文串,然后选出最长的,这一种方法的时候复杂度较高,是O(n^3),所以一般不采用这种方法,下面介绍两种方法求解。1.中心扩展法中心扩展法…

    2022年5月6日
    38
  • C++ 句柄类

    C++ 句柄类C 中的访问控制允许类的实现和类的接口分开 使得客户程序不能轻易访问私有实现部分 但是实现部分的隐藏不彻底 可能导致一些问题 1 头文件的成员声明可能暴露信息 可能会有恶意访问 恶意篡改 存在安全隐患 2 在设计初期 实现部分经常需要改动 就连头文件类的私有成员声明也时不时需要修改 这意味着程序员不论何时修改了一个类 都将重新编译包含了该头文件的所有文件 可能还要修改接口 增加不必要的编译

    2026年3月19日
    1
  • C++ 调用Matlab画图「建议收藏」

    C++ 调用Matlab画图「建议收藏」劳动节闲来无事,写了一天程序,justforfun.看,这是C++调用Matlab画图的一段程序。暂时不想多解释了,有兴趣的话,看看下面的代码吧。#include#include#include#include#include#includeusingnamespace

    2026年1月29日
    5
  • Windows电脑安装openclaw教程-避坑版

    Windows电脑安装openclaw教程-避坑版

    2026年3月13日
    2
  • pycharm2021 6月激活码【在线破解激活】

    pycharm2021 6月激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    76
  • Redis分布式锁的三种实现方式_分布式锁解决方案

    Redis分布式锁的三种实现方式_分布式锁解决方案总结写在前面:RLockrLock=redissonClient.getLock(“lbhTestLock”);使用tryLock无参方法时,redisson会自动添加一个定时任务,定时刷新锁的失效时间,如果unlock时失败,则会出现该锁一直不释放的情况。而当tryLock传释放时间时,则不会添加这个定时任务。测试如下:1、tryLock无参数@Testp…

    2022年10月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号