数据综合评价方法盘点:从原理到实践(六)灰色关联分析法

灰色关联分析法

原理

灰色关联分析法是一种多因素统计分析方法,它以各因素的样本数据为依据,用灰色关联度来描述因素间关系的强弱、大小和次序。该方法的基本思想是,根据序列曲线几何形状的相似程度来判断其联系是否紧密,曲线越接近,相应序列之间的关联度就越大,反之则越小。它适用于样本数据较少、信息不完全的情况。

实现路径

  1. 确定参考序列和比较序列:参考序列是作为比较基准的序列,通常是理想的或期望的指标值;比较序列则是需要进行评价的各个对象的指标序列。
  2. 数据无量纲化处理:由于不同指标的量纲和数量级可能不同,为了消除其影响,需要对数据进行无量纲化处理。常用的方法有初值化、均值化等。
  3. 计算关联系数:计算每个比较序列与参考序列在各个时刻的关联系数,关联系数反映了两个序列在某一时刻的关联程度。计算公式通常涉及到比较序列与参考序列的差值、最小差值和最大差值等。
  4. 计算关联度:对各时刻的关联系数进行加权平均,得到每个比较序列与参考序列的关联度。关联度越大,说明该比较序列与参考序列的相似程度越高,评价结果也就越好。

Python实现代码

import numpy as np


def grey_relation_analysis(reference, comparatives):
    # 无量纲化处理
    reference = reference / reference[0]
    comparatives = comparatives / comparatives[:, 0].reshape(-1, 1)

    # 计算差序列
    diff = np.abs(comparatives - reference)
    min_diff = np.min(diff)
    max_diff = np.max(diff)

    # 计算关联系数
    rho = 0.5
    relation_coefficient = (min_diff + rho * max_diff) / (diff + rho * max_diff)

    # 计算关联度
    relation_degree = np.mean(relation_coefficient, axis = 1)

    return relation_degree


# 示例数据
reference = np.array([10, 20, 30])
comparatives = np.array([
    [12, 22, 32],
    [8, 18, 28]
])

relation_degree = grey_relation_analysis(reference, comparatives)
print("关联度:", relation_degree)

优劣势

  • 优势
    • 对数据要求低:不需要大量的样本数据,也不要求数据服从特定的分布规律,适用于数据有限、信息不完全的情况。
    • 计算简便:计算过程相对简单,不需要复杂的数学运算和模型假设,易于理解和应用。
    • 分析全面:能够综合考虑多个因素之间的关联关系,对评价对象进行全面的分析和评价。
  • 劣势
    • 主观性存在:在确定分辨系数等参数时,具有一定的主观性,不同的取值可能会导致评价结果有所差异。
    • 信息利用不充分:主要侧重于因素之间的关联程度,对数据的深层次信息挖掘不够,可能会忽略一些重要的特征。

具体案例

某手机评测机构想要全面评估市场上不同品牌手机在多个性能维度上与理想手机的接近程度,为消费者提供有价值的购买参考。由于手机性能指标众多,且实际收集到的数据可能有限,因此选择灰色关联分析法来进行分析。

  1. 确定参考序列和比较序列
    1. 确定参考序列
      评测机构根据市场调研和专业分析,确定了一款“理想手机”的各项性能指标作为参考序列。假设考虑手机的四个关键性能指标:电池续航(小时)、运行速度(以某种标准测试得分表示)、拍照质量(以专业评测得分表示)、屏幕显示效果(以专业评测得分表示)。“理想手机”的各项指标值如下:
      [
      X_0 = [48, 90, 85, 80]
      ]
    1. 确定比较序列
      选取市场上三款热门手机 A、B、C 作为比较对象,收集它们在上述四个性能指标上的数据,形成比较序列:
      [
      X_1 = [40, 80, 75, 70]
      ]
      [
      X_2 = [35, 85, 80, 75]
      ]
      [
      X_3 = [45, 75, 70, 78]
      ]
  1. 数据无量纲化处理
    采用初值化方法对数据进行无量纲化处理,即每个数据除以该序列的第一个数据。

参考序列 X 0 X_0 X0 初值化后为:
[
X_0’ = \frac{X_0}{X_0[0]} = [1, \frac{90}{48}, \frac{85}{48}, \frac{80}{48}] \approx [1, 1.875, 1.771, 1.667]
]

比较序列 X 1 X_1 X1 初值化后为:
[
X_1’ = \frac{X_1}{X_1[0]} = [1, \frac{80}{40}, \frac{75}{40}, \frac{70}{40}] = [1, 2, 1.875, 1.75]
]

比较序列 X 2 X_2 X2 初值化后为:
[
X_2’ = \frac{X_2}{X_2[0]} = [1, \frac{85}{35}, \frac{80}{35}, \frac{75}{35}] \approx [1, 2.429, 2.286, 2.143]
]

比较序列 X 3 X_3 X3 初值化后为:
[
X_3’ = \frac{X_3}{X_3[0]} = [1, \frac{75}{45}, \frac{70}{45}, \frac{78}{45}] \approx [1, 1.667, 1.556, 1.733]
]

  1. 计算关联系数
    计算每个比较序列与参考序列在各个时刻(对应每个性能指标)的关联系数。关联系数计算公式为:
    [
    \xi_{i}(k) = \frac{\min_{i}\min_{k}|x_0(k) - x_i(k)| + \rho \max_{i}\max_{k}|x_0(k) - x_i(k)|}{|x_0(k) - x_i(k)| + \rho \max_{i}\max_{k}|x_0(k) - x_i(k)|}
    ]
    其中, ξ i ( k ) \xi_{i}(k) ξi(k) 是第 i i i 个比较序列在第 k k k 个时刻(指标)的关联系数, x 0 ( k ) x_0(k) x0(k) 是参考序列在第 k k k 个时刻的值, x i ( k ) x_i(k) xi(k) 是第 i i i 个比较序列在第 k k k 个时刻的值, ρ \rho ρ 是分辨系数,这里取 ρ = 0.5 \rho = 0.5 ρ=0.5

首先计算 min ⁡ i min ⁡ k ∣ x 0 ( k ) − x i ( k ) ∣ \min_{i}\min_{k}|x_0(k) - x_i(k)| miniminkx0(k)xi(k) max ⁡ i max ⁡ k ∣ x 0 ( k ) − x i ( k ) ∣ \max_{i}\max_{k}|x_0(k) - x_i(k)| maximaxkx0(k)xi(k)

min ⁡ i min ⁡ k ∣ x 0 ′ ( k ) − x i ′ ( k ) ∣ \min_{i}\min_{k}|x_0'(k) - x_i'(k)| miniminkx0(k)xi(k)
[
\begin{align*}
|X_0’[1] - X_1’[1]| &= |1.875 - 2| = 0.125 \
|X_0’[1] - X_2’[1]| &= |1.875 - 2.429| = 0.554 \
|X_0’[1] - X_3’[1]| &= |1.875 - 1.667| = 0.208 \
|X_0’[2] - X_1’[2]| &= |1.771 - 1.875| = 0.104 \
|X_0’[2] - X_2’[2]| &= |1.771 - 2.286| = 0.515 \
|X_0’[2] - X_3’[2]| &= |1.771 - 1.556| = 0.215 \
|X_0’[3] - X_1’[3]| &= |1.667 - 1.75| = 0.083 \
|X_0’[3] - X_2’[3]| &= |1.667 - 2.143| = 0.476 \
|X_0’[3] - X_3’[3]| &= |1.667 - 1.733| = 0.066 \
\end{align*}
]
所以 min ⁡ i min ⁡ k ∣ x 0 ′ ( k ) − x i ′ ( k ) ∣ = 0.066 \min_{i}\min_{k}|x_0'(k) - x_i'(k)| = 0.066 miniminkx0(k)xi(k)=0.066

max ⁡ i max ⁡ k ∣ x 0 ′ ( k ) − x i ′ ( k ) ∣ \max_{i}\max_{k}|x_0'(k) - x_i'(k)| maximaxkx0(k)xi(k)
通过上述计算可知 max ⁡ i max ⁡ k ∣ x 0 ′ ( k ) − x i ′ ( k ) ∣ = 0.554 \max_{i}\max_{k}|x_0'(k) - x_i'(k)| = 0.554 maximaxkx0(k)xi(k)=0.554

以手机 A( X 1 ′ X_1' X1)为例,计算其关联系数:
[
\begin{align*}
\xi_{1}(1) &= \frac{0.066 + 0.5 \times 0.554}{|1.875 - 2| + 0.5 \times 0.554} = \frac{0.066 + 0.277}{0.125 + 0.277} = \frac{0.343}{0.402} \approx 0.853 \
\xi_{1}(2) &= \frac{0.066 + 0.5 \times 0.554}{|1.771 - 1.875| + 0.5 \times 0.554} = \frac{0.343}{0.104 + 0.277} = \frac{0.343}{0.381} \approx 0.900 \
\xi_{1}(3) &= \frac{0.066 + 0.5 \times 0.554}{|1.667 - 1.75| + 0.5 \times 0.554} = \frac{0.343}{0.083 + 0.277} = \frac{0.343}{0.360} \approx 0.953 \
\end{align*}
]

同理,可计算出手机 B 和手机 C 的关联系数。

  1. 计算关联度
    对各时刻的关联系数进行加权平均(这里简单平均),得到每个比较序列与参考序列的关联度。

手机 A 的关联度 r 1 r_1 r1
[
r_1 = \frac{0.853 + 0.900 + 0.953}{3} \approx 0.902
]

手机 B 的关联度 r 2 r_2 r2
经过计算,得到 r 2 ≈ 0.765 r_2 \approx 0.765 r20.765

手机 C 的关联度 r 3 r_3 r3
经过计算,得到 r 3 ≈ 0.828 r_3 \approx 0.828 r30.828

  1. 结果分析
    关联度结果显示: r 1 > r 3 > r 2 r_1 > r_3 > r_2 r1>r3>r2,即手机 A 的关联度最高,说明手机 A 的各项性能表现与理想手机最为接近;手机 C 次之;手机 B 相对较差。

基于此分析结果,评测机构可以向消费者推荐手机 A,同时也可以向手机厂商 B 和 C 提供详细的分析报告,帮助他们了解自己产品与理想状态的差距,有针对性地进行产品改进和优化。例如,手机 B 在运行速度、拍照质量和屏幕显示效果等方面与理想手机差距较大,厂商可以加大在这些方面的研发投入;手机 C 在运行速度和拍照质量上也有提升空间,可着重进行改进。

通过灰色关联分析法,评测机构能够在有限的数据条件下,对不同手机的综合性能进行有效评估和比较,为市场和消费者提供有价值的参考信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Is code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值