灰色关联度

利用灰色关联度对 10 个学生进行评价排序。

灰色关联度_第1张图片

灰色关联度分析具体步骤如下:

1.  确定比较对象(评价对象)和参考数列(评价标准)

 这里评价对象的个数为 m = 10 , 评价指标变量有 8 个

比较数列为  a_{i} = \left \{a_{i}(k) | k = 1,2,...,8 \right \} , i= 1,2,..,10  这里 a_{i}(k) 是第 i 个评价对象关于第 k 个指标变量 x_{k}  的取值 。

参考数列为  a_{0} = \left \{a_{0}(k) | k = 1,2,...,8 \right \} , 这里 a_{0}(k) = 100 , k = 1,2,...,8 。参考数列是一个最好评价对象的各指标中值。

2.对指标数据进行无量纲化(归一化处理)

由于系统中各因素的物理意义不同,导致数据的量纲也不一定相同,不便于比较,或在比较时难以得到正确的结论。因此在进行灰色关联度分析时,一般都要进行无量纲化的数据处理。

3.逐个计算每个被评价对象指标序列(比较序列)与参考序列对应元素的绝对差值

 即  |a_{0}(k) - a_{i}(k)|  i = 1,2,...,10    k = 1 ,2 ,...,8

 4.  计算灰色关联系数

 

图片是引用其他地方, x_{0} ,x_{i} 就是 a_{0} ,a_{i} 。

为比较数列 a_{i} 对参考数列 a_{0} 在 第 k 个指标上的关联系数,其中 \rho \in [0,1]  为分辨系数,min_{s}min_{k} |x_0(k) - x_{i}(k) |  ,max_{s}max_{k} |x_{0}(k) -x_{i}(k)|  分别为两级最小极差  , 两级最大极差 。

一般来讲,分辨系数  \rho越大,分辨率越大; \rho越小,分辨率越小。

5.  计算灰色关联度

灰色关联度的计算公式为 

                                            r_{i} = \sum_{k=1}^{8} w_{k}\xi _{i}(k) i = 1 ,2 ,...,10

其中 w_{k} 为第 k 个指标变量 x_{k} 的权重, 这里取等权重 即 1/m = 1/8 。 r_{i} 为第 i 个评价对象对理想对象的灰色关联度。

6.  评价分析

根据灰色关联度的大小,对各评价对象进行排序,可建立评价对象的关联序,关联度越大其评价结果越好 。

clc, clear
 4
a=textread('data101.txt');
t=ones(size(a))*100-a; %计算参考序列与每个序列的差
mmin=min(min(t)); %计算最小差
mmax=max(max(t)); %计算最大差
rho=0.5; %分辨系数
xs=(mmin+rho*mmax)./(t+rho*mmax) %计算灰色关联系数
gd=mean(xs,2) %取等权重,计算关联度
[sgd,ind2]=sort(gd,'descend') %对关联度按照从大到小排序
xlswrite('data103.xls',[xs,gd]) %把关联系数和关联度写到 Excel 文件中,便于做表
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

a = pd.read_excel("data1.xlsx").values[:,1:]
# print(a,type(a))
m,n = a.shape
t = np.ones((m,n))*100 - a # 计算差值
print(t)
mmin = min(np.min(t,axis=0)) #计算最小差
mmax = max(np.max(t,axis=0)) #计算最大差
print(mmin ,mmax)
rho = 0.5  # 分辨系数
xs = (mmin + rho*mmax) /(t+rho*mmax)
print(xs)
gd = np.mean(xs,axis=1)
print("gd")
gd.resize((gd.shape[0],1))
# print(gd.shape)
# print(xs.shape)

result = np.hstack((xs,gd))
print(gd)
# 从 0 开始的
print(gd.argsort(axis=0)) # 从小到大
df = pd.DataFrame(result)

df.to_excel('result.xlsx',sheet_name='表1')
print("写入完成")

 

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