一.模糊综合评价法
适用范围
模糊综合评价法能够有效解决评价指标模糊、难以量化的问题。这种方法通过模糊数学的隶属度理论,将定性评价转化为定量评价,从而对受多因素影响的事物或对象作出总体评价。
解题步骤
- 确定因素集
- 确定评语集
- 确定各因素权重
- 构造模糊综合评判矩阵
- 进行模糊运算,做出决策
例题
某露天煤矿有五个设计方案,其各项参数如下
项目 | 方案1 | 方案2 | 方案3 | 方案4 | 方案5 |
---|---|---|---|---|---|
可采矿量 | 4700 | 6700 | 5900 | 8800 | 7600 |
基建投资 | 5000 | 5500 | 5300 | 6800 | 6000 |
采矿成本 | 4.0 | 6.1 | 5.5 | 7.0 | 6.8 |
不稳定费用 | 30 | 50 | 40 | 200 | 160 |
净现值 | 1500 | 700 | 1000 | 50 | 100 |
注:最大采矿量为8800吨,最大投资为8000万元
- 步骤1:确定因素集【可采矿量, 基建投资,采矿成本,不稳定费用,净现值】
- 步骤2:确定评语集【方案1,方案2,方案3,方案4,方案5】
- 步骤3:确定权重A=[0.25,0.20,0.20,0.10,0.25]
- 步骤4:构造模糊综合判断矩阵
μ
A
(
x
)
=
x
8800
μ
B
(
x
)
=
1
−
x
8000
μ
c
(
x
)
=
{
1
,
0
≤
x
≤
a
1
a
2
−
x
a
2
−
a
1
,
a
1
≤
x
≤
a
2
0
,
a
2
<
x
μ
D
(
x
)
=
1
−
x
200
μ
E
(
x
)
=
x
−
50
1500
−
50
=
x
−
50
1450
\mu_{_A}\left(x\right)=\frac{x}{8800} \\ \mu_{_B}(x)=1-\frac{x}{8000} \\ \mu_c\left(x\right)=\begin{cases}1,&0\leq x\leq a_1\\[2ex]\frac{a_2-x}{a_2-a_1},&a_1\leq x\leq a_2\\[2ex]0,&a_2<x\end{cases} \\ \mu_{_D}(x)=1-\frac{x}{200} \\ \mu_E\left(x\right)=\frac{x-50}{1500-50}=\frac{x-50}{1450}
μA(x)=8800xμB(x)=1−8000xμc(x)=⎩
⎨
⎧1,a2−a1a2−x,0,0≤x≤a1a1≤x≤a2a2<xμD(x)=1−200xμE(x)=1500−50x−50=1450x−50
利用上述五个公式,分别对五个因素的数据进行处理得到模糊判断矩阵
R
=
[
0.5341
0.7614
0.6705
1.0000
0.8636
0.3750
0.3125
0.3375
0.1500
0.2500
1.0000
0.7600
1.0000
0.4000
0.4800
1.0000
0.4480
0.6552
0.0000
0.0345
]
R=\begin{bmatrix}0.5341&0.7614&0.6705&1.0000&0.8636\\0.3750&0.3125&0.3375&0.1500&0.2500\\1.0000&0.7600&1.0000&0.4000&0.4800\\1.0000&0.4480&0.6552&0.0000&0.0345\end{bmatrix}
R=
0.53410.37501.00001.00000.76140.31250.76000.44800.67050.33751.00000.65521.00000.15000.40000.00000.86360.25000.48000.0345
- *步骤5:进行模糊运算,作出决策
B = A ⋅ R = ( 0.7435 , 0.5919 , 0.6789 , 0.3600 , 0.3905 ) B=A\cdot R=(0.7435,0.5919,0.6789,0.3600,0.3905) B=A⋅R=(0.7435,0.5919,0.6789,0.3600,0.3905)
注:模糊算子有很多种,我们这里仅仅使用矩阵乘来算得结果。因此我们最终选择方案1。
代码部分
等常用模型学完再补充…
二.TOPSIS法
适用范围
TOPSIS法适合解决多目标决策问题,尤其是那些需要对有限个评价对象进行优劣排序的问题。
解题步骤
-
原始矩阵正向化
-
正向矩阵标准化
-
计算得分并归一化
例题
帮助KUN哥选择对象,从A,B,C中。各项指标如下
候选人 | 颜值 | 脾气(争吵次数) | 身高165 | 体重90-100 |
---|---|---|---|---|
A | 9 | 10 | 175 | 120 |
B | 8 | 7 | 164 | 80 |
C | 6 | 3 | 157 | 90 |
步骤一:矩阵正向化(得到下列矩阵)
矩阵正向化均使用下列规则
候选人 | 颜值 | 脾气(争吵次数) | 身高165 | 体重90-100 |
---|---|---|---|---|
A | 9 | 0 | 0 | 0 |
B | 8 | 3 | 0.9 | 0.5 |
C | 6 | 7 | 0.2 | 1 |
步骤二:矩阵标准化(得到下列矩阵)
候选人 | 颜值 | 脾气(争吵次数) | 身高165 | 体重90-100 |
---|---|---|---|---|
A | 0.669 | 0 | 0 | 0 |
B | 0.595 | 0.394 | 0.976 | 0.447 |
C | 0.446 | 0.919 | 0.217 | 0.894 |
步骤三:计算得分并归一化
结果【0.122,0.624,0.622】,Kun最终选择了B
代码
等学完再补充吧
三.层次分析法
适用范围
尤其适合于人的定性判断起重要作用的、对决策结果难于直接准确计量的场合。
解题步骤
- 构建目标层,准则层,方案层
- 将各种方案在各准则的得分进行归一化处理
- 构建判断矩阵
- 一致性检验
- 利用特征值法求权重
- 求出最终得分
例题
微博想要在A,B,C三个明星中选择一个为自己的app代言,数据如下。
候选人 | 粉丝数 | 颜值 | 作品质量 | 作品数量 |
---|---|---|---|---|
A | 6000W | 10 | 6.5 | 25 |
B | 3400W | 6 | 8.1 | 46 |
C | 5500W | 8 | 7.5 | 31 |
步骤一:构建目标层,准则层,方案层
步骤二:将各种方案在各准则的得分进行归一化处理
将每个准则的得分除以该准则得分总和即可归一化
步骤三:构建判断矩阵
步骤四:一致性检验
利用最大特征值计算一致性指标CI,再通过查表得到平均随机一致性指标RI,最后计算二者比值,小于0.1则认为一致性检验通过。
C
I
=
λ
m
a
x
−
n
n
−
1
CI=\frac{\lambda_{max}-n}{n-1}
CI=n−1λmax−n
C
R
=
C
I
R
I
{
0
,
判断矩阵为一致矩阵
<
0.1
,
判断矩阵一致
≥
0.1
,
判断矩阵不一致
CR=\frac{CI}{RI}\quad\begin{cases}&0,&\text{判断矩阵为一致矩阵}\\&<0.1,&\text{判断矩阵一致}\\&\geq0.1,&\text{判断矩阵不一致}\end{cases}
CR=RICI⎩
⎨
⎧0,<0.1,≥0.1,判断矩阵为一致矩阵判断矩阵一致判断矩阵不一致
步骤五:利用特征值法求权重
最大特征值对应的特征向量进行归一化得到权重。
步骤六:求出最终得分
代码
稍后补充
四.熵权法
适用范围
熵权法是一种客观的赋权方法,它可以靠数据本身得出权重。原理是:指标的变异程度越小,所反应得信息也越少,其对应的权值也越低。
解题步骤
- 数据标准化
- 计算概率矩阵P
- 计算熵权
例题
帮助KUN哥选择对象,从A,B,C中。各项指标如下
候选人 | 颜值 | 脾气(争吵次数) | 身高165 | 体重90-100 |
---|---|---|---|---|
A | 9 | 10 | 175 | 120 |
B | 8 | 7 | 164 | 80 |
C | 6 | 3 | 157 | 90 |
步骤一:数据标准化
首先将数据正向化,再使用如下公式进行标准化,得到标准化矩阵
z
i
j
=
x
i
j
∑
i
=
1
n
x
i
j
2
z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^{n}x_{ij}^{2}}}
zij=∑i=1nxij2xij
步骤二:计算概率矩阵
利用下列公式计算得到概率矩阵P
p
i
j
=
z
i
j
∑
i
=
1
n
z
i
j
p_{ij} = \frac{z_{ij}}{\sum_{i=1}^{n}z_{ij}}
pij=∑i=1nzijzij
步骤三 :计算熵权
对于第
j
j
j个指标,信息熵的计算公式为
:
e
j
=
−
1
ln
n
∑
i
=
1
n
p
i
j
ln
(
p
i
j
)
(
j
=
1
,
2
,
.
.
.
,
m
)
:e_j=-\frac1{\ln n}\sum_{i=1}^np_{ij}\ln(p_{ij})(j=1,2,...,m)
:ej=−lnn1∑i=1npijln(pij)(j=1,2,...,m)
易知,当
p
1
j
=
p
2
j
=
⋯
=
p
n
j
=
1
n
p_{1j}=p_{2j}=\cdots=p_{nj}=\frac1n
p1j=p2j=⋯=pnj=n1时,
e
j
=
1
e_j= 1
ej=1,此时信息熵最大,但其信息效用值最小
定义信息效用值
d
j
=
1
−
e
j
d_j=1-e_j
dj=1−ej, 此时效用值越大,权重越大
将信息效用值进行归一化,得到熵权
W
j
=
d
j
∑
j
=
1
m
d
j
W_j=\frac{d_j}{\sum_{j=1}^md_j}
Wj=∑j=1mdjdj
本题中计算得到权重
代码
稍后补充
五.灰色关联分析
适用范围
灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。
解题步骤
- 构造母序列
- 构造子序列(影响系统行为的因素组成的数据序列,类似于自变量X)
- 数据预处理(消除量纲和数量级的影响)
- 计算灰色关联系数
- 计算关联系数
例题
已知某地国民生产总值,工业和农业生产总值,原始数据的形式及来源如下表,分析工业农业哪个对国民生产总值影响大
步骤一:构造母序列【国民生产总值】
步骤二:构造子序列【工业产值,农业产值】
步骤三:数据预处理
对数据进行均值化
y
k
~
=
y
k
y
i
,
y
i
‾
=
1
n
∑
k
=
1
n
y
k
x
k
i
~
=
x
k
i
x
i
,
x
i
‾
=
1
n
∑
k
=
1
n
x
k
i
(
i
=
1
,
2
,
⋯
,
m
)
\text{对数据进行均值化}\quad\widetilde{y_{k}}=\frac{y_{k}}{y_{i}},\overline{y_{i}}=\frac{1}{n}\sum_{k=1}^{n}y_{k}\quad\widetilde{x_{ki}}=\frac{x_{ki}}{x_{i}},\overline{x_{i}}=\frac{1}{n}\sum_{k=1}^{n}x_{ki}\left(i=1,2,\cdots,m\right)
对数据进行均值化yk
=yiyk,yi=n1k=1∑nykxki
=xixki,xi=n1k=1∑nxki(i=1,2,⋯,m)
也就是没个指标除以指标平均值得到下列矩阵
步骤三:求关联系数
a
=
min
i
min
k
∣
x
o
(
k
)
−
x
i
(
k
)
∣
b
=
max
i
max
k
∣
x
o
(
k
)
−
x
i
(
k
)
∣
ξ
i
(
k
)
=
y
(
x
0
(
k
)
,
x
i
(
k
)
)
=
a
+
ρ
b
∣
x
0
(
k
)
−
x
i
(
k
)
∣
+
ρ
b
\begin{gathered} a=\min_{i}\min_{k}\left|x_{o}\left(k\right)-x_{i}\left(k\right)\right| \\ b=\max_{i}\max_{k}\left|x_{o}\left(k\right)-x_{i}\left(k\right)\right| \\ \xi_{i}\left(k\right)=y\left(x_{0}\left(k\right),x_{i}\left(k\right)\right)=\frac{a+\rho b}{\left|x_{0}\left(k\right)-x_{i}\left(k\right)\right|+\rho b} \end{gathered}
a=iminkmin∣xo(k)−xi(k)∣b=imaxkmax∣xo(k)−xi(k)∣ξi(k)=y(x0(k),xi(k))=∣x0(k)−xi(k)∣+ρba+ρb
注:ρ一般取0.5
步骤四:求关联度
对关联系数求均值即可得到关联度
r
i
=
1
n
∑
k
=
1
n
ξ
i
(
k
)
=
1
n
∑
k
=
1
n
y
(
x
0
(
k
)
,
x
i
(
k
)
)
r_{i}=\frac{1}{n}\sum_{k=1}^{n}\xi_{i}\left(k\right)=\frac{1}{n}\sum_{k=1}^{n}y\left(x_{0}\left(k\right),x_{i}\left(k\right)\right)
ri=n1k=1∑nξi(k)=n1k=1∑ny(x0(k),xi(k))
代码
稍后补充
六.主成分分析法
基本思想
主成分析是对于原先提出的所有变量,将重复的变量(关系紧密的变量)删去多余,建立尽可能少的新变量,且能尽可能保留原有信息
解题步骤
假设有 n 个样本, p 个指标,则可构成大小为 n × p 的样本矩阵 x : x = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n p ] = ( x 1 , x 2 , ⋯ , x p ) \begin{aligned}&\text{假设有}n\text{个样本,}p\text{个指标,则可构成大小为}n\times p\text{的样本矩阵}x:\\&x=\begin{bmatrix}x_{11}&x_{12}&\cdots&x_{1p}\\x_{21}&x_{22}&\cdots&x_{2p}\\\vdots&\vdots&\ddots&\vdots\\x_{n1}&x_{n2}&\cdots&x_{np}\end{bmatrix}=\left(x_{1},x_{2},\cdots,x_{p}\right)\end{aligned} 假设有n个样本,p个指标,则可构成大小为n×p的样本矩阵x:x= x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1px2p⋮xnp =(x1,x2,⋯,xp)
- 数据标准化
- 计算标准化样本的协方差矩阵/样本相关系数矩阵
- 计算R的特征值和特征向量
- 计算主成分贡献率以及累计贡献率
- 写出主成分
- 根据系数分析主成分代表的意义
- 利用主成分的结果进行后续的分析
例题
制定服装标准的过程中,对128名成年男子的身材进行了测量,每人测得的指标中含有这样的六项:身高(X1)、坐高(X2)、胸围(X3)、手臂长(X4)、肋围(X5)、腰围(X6)。所得样本相关系数矩阵(对称矩阵)如下表:
注意:这里给出的是样本系数矩阵,一般在做题时得到的是原始矩阵
步骤一:数据标准化
按列计算均值
x
j
‾
=
1
n
∑
i
=
1
n
x
i
j
和标准差
S
j
=
∑
i
=
1
n
(
x
i
j
−
x
j
‾
)
2
n
−
1
,计算得标准化数据
X
i
j
=
x
i
j
−
x
j
‾
s
j
\begin{aligned}&\text{按列计算均值}\overline{x_j}=\frac1n\sum_{i=1}^nx_{ij}\text{和标准差}S_j=\sqrt{\frac{\sum_{i=1}^n\left(x_{ij}-\overline{x_j}\right)^2}{n-1}}\quad\text{,计算得标准化数据}X_{ij}=\frac{x_{ij}-\overline{x_j}}{s_j}\\&\end{aligned}
按列计算均值xj=n1i=1∑nxij和标准差Sj=n−1∑i=1n(xij−xj)2,计算得标准化数据Xij=sjxij−xj
步骤二:计算标准样本的协方差矩阵/样本相关系数矩阵
R
=
[
r
11
r
12
⋯
r
1
p
r
21
r
22
⋯
r
2
p
⋮
⋮
⋱
⋮
r
n
1
r
n
2
⋯
r
n
p
]
其中
r
i
j
=
1
n
−
1
∑
k
=
1
n
(
X
k
i
−
X
i
‾
)
(
X
k
j
−
X
j
‾
)
\begin{aligned}&R=\begin{bmatrix}r_{11}&r_{12}&\cdots&r_{1p}\\r_{21}&r_{22}&\cdots&r_{2p}\\\vdots&\vdots&\ddots&\vdots\\r_{n1}&r_{n2}&\cdots&r_{np}\end{bmatrix}\\&\text{其中}\quad r_{ij}=\frac{1}{n-1}\sum_{k=1}^{n}\Big(X_{ki}-\overline{X_{i}}\Big)\Big(X_{kj}-\overline{X_{j}}\Big)\end{aligned}
R=
r11r21⋮rn1r12r22⋮rn2⋯⋯⋱⋯r1pr2p⋮rnp
其中rij=n−11k=1∑n(Xki−Xi)(Xkj−Xj)
步骤三:计算R的特征值和特征向量
使用numpy库函数即可
步骤四:计算主成分贡献率以及累计贡献率
贡献率
α
i
=
λ
i
∑
k
=
1
p
λ
k
(
i
=
1
,
2
,
.
.
.
,
p
)
累计贡献率
∑
G
=
∑
k
−
1
i
λ
k
∑
k
=
1
p
λ
k
(
i
=
1
,
2
,
.
.
.
,
p
)
\text{贡献率}\alpha_i=\frac{\lambda_i}{\sum_{k=1}^p\lambda_k}(i=1,2,...,p)\quad\text{累计贡献率}\sum G=\frac{\sum_{k-1}^i\lambda_k}{\sum_{k=1}^p\lambda_k}(i=1,2,...,p)
贡献率αi=∑k=1pλkλi(i=1,2,...,p)累计贡献率∑G=∑k=1pλk∑k−1iλk(i=1,2,...,p)
步骤五:写出主成分
一般取累计贡献超过80%的特征值所对应的第一,第二,…,第m个主成分。
F
1
=
0.469
X
1
+
0.404
X
2
+
0.394
X
3
+
0.408
X
4
+
0.339
X
5
+
0.427
X
6
F
2
=
−
0.365
X
1
−
0.397
X
2
+
0.397
X
3
−
0.365
X
4
+
0.569
X
5
+
0.308
X
6
F
3
=
0.092
X
1
+
0.613
X
2
−
0.279
X
3
−
0.705
X
4
+
0.164
X
5
+
0.119
X
6
\begin{aligned} &F_{1} =0.469X_1+0.404X_2+0.394X_3+0.408X_4+0.339X_5+0.427X_6 \\ &F_{2} =-0.365X_1 - 0.397X_2+0.397 X_3 - 0.365X_4+0.569X_5+0.308X_6 \\ &F_{3} =0.092X_{1} +0.613X_{2} -0.279X_{3} -0.705X_{4} +0.164X_{5} +0.119X_{6} \end{aligned}
F1=0.469X1+0.404X2+0.394X3+0.408X4+0.339X5+0.427X6F2=−0.365X1−0.397X2+0.397X3−0.365X4+0.569X5+0.308X6F3=0.092X1+0.613X2−0.279X3−0.705X4+0.164X5+0.119X6
步骤六:根据系数分析主成分代表的意义
主成分一可以解释为胖瘦成分,主成分二可以解释为臂长成分
代码部分
稍后补充