数学建模常用模型04 :灰色关联分析法

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

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

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

 

 

与灰色预测模型一样,比赛不能优先使用,灰色关联往往可以与层次分析结合使用。层次分析用在确定权重上面

【1】确定比较对象(评价对象)(就是数据,并且需要进行规范化处理,就是标准化处理,见下面例题的表格数据)和参考数列(评价标准,一般该列数列都是1,就是最优的的情况)

【2】确定各个指标权重,可用层次分析确定

【3】计算灰色关联系数

 

这是一个比较复杂的公式,给出的代码可以直接运行出来,可以先不管这个公式。

【4】计算灰色加权关联度,计算公式为:

 

其中Ri就是第i个指标对理想对象(参考数列,一般该数列都是1,就是最有情况)的加权关联度。就可以认为是评价的结果。

【5】评价分析。

例 1 通过对某健将级女子铅球运动员的跟踪调查,获得其 1982 年至 1986 年每年最好成绩及 16 项专项素质和身体素质的时间序列资料,见下表,试对此铅球运动员的专项成绩进行因素分析。

表 各项成绩数据

 

1982

1983

1984

1985

1986

铅球专项成绩

13.6

14.01

14.54

15.64

15.69

4kg 前抛     

11.50

13.00

15.15

15.30

15.02

4kg 后抛     

13.76

16.36

16.90

16.56

17.30

4kg 原地     

12.41

12.70

13.96

14.04

13.46

立定跳远    

2.48

2.49

2.56

2.64

2.59

高    翻     

85

85

90

100

105

抓    举    

55

65

75

80

80

卧    推    

65

70

75

85

90

3kg 前抛    

12.80

15.30

16.24

16.40

17.05

3kg 后抛    

15.30

18.40

18.75

17.95

19.30

3kg 原地    

12.71

14.50

14.66

15.88

15.70

3kg 滑步    

14.78

15.54

16.03

16.87

17.82

立定三级跳  

7.64

7.56

7.76

7.54

7.70

全     蹲   

120

125

130

140

140

挺      举  

80

85

90

90

95

30 米起跑   

4″2

4″25

4″1

4″06

3″99

100 米      

13″1

13″42

12″85

12″72

12″56

clc,clear
load x.txt %把原始数据存放在纯文本文件 x.txt 中,其中把数据的"替换替换成.
for i=1:15
    x(i,:)=x(i,:)/x(i,1); %标准化数据
end
for i=16:17
    x(i,:)=x(i,1)./x(i,:); %标准化数据
end
——————————————————————————————————
上面是数据标准化处理,当然这是司老师书中的标准化处理的代码, 
——————————————————————————————————
data=x;
n=size(data,2); %求矩阵的列数,即观测时刻的个数
ck=data(1,:); %提出参考数列
bj=data(2:end,:); %提出比较数列
m2=size(bj,1); %求比较数列的个数
for j=1:m2
    t(j,:)=bj(j,:)-ck;
end
mn=min(min(abs(t'))); %求最小差
mx=max(max(abs(t'))); %求最大差
rho=0.5; %分辨系数设置
ksi=(mn+rho*mx)./(abs(t)+rho*mx); %求关联系数
r=sum(ksi')/n %求关联度
[rs,rind]=sort(r,'descend') %对关联度进行排序

运行结果的r为各指标和成绩的关联度,rind即为各指标和成绩的关联度大小排序的结果。在使用本程序的时候,只需要把数据换成自己自己的数据,以及把循环次数改一下即可。

你可能感兴趣的:(数学建模,算法)