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

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

相关性分析和聚类分析一样,比较简单,数学建模中经常用,但是每次都只用一小步,或者只是对数据进行一下分析,根据分析的结果确定使用的方法,所以这些方法不要掌握的特别深,能会用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.421704

-0.34285

0.857665

-0.78841

0.030843

X2

0.195106

0.668299

-0.44343

-0.26913

0.983229

X3

0.167613

0.853156

0.259213

0.468757

-0.91414

X4

-0.02289

-0.35607

0.423106

1.042324

0.524367

X5

0.459656

-0.72872

-0.97991

-0.16817

-0.43924

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

 

u1

u2

u3

u4

u5

X1

0.829349

-0.10934

0.48534

-0.24687

0.061056

X2

0.730368

0.436584

-0.20014

0.002084

0.485692

X3

0.753343

0.466088

0.105568

0.301958

-0.33603

X4

0.615952

-0.22251

0.205263

0.661353

0.302609

X5

0.860623

-0.26604

-0.38859

0.148424

-0.12457

 

 

V1

V2

V3

V4

V5

Y1

0.756411

0.044607

0.339474

0.129367

-0.33702

Y2

0.643884

0.358163

-0.17172

0.352983

-0.33353

Y3

0.387242

0.037277

-0.17673

0.53477

0.414847

Y4

0.377162

0.791935

-0.00536

-0.28865

0.334077

Y5

0.653234

0.108391

0.209182

0.437648

0.434613

Y6

0.803986

-0.2416

-0.23477

-0.40522

0.196419

Y7

0.502422

0.162848

0.4933

0.188958

0.067761

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

 

V1

V2

V3

V4

V5

X1

0.459216

0.025848

-0.05785

0.017831

0.003497

X2

0.404409

-0.10321

0.023854

-0.00015

0.027816

X3

0.417131

-0.11019

-0.01258

-0.02181

-0.01924

X4

0.341056

0.052602

-0.02446

-0.04777

0.01733

X5

0.476532

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

-0.08467

0.020466

-0.0255

-0.0191

Y3

0.214418

-0.00881

0.021064

-0.03863

0.023758

Y4

0.208837

-0.18722

0.000639

0.020849

0.019133

Y5

0.3617

-0.02562

-0.02493

-0.03161

0.02489

Y6

0.445172

0.057116

0.027981

0.029268

0.011249

Y7

0.278194

-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%。

猜你喜欢

转载自blog.csdn.net/qq_41686130/article/details/81867882