正在加载中...

展开本页目录
算法教程协同度分析系统

协同度分析系统

No.011 · 在线教程

协同度分析系统面向多指标复合场景下的系统协调性评估,旨在构建一套可解释、可比较、可复现的量化评价框架。系统通过对正向、负向与适中指标进行同向化处理与隶属度映射,统一不同量纲与不同偏好方向的数据表达,并在此基础上形成系统整体协同水平与对象间差异的综合判别结果。

协同度分析法

协同度分析系统面向多指标复合场景下的系统协调性评估,旨在构建一套可解释、可比较、可复现的量化评价框架。系统通过对正向、负向与适中指标进行同向化处理与隶属度映射,统一不同量纲与不同偏好方向的数据表达,并在此基础上形成系统整体协同水平与对象间差异的综合判别结果。

从应用价值看,该方法可用于识别协同演化中的关键约束指标与主导权重结构,揭示不同评价对象在协同状态上的结构性差异,并支持双系统耦合情形下的合成协同度测度。相关结果可直接服务于政策评估、资源配置优化与治理方案比选等决策过程。

1. 方法概述

协同度分析用于刻画系统(或子系统)在多指标约束下的有序状态与协调水平。设共有 \(n\) 个评价对象、\(m\) 个评价指标,原始数据矩阵为

$$ X=(x_{ij})_{n\times m},\quad i=1,2,\ldots,n,\ j=1,2,\ldots,m \tag{1} $$

其中 \(x_{ij}\) 表示第 \(i\) 个对象在第 \(j\) 个指标上的观测值。

2. 指标同向化与隶属度构造

为统一“值越大越优”的偏好,将指标映射为有序度(隶属度)\(\mu_{ij}\in[0,1]\)。记第 \(j\) 指标样本最小值、最大值分别为 \(x_j^{\min},x_j^{\max}\)。

2.1 正向指标

$$ \mu_{ij}=\frac{x_{ij}-x_j^{\min}}{x_j^{\max}-x_j^{\min}} \tag{2} $$

2.2 负向指标

$$ \mu_{ij}=\frac{x_j^{\max}-x_{ij}}{x_j^{\max}-x_j^{\min}} \tag{3} $$

2.3 适中(适度)指标

若第 \(j\) 个指标目标值为 \(t_j\),则

$$ \mu_{ij}=1-\frac{|x_{ij}-t_j|}{\max\left\{|x_j^{\max}-t_j|,|t_j-x_j^{\min}|\right\}} \tag{4} $$

由此得到隶属度矩阵

$$ M=(\mu_{ij})_{n\times m} \tag{5} $$

3. 权重确定

3.1 自定义权重

若采用主观赋权,权重向量 \(w=(w_1,\ldots,w_m)\) 满足

$$ \sum_{j=1}^{m}w_j=1,\quad w_j\ge 0 \tag{6} $$

3.2 熵权法赋权

先计算指标比重

$$ p_{ij}=\frac{\mu_{ij}}{\sum_{i=1}^{n}\mu_{ij}} \tag{7} $$

信息熵为

$$ e_j=-\frac{1}{\ln n}\sum_{i=1}^{n}p_{ij}\ln(p_{ij}+\varepsilon) \tag{8} $$

其中 \(\varepsilon\) 为极小正数(防止 \(\ln 0\))。差异系数与权重分别为

$$ g_j=1-e_j \tag{9} $$

$$ w_j=\frac{g_j}{\sum_{j=1}^{m}g_j} \tag{10} $$

4. 单系统协同度(系统整体口径)

先计算第 \(i\) 个对象的子系统有序度

$$ CC_i=\sum_{j=1}^{m}w_j\mu_{ij} \tag{11} $$

再求系统协同能力(均值)

$$ \overline{CC}=\frac{1}{n}\sum_{i=1}^{n}CC_i \tag{12} $$

极差系数定义为

$$ DD=\frac{\max\limits_{i,j}\mu_{ij}-\min\limits_{i,j}\mu_{ij}}{\overline{CC}} \tag{13} $$

系统整体协同度为

$$ CA_{\text{sys}}=\frac{\overline{CC}}{DD} \tag{14} $$

常用等级划分为

$$ \text{Level}(CA_{\text{sys}})= \begin{cases} \text{高效协同}, & CA_{\text{sys}}\ge 1.0\\ \text{一般协同}, & 0.8\le CA_{\text{sys}}<1.0\\ \text{弱协同}, & 0.6\le CA_{\text{sys}}<0.8\\ \text{不协同}, & CA_{\text{sys}}<0.6 \end{cases} \tag{15} $$

5. 逐对象协同表现(排序口径)

为对各评价对象进行横向比较,可计算对象级极差项

$$ DD_i=\sqrt{\sum_{j=1}^{m}w_j(1-\mu_{ij})^2} \tag{16} $$

对应对象级协同度

$$ CA_i=CC_i\bigl(1-DD_i\bigr) \tag{17} $$

按 \(CA_i\) 由大到小排序,得到对象排名

$$ \text{Rank}_i=\operatorname{rank}_{\downarrow}(CA_i) \tag{18} $$

6. 双系统合成协同度

设系统1与系统2分别得到 \(CC_i^{(1)},DD_i^{(1)}\) 与 \(CC_i^{(2)},DD_i^{(2)}\)。记系统间权重 \(W_1,W_2\) 满足

$$ W_1+W_2=1,\quad W_1,W_2\ge 0 \tag{19} $$

构造混合有序度与混合极差项

$$ CC_i^{\text{mix}}=W_1CC_i^{(1)}+W_2CC_i^{(2)} \tag{20} $$

$$ DD_i^{\text{mix}}=W_1DD_i^{(1)}+W_2DD_i^{(2)} \tag{21} $$

6.1 乘积型合成

$$ CA_i^{\text{total}}=CC_i^{\text{mix}}\bigl(1-DD_i^{\text{mix}}\bigr) \tag{22} $$

6.2 加权折中型合成

引入折中系数 \(\alpha\in[0,1]\),可写为

$$ CA_i^{\text{total}}=\alpha\,CC_i^{\text{mix}}+(1-\alpha)\bigl(1-DD_i^{\text{mix}}\bigr) \tag{23} $$

最终按 \(CA_i^{\text{total}}\) 由大到小排序。

7. 论文写作建议(可直接套用)

  1. 给出指标体系、指标类型(正向/负向/适中)与目标值 \(t_j\);
  2. 给出权重来源(自定义或熵权法),并报告权重表;
  3. 报告单系统结果(\(CC_i\)、\(DD\)、\(CA_{\text{sys}}\)、等级);
  4. 若为双系统研究,报告 \(W_1,W_2\)、合成方式(式(22)或式(23))及最终排名;
  5. 图表建议包含:权重分布图、有序度分布图、协同等级图与雷达图。

上述结构可直接用于“方法”与“结果分析”章节,正文保留核心公式,计算明细可置于附录以增强可复现性。

8. 输出结果

当前项目中的协同度模块位于 具体的算法/xietongdu。根据 xietongdu_calculator.py 的真实实现,单系统分析时会在输出目录下生成 results_<时间戳>/ 子目录,并写出 协同度分析结果_<时间戳>.xlsx。Excel 常见工作表包括:

  1. 原始数据
  2. 标准化矩阵
  3. 指标权重
  4. 熵权法计算结果(若使用熵权法)
  5. 有序度计算结果
  6. 子系统总体有序度
  7. 极差系数计算
  8. 协同度-系统整体
  9. 协同度-逐对象
  10. 隶属度μ
  11. 计算说明

图像通常保存在同级 plots/ 目录下,常见文件包括 weights_distribution.pngordered_degrees_distribution.pngcoordination_level.pngordered_degrees_radar.png。若进行双系统合成,还会生成 协同度_双系统合成结果_<时间戳>.xlsx,其中包含 系统1_隶属度μ系统2_隶属度μ系统1_CCDDCA系统2_CCDDCA合成结果参数说明 等工作表。

9. 实现说明与注意事项

这套协同度实现与教材里的最简公式版相比,有几处必须如实写明:

  1. 指标类型支持 正向指标 / 负向指标 / 适度指标(适中指标),其中适度指标必须配合标准值使用,否则无法按“贴近最优值”逻辑计算。
  2. 标准化同时支持 min-maxz-score 两种路径,但若使用 z-score,代码仍会再映射回 \([0,1]\) 区间,以便后续隶属度和熵权法计算稳定。
  3. 权重既支持熵权法,也支持自定义权重;若采用熵权法,Excel 会额外输出 熵权法计算结果 工作表。
  4. 当前实现不只保留系统整体协同度,还额外输出逐对象的 \(CC\)、\(DD\)、\(CA\)、等级与排名,因此可以同时支持“系统总体结论”和“对象横向比较”两种写法。
  5. 双系统场景下支持乘积型和加权折中型两种合成模式,并显式保存 \(\alpha\)、\(W_1\)、\(W_2\) 等参数说明。

因此,这个模块更准确的定位是“支持单系统与双系统合成、带逐对象排名输出的协同度评价系统”。

10. 单篇终审补充

10.1 图题与表题对齐建议

  • 熵权法计算结果 表可写为:表X 协同度模型熵权计算结果表。
  • 原始数据 表可写为:表X 协同度模型原始数据表。
  • 标准化矩阵 表可写为:表X 协同度模型标准化矩阵表。
  • 指标权重 表可写为:表X 协同度模型指标权重表。
  • 有序度计算结果 表可写为:表X 协同度模型有序度计算结果表。
  • 子系统总体有序度 表可写为:表X 子系统总体有序度结果表。
  • 极差系数计算 表可写为:表X 协同度模型极差系数计算表。
  • 协同度-系统整体 表可写为:表X 协同度模型系统整体协同度表。
  • 协同度-逐对象 表可写为:表X 协同度模型逐对象协同度表。
  • 隶属度μ 表可写为:表X 协同度模型隶属度结果表。
  • 合成结果 表可写为:表X 双系统协同度合成结果表。
  • 参数说明 表可写为:表X 双系统协同度参数说明表。
  • weights_distribution.png 建议写为:图X 指标权重分布图。
  • ordered_degrees_distribution.png 建议写为:图X 有序度分布图。
  • coordination_level.png 建议写为:图X 协同等级分布图。
  • ordered_degrees_radar.png 建议写为:图X 有序度雷达图。

10.2 终审说明

  • 当前可直接作为终审证据的代表性结果目录可采用 具体的算法/xietongdu/results/results_20260329_163930。这一目录同时保留了双系统主结果、两个单系统结果、repro_inputs/repro_outputs/,证据链完整。
  • 单系统真实结果簿分别为 协同度_系统1_结果_20260329_163930.xlsx协同度_系统2_结果_20260329_163931.xlsx,其真实工作表一致,均为 熵权法计算结果/原始数据/标准化矩阵/指标权重/有序度计算结果/子系统总体有序度/极差系数计算/协同度-系统整体/协同度-逐对象/隶属度μ/计算说明
  • 双系统真实结果簿为 协同度_双系统合成结果_20260329_163932.xlsx,真实工作表为 系统1_隶属度μ/系统1_CCDDCA/系统2_隶属度μ/系统2_CCDDCA/合成结果/参数说明。论文若讨论双系统合成,不应只引用单系统工作表。
  • 当前真实图文件位于两套 results_时间戳/plots/ 子目录下,稳定图名为 weights_distribution.pngordered_degrees_distribution.pngcoordination_level.pngordered_degrees_radar.png。由于系统1和系统2都会各自产生一套同名图片,论文引用时应明确“对应系统1结果目录”或“对应系统2结果目录”,避免把两套图混为同一证据。
  • 当前复现脚本为 repro_template_20260329_163932.py,其中明确使用 DATA_FILE_SYS1 = 'repro_inputs/xietongdu_sys1_20260329_163932.xlsx'DATA_FILE_SYS2 = 'repro_inputs/xietongdu_sys2_20260329_163932.xlsx'。这篇文档可以把 repro_inputs/... 作为标准复现口径直接写入附录。

10.3 全量强化补充

  • 当前建议锁定的主证据目录为 具体的算法/xietongdu/results/results_20260329_163930。这一目录不是“单一工作簿结果”,而是同一次双系统分析打包出的复合结果目录,里面同时包含两份单系统结果簿、一份双系统合成结果簿、一套复现输入和一份复现脚本。
  • 单系统 1 的主结果簿是 具体的算法/xietongdu/results/results_20260329_163930/协同度_系统1_结果_20260329_163930.xlsx,单系统 2 的主结果簿是 具体的算法/xietongdu/results/results_20260329_163930/协同度_系统2_结果_20260329_163931.xlsx。两者当前实际工作表完全一致,均为 熵权法计算结果原始数据标准化矩阵指标权重有序度计算结果子系统总体有序度极差系数计算协同度-系统整体协同度-逐对象隶属度μ计算说明
  • 双系统合成主结果簿是 具体的算法/xietongdu/results/results_20260329_163930/协同度_双系统合成结果_20260329_163932.xlsx,当前实际工作表为 系统1_隶属度μ系统1_CCDDCA系统2_隶属度μ系统2_CCDDCA合成结果参数说明。因此论文若要讨论最终双系统排序或总协同度,应优先引用这一本,而不是把两份单系统结果簿拼接后自行解释。
  • 当前真实图文件并不在结果根目录,而是在两套内层目录中分别保存:系统 1 图位于 具体的算法/xietongdu/results/results_20260329_163930/results_20260329_163930/plots/,系统 2 图位于 具体的算法/xietongdu/results/results_20260329_163930/results_20260329_163931/plots/。两边都存在 weights_distribution.pngordered_degrees_distribution.pngcoordination_level.pngordered_degrees_radar.png,所以正文若引用图片,必须把“系统1/系统2”的路径前缀写出来,不能只写图名。
  • 当前复现链路是标准 repro_inputs/... 口径。脚本 具体的算法/xietongdu/results/results_20260329_163930/repro_template_20260329_163932.py 内部明确写入 DATA_FILE_SYS1 = 'repro_inputs/xietongdu_sys1_20260329_163932.xlsx'DATA_FILE_SYS2 = 'repro_inputs/xietongdu_sys2_20260329_163932.xlsx';对应输入副本实际位于 具体的算法/xietongdu/results/results_20260329_163930/repro_inputs/
  • 结果目录里还存在一份复现再生产物 具体的算法/xietongdu/results/results_20260329_163930/repro_outputs/协同度_双系统合成结果_20260329_163934.xlsx。写文档时应把它表述为“由复现脚本重新生成的输出”,不能把它和首层主结果簿 协同度_双系统合成结果_20260329_163932.xlsx 混写成同一次人工分析结果。

11. 软件实现核查补充(2026-07)

11.1 当前软件实现口径

本软件当前对应的源码目录为 具体的算法/xietongdu,核心计算类为 core/xietongdu_calculator.py 中的 XietongduCalculator。软件主流程是“双系统协同度分析”:分别上传系统 1 和系统 2 的指标数据,按两个系统各自的指标方向、权重方法和系统间权重计算单系统结果,再生成双系统合成结果。

需要特别区分两类口径:

  1. 单系统完整报告会保留系统整体协同度 CA_sys = mean(CC) / DD、逐对象 CC/DD/CA/等级/排名、隶属度和权重明细。
  2. 双系统合成结果以两个系统逐对象的 CCDD 为基础,按系统间权重混合后计算 CA_total,并按 CA_total 排名。

因此,若用户研究的是两个系统的综合协同状态,应优先解释 协同度_双系统合成结果_*.xlsx 中的 合成结果,不要只用某一个单系统报告代替最终结论。

11.2 输入数据和界面参数

数据上传页支持 Excel/CSV。当前样例文件位于:

  • uploads/samples/xietongdu_system1_sample.xlsx
  • uploads/samples/xietongdu_system1_sample.csv
  • uploads/samples/xietongdu_system2_sample.xlsx
  • uploads/samples/xietongdu_system2_sample.csv

每个系统数据表默认第 1 列为评价对象名称,后续列为数值型指标。系统 1 和系统 2 需要样本数量一致,且评价对象顺序一致;界面在确认上传时会检查两套对象名称是否对齐。

当前可见流程包括:选择系统1文件加载系统1示例选择系统2文件加载系统2示例数据预览确认,随后进入指标设置和方法设置。指标设置页按“系统1/系统2”分页,每个指标可选择 正向指标负向指标适中指标;适中指标会要求填写标准值。方法设置页中,标准化方式在界面说明中固定为 Min-Max,两个系统的权重方法分别支持 熵权法自定义权重。协同度合成方式支持:

  • 乘积型:CA = CC · (1-DD)
  • 加权和型:CA = α·CC + (1-α)·(1-DD),界面可设置 α
  • 系统间权重:W1W2,界面提供平均分配和归一化。

文档前文保留的 z-score 说明属于理论和历史兼容补充;当前主界面方法页明确提示标准化固定为 Min-Max,因此面向用户说明时应以当前界面为准。

11.3 输出结果和图表解释

一次双系统分析完成后,程序会在 results/results_YYYYMMDD_HHMMSS/ 下保存本次运行产物。当前结果页提供 打开结果目录打开结果文件导出复现代码重置并返回首页退出程序

双系统流程通常包含三类 Excel:

  • 协同度_系统1_结果_*.xlsx:系统 1 的单系统完整报告;
  • 协同度_系统2_结果_*.xlsx:系统 2 的单系统完整报告;
  • 协同度_双系统合成结果_*.xlsx:双系统合成主结果,也是“打开结果文件”的优先目标。

单系统完整报告常见工作表包括 熵权法计算结果原始数据标准化矩阵指标权重有序度计算结果子系统总体有序度极差系数计算协同度-系统整体协同度-逐对象隶属度μ计算说明。双系统合成主结果的工作表包括 系统1_隶属度μ系统1_CCDDCA系统2_隶属度μ系统2_CCDDCA合成结果参数说明

图表由单系统报告生成,常见文件在内层 plots/ 目录中,包括 weights_distribution.pngordered_degrees_distribution.pngcoordination_level.pngordered_degrees_radar.png。如果系统 1 和系统 2 都导出了单系统报告,会各有一套同名图,引用时必须写清楚对应系统。

11.4 复现和源码对应关系

当前结果页的复现代码由 ui/results_widget.py 生成。导出时会把输入数据复制或落盘到结果目录下的 repro_inputs/,脚本中使用 DATA_FILE_SYS1DATA_FILE_SYS2 等相对路径,并支持通过环境变量覆盖输入文件位置。复现脚本主要复跑核心算法和合成结果;单系统完整报告在脚本中作为可取消注释的附加输出存在,是否生成以本次脚本内容为准。

源码对应关系如下:

  • main.py:程序入口、软件插件路径、授权通过后进入主窗口、应用图标和字体设置。
  • core/xietongdu_calculator.py:数据读取、隶属度构造、熵权法、自定义权重、单系统和双系统协同度计算、Excel 与图表导出。
  • ui/upload_widget.py:系统 1/系统 2 文件选择、示例数据、对象一致性检查、数据预览。
  • ui/indicators_widget.py:两个系统的指标选择、正向/负向/适中类型和适中目标值设置。
  • ui/methods_widget.py:两个系统权重方法、合成方式、αW1/W2 设置。
  • ui/results_widget.py:执行计算、保存结果、打开结果、导出复现代码。
  • ui/weight_editor.py:自定义权重编辑与归一化。
  • utils/result_manager.pyutils/excel_handler.py:结果和 Excel 辅助处理。

11.5 适用边界和常见误读

协同度结果适合用于多指标评价对象之间的相对比较,不适合解释为绝对因果关系。权重方法、指标方向、适中目标值、系统间权重和合成方式都会影响最终排序;正式报告中应同时披露这些设置。

CA 越大表示在当前指标体系和参数设置下协同表现越好,但不代表所有指标都同时最优。若 CC 较高但 DD 也较高,说明平均有序水平较好但指标偏离或短板仍明显;若 合成结果 中两个对象的 CA_total 接近,应避免过度强调名次差异。