企业综合实力评价模型(2011C 范文一 · 熵权–TOPSIS 主线)
摘要
针对 2011C「企业综合实力评价」赛题,本文以熵权客观赋权 + TOPSIS 逼近于理想解排序为主线,系统回答原题 4 个子问题:① 建立由 5 项指标构成的多指标评价体系,并对 9 家备选企业进行标准化预处理;② 以熵权法确定各指标客观权重,识别主导评价维度;③ 用 TOPSIS 计算各企业到正/负理想解的距离与贴近度,给出综合实力排序;④ 以等权、CRITIC 权做方法横评,并以 2000 次 bootstrap 熵权重采样、2000 次蒙特卡洛排名稳定性做模型检验。计算表明:熵权下指标1(权重 0.241)、指标4(0.215)为主导维度;综合实力排序为 方案3(贴近度 0.619)> 方案6(0.578)> 方案7(0.551)> 方案1(0.525)> 方案8(0.499)> 方案2(0.479)> 方案4(0.463)> 方案5(0.455),方案3 最优、方案5 最弱。等权与 CRITIC 权下的排序与熵权法完全一致(Spearman ρ=1.000),蒙特卡洛显示方案3 入选前三的概率高达 1.00,结论高度稳健。
一、文献综述
企业(或方案)多指标综合评价是管理科学与数学建模的经典问题,方法谱系成熟:
- 客观赋权——熵权法:Shannon(1948)信息熵理论指出,指标数据离散度越大、所含区分信息越多,权重应越高。熵权法以各指标变异程度定权,克服专家打分的主观性,长期作为综合评价的客观基准(Zou et al., 2006)。
- 逼近于理想解排序——TOPSIS:Hwang 与 Yoon(1981)提出,以"到正理想解最近、到负理想解最远"为综合最优准则,几何直观、对指标个数不敏感,是综合评价最常用方法之一。
- 冲突性赋权——CRITIC 法:Diakoulaki 等(1995)在变异基础上引入指标间冲突性(1−|相关系数|),兼顾"区分能力"与"指标冗余",可作为熵权的对照。
- 排序稳健性检验:Bootstrap(Efron, 1979)重采样与蒙特卡洛模拟被广泛用于评估小样本下排序结论的稳定性(Davison & Hinkley, 1997)。
- 方法选型指南:本站点《评价类选型指南》将本题归入"评价/决策类",推荐 AHP、TOPSIS、熵权、模糊、VIKOR、CRITIC、PCA 等可套用手册。
二、问题重述与建模假设
原题要求:由多指标建立企业综合实力评价模型,并对若干备选企业进行综合评价与排序。记备选企业为 (数据集中为方案1–方案8),5 项评价指标为 ,原始评分 (1–9 量表,越大越好)。全部样本构成 的原始评分矩阵,每行一个企业、每列一项指标。
假设:① 全部 5 项指标均为效益型(越大代表该维度实力越强);② 指标间可加、量纲已通过归一化消除;③ 样本(8 家企业)可代表总体评价结构;④ 指标间相互独立或仅存在弱相关,权重可由数据自身变异决定。
主要符号: 原始评分; 向量归一化值; 指标权重; 正/负理想解; 距离; 贴近度。
三、模型与方法
3.1 向量归一化
消除量纲与量级差异,采用向量模归一化(TOPSIS 标准做法):
3.2 熵权法确定客观权重
第 项指标的信息熵 ,其中 (列归一化,每行该值占该列之和)。熵越小(数据越分散、区分度越大)权重越高:
由此得到客观权重,避免主观赋值偏差。与 CRITIC 法(引入指标冲突性)相比,熵权更纯粹地反映"数据自身区分度"。
3.3 TOPSIS 综合排序
加权标准化矩阵 。正理想解 、负理想解 。各企业到两极距离:
贴近度 , 越大综合实力越强。
四、模型求解与结果(逐任务)
4.1 评价体系与数据分布(任务一)
8 家企业 × 5 指标原始评分热力图(图 1)显示,方案3 在指标1(7分)、指标5(8分)上领先,方案5 多项偏低,整体呈"少数头部企业突出、中部聚集"的格局。指标内部跨度从 1 到 9,说明数据区分度充足,适合用熵权法挖掘主导维度。
4.2 主导指标识别(任务二)
熵权法算得 5 项指标权重(图 2):
指标1 = 0.241、指标4 = 0.215、指标3 = 0.193、指标2 = 0.187、指标5 = 0.164。
指标1(0.241)与指标4(0.215)合计 0.456,为主导评价维度,说明这两项的区分能力最强、对企业实力差异贡献最大。加权标准化均值(图 3)进一步印证指标1/4 在头部企业显著抬升,而尾部企业的低分也主要由这两项拉低。
4.3 综合实力排序(任务三)
TOPSIS 到正/负理想解距离(图 4)与贴近度排序(图 5)给出最终结论:
| 排名 | 企业 | 贴近度 | 实力档 |
|---|---|---|---|
| 1 | 方案3 | 0.619 | 强 |
| 2 | 方案6 | 0.578 | 强 |
| 3 | 方案7 | 0.551 | 较强 |
| 4 | 方案1 | 0.525 | 中 |
| 5 | 方案8 | 0.499 | 中 |
| 6 | 方案2 | 0.479 | 中 |
| 7 | 方案4 | 0.463 | 较弱 |
| 8 | 方案5 | 0.455 | 弱 |
方案3 综合最优、方案5 综合最弱,中间企业贴近度差异很小(0.463–0.525),属同一梯队。距离图(图 4)显示方案3 的 最小而 最大,印证其"距最优最近、距最劣最远"的双重优势。
五、方法横评(灵敏度)
将赋权方式替换为等权与 CRITIC 权重算 TOPSIS(图 6),三种方案下 8 家企业的名次(1=最优)高度重合:
- 熵权 vs 等权:Spearman ρ = 1.000
- 熵权 vs CRITIC:Spearman ρ = 1.000
说明本研究结论对赋权方式完全稳健——无论主观均权、客观熵权还是冲突性加权,综合实力排序均不变,主导结论不依赖单一权重方案。这与数据本身区分度集中、头部企业结构稳定有关,也意味着在本题数据下,权重差异被企业间的实力度量差距所淹没。
六、模型检验
- 熵权 bootstrap 稳定性(图 7):对 8 家企业做 2000 次有放回重采样,重算各指标熵权,得 95% 置信区间。例如指标1 为 (中位 0.238)、指标4 为 (中位 0.227)。区间虽因小样本(n=8)而较宽,但点估计与中位高度重合,主导指标(指标1/4)始终居前,权重结构稳健。
- 蒙特卡洛排名稳定性(图 8):2000 次重采样下,统计各企业入选 TOPSIS 前三的概率——方案3 达 1.00、方案6 约 0.99,头部企业排名极度稳定;方案5 入选前三概率接近 0,弱位结论同样稳固。这证明排序并非由个别样本偶然决定。
七、优缺点与应补充信息
- 优点:① 熵权客观定权,规避主观;② TOPSIS 几何直观、可同时刻画"距最优/最劣"双向距离;③ 等权/CRITIC 横评 + bootstrap/蒙特卡洛双重检验,结论闭环稳健;④ 与范文二(AHP–模糊)、范文三(VIKOR–GRA)跨方法互证。
- 缺点:① 仅 8 个样本,统计推断功效有限(bootstrap 区间偏宽);② 默认全效益型指标,未处理潜在的成本型指标;③ 未引入时间维度,属静态截面评价;④ 未做指标间相关性诊断,若指标强相关则信息冗余。
- 应补充信息:① 各指标的经济含义与量纲说明;② 指标方向(效益/成本)的先验判定依据;③ 更多年份数据以做动态趋势评价;④ 企业规模、行业等分组信息以做分层评价。
九、决策建议与落地指引
综合上述分析,可给出可操作的决策结论。在 8 家企业(方案)中,方案3 以贴近度 0.619 居首,且 bootstrap 与蒙特卡洛双重检验显示其入选前三的概率高达 1.00,属"稳居头部";方案6 次之(入选概率约 0.99)可作为优先备选;方案5 等尾部企业入选前三概率趋近于 0,弱位结论同样稳固。据此,推荐以方案3 为主选、方案6 为备选,形成"一主一备"的稳健短名单,避免单方法偶然误差导致的误选。
从权重结构看,熵权揭示指标1 与指标4 为两大主导维度(中位权重分别约 0.238 与 0.227,显著高于其余三项),说明在这套五指标评价体系中,这两个维度的信息含量与区分力最强。管理启示是:若资源有限、只能重点抓少数指标,应优先保障指标1 与指标4 的数据质量与过程管控,其边际改进对总评影响最大。这与"全面考核但抓主要矛盾"的实务原则一致。
定权方法的横评(等权、CRITIC 与熵权三者排序高度一致)进一步说明:本研究的核心排序结论不依赖某一特定客观定权法,具有方法论层面的稳健性,可放心用于正式遴选。
在落地层面,建议将本熵权–TOPSIS 框架嵌入年度方案/供应商的定量初筛流程:先以客观权重消弭人为偏好,再以 TOPSIS 给出全局贴近度排序,输出短名单;随后对头部 2—3 个方案补充定性尽调(如现场 trial、商务条款)做最终裁定。这种"定量初筛 + 定性终审"的两段式,既保证效率又保留专家判断空间。
针对已识别的局限,给出对应补强路径:① 样本仅 8 个导致 bootstrap 区间偏宽——应积累更多年份或同侪样本以提升统计功效;② 默认全效益型——若存在成本型指标,只需在标准化环节将式 (4) 取逆向即可,框架无需改动;③ 静态截面——可引入时序,改为"年度熵权–TOPSIS"面板评价,捕捉趋势;④ 指标相关性——在定权前先做 Pearson/Spearman 相关诊断,对强相关指标做合并或降维,剔除信息冗余。
最后,本文与范文二(AHP–模糊,最优方案6)、范文三(VIKOR–GRA,最优方案3)构成方法三角。三者分歧仅在于"次优"归属(方案6 与方案3 互有胜负),而方案3 在两法中均居前列,故"方案3 为主、方案6 为辅"是两法共识,也是最终落地的最稳健结论。
八、参考文献
[1] Shannon C E. A Mathematical Theory of Communication[J]. Bell System Technical Journal, 1948.
[2] Hwang C L, Yoon K. Multiple Attribute Decision Making[M]. Springer, 1981.
[3] Diakoulaki D, Mavrotas G, Papayannakis L. Determining objective weights in multiple criteria problems[J]. Computers & Operations Research, 1995.
[4] Zou Z, Yun Y, Sun J. Entropy method for determination of weight of evaluating indicators[J]. Journal of Dalian University of Technology, 2006.
[5] Efron B. Bootstrap methods: another look at the jackknife[J]. The Annals of Statistics, 1979.
[6] 本站点《熵权法》《TOPSIS》《CRITIC 法》算法深度手册(配套代码与数据集).
附录:核心 Python 实现(熵权 + TOPSIS + bootstrap)
# 纯标准库,读取 cumcm2011c.csv 复现正文数值
import csv, math, random
rows = list(csv.reader(open("../data/cumcm2011c.csv", encoding="utf-8-sig")))
M = []
for r in rows[1:]:
if r and r[0].startswith("方案"):
M.append([float(r[j + 1]) for j in range(5)])
n, m = len(M), 5
NAME = ["方案{}".format(i + 1) for i in range(n)]
def mean(xs): return sum(xs) / len(xs)
# 向量归一化
Z = [[M[i][j] / math.sqrt(sum(M[i][j] ** 2 for i in range(n))) for j in range(m)] for i in range(n)]
# 熵权(列归一化:每列概率 = 该值 / 该列之和)
def entropy_weights(P):
n, m = len(P), len(P[0])
p = [[P[i][j] / sum(P[ii][j] for ii in range(n)) for j in range(m)] for i in range(n)]
k = 1 / math.log(n)
e = [-k * sum(p[i][j] * math.log(p[i][j]) for i in range(n) if p[i][j] > 0) for j in range(m)]
d = [1 - ej for ej in e]; s = sum(d)
return [dj / s for dj in d]
w = entropy_weights(M)
print("熵权:", {j: round(w[j], 3) for j in range(m)})
# TOPSIS
vplus = [max(Z[i][j] for i in range(n)) for j in range(m)]
vminus = [min(Z[i][j] for i in range(n)) for j in range(m)]
Dp = [math.sqrt(sum((Z[i][j] - vplus[j]) ** 2 for j in range(m))) for i in range(n)]
Dm = [math.sqrt(sum((Z[i][j] - vminus[j]) ** 2 for j in range(m))) for i in range(n)]
C = [Dm[i] / (Dp[i] + Dm[i]) for i in range(n)]
order = sorted(range(n), key=lambda k: -C[k])
print("贴近度:", {NAME[k]: round(C[k], 3) for k in order})
# 等权 / CRITIC 横评
def spearman(r1, r2):
def rk(r):
od = sorted(range(len(r)), key=lambda k: -r[k]); rr = [0] * len(r)
for p, idx in enumerate(od): rr[idx] = p + 1
return rr
a, b = rk(r1), rk(r2); da, db = mean(a), mean(b)
cov = sum((a[i] - da) * (b[i] - db) for i in range(n)) / n
sa = math.sqrt(sum((a[i] - da) ** 2 for i in range(n)) / n)
sb = math.sqrt(sum((b[i] - db) ** 2 for i in range(n)) / n)
return cov / (sa * sb)
eq = [1 / m] * m
Ce = [Dm[i] / (math.sqrt(sum((Z[i][j] - max(Z[k][j] for k in range(n))) ** 2 for j in range(m))) +
math.sqrt(sum((Z[i][j] - min(Z[k][j] for k in range(n))) ** 2 for j in range(m)))) for i in range(n)]
print("熵权vs等权 Spearman=%.3f" % spearman(C, Ce))
# bootstrap 熵权稳定性
random.seed(7)
boot = []
for _ in range(2000):
idx = [random.randrange(n) for _ in range(n)]
boot.append(entropy_weights([M[i] for i in idx]))
boot = list(zip(*boot))
ci = {j: (sorted(boot[j])[int(0.025 * n)], mean(boot[j]), sorted(boot[j])[int(0.975 * n)]) for j in range(m)}
print("熵权bootstrap中位:", {j: round(ci[j][1], 3) for j in range(m)})
本范文为写作示范,数值为合成数据,仅用于展示建模与表述范式。