14  系统评价

14.1 耦合协调度

耦合协调度,是分析事物协调发展水平的重要工具。其中,耦合度反映两个或多个系统间的相互作用与影响,体现系统间协调发展的动态关联关系,能够量化系统间的相互依赖与制约程度;协调度则衡量耦合关系中良性耦合的程度,反映协调状况的优劣。

在经济地理学研究中,耦合协调度模型应用广泛。该学科主要关注由多个子系统(如产业系统、技术创新系统、社会文化系统、生态环境系统等)构成的区域经济复杂系统。因此,该模型成为分析区域经济系统中不同子系统间关联性、协同性、协调性及其对区域经济发展影响的常用方法。

然而,区域经济中多系统间的耦合协调关系往往难以通过耦合协调度模型简单揭示。该模型仅能从宏观层面反映区域经济系统中不同子系统间的耦合协调程度,存在明显局限性:既无法深入分析各子系统内部的结构、功能和动力机制,也难以充分考虑多系统间的非线性关系、反馈机制和时滞效应等复杂因素。特别是在缺乏对两系统间关系明确认知的情况下,仅通过简单分析其共同发展态势难以获得深刻洞察,需要结合实际情况辩证运用这一方法。建议借助理论分析,深化系统间关系的机理阐释与理论模型构建。

耦合协调度共涉及 3 个指标值的计算,分别是耦合度 \(C\) 值,协调指数 \(T\) 值,耦合协调度 \(D\) 值。并且最终结合耦合协调度 \(D\) 值和协调等级划分标准,最终得出各项的耦合协调程度。

14.1.1 耦合度

耦合度的概念源自物理学,用来描述两个或多个系统之间的相互作用与关联性。在社会经济领域,耦合度被用来评估诸如基础设施与公共服务、经济发展与环境保护等不同系统之间的相互影响。

简单来说,耦合度越高,意味着两个系统之间的互动越强,彼此的促进作用越明显。例如,当农村基础设施的改善带动了公共服务水平的提升,反过来,公共服务的提高又促进了基础设施的进一步完善,这样的互动关系就会表现为一个较高的耦合度。

耦合度指两个或两个以上系统之间的相互作用影响,实现协调发展的动态关联关系,可以反映系统之间的相互依赖相互制约程度。\(n\) 个系统相互作用耦合度可以定义为: \[ C_n = \frac{(u_1u_2\cdots u_n)^{1/n}}{(u_1+u_2+\cdots+u_n)/n} \]

其中,\(u_i\) 为第 \(i\) 个子系统的标准化值,其分布区间为 \([0,1]\)\(C\) 值越大,子系统间离散程度越小,耦合度越高;反之,子系统间耦合度越低。

耦合度区间 耦合程度
[0, 0.3) 低度耦合
[0.3, 0.6) 中低度耦合
[0.6, 0.8) 中高度耦合
[0.8, 1.0] 高度耦合

耦合度取决于多个系统的发展程度及其相互关系。比如,当两个系统都发展得很好且相互促进时,耦合度接近于 \(1\);反之,当两个系统中有一个发展滞后或彼此关联性弱时,耦合度会很低。

文献[王淑佳, 孔伟 等. 国内耦合协调度模型的误区及修正[J]. 自然资源学报, 2021, 36(3): 793-810.],发现传统耦合度计算公式得到的 \(C\) 值在 \([0,1]\) 区间中的分布概率并不均等,而是大概率偏向于 \(1\) 一端,并提出了修正公式: \[ C = \sqrt{\left[1-\frac{\sum_{i>j,j=1}^n |U_i-U_j|}{\sum_{m=1}^{n-1}m}\right]\times\left(\prod_{i=1}^n\frac{U_i}{\max U_i}\right)^{\frac{1}{n-1}}} \]

这样修正的 \(C\) 值将尽可能分散分布于 \([0, 1]\), 加大了区分度,从而在社科领域具有更高效度;进一步计算出来的协调发展度可以更合理地代表耦合协调关系与发展水平的测度。

14.1.2 协调指数

协调指数,是各子系统标准化值的加权综合得分,反映系统整体的协调发展程度。其计算公式为: \[ T = \sum_{i=1}^n w_i u_i \] 其中,\(w_i\) 为各子系统的权重,满足 \(\sum\limits_{i=1}^n w_i = 1\)

14.1.3 耦合协调度

耦合度虽然能够反映系统间的互动强度,但无法全面描述系统的整体发展状况。因此,协调度模型应运而生。该模型不仅考量系统间的相互作用,更关注其是否实现和谐发展。

耦合协调度,是综合耦合度与协调指数的复合指标,定义为二者的几何平均: \[ D = \sqrt{C T} \]

耦合协调度的取值范围为 \([0,1]\)\(D\) 值越高,耦合协调程度越高,两系统发展越协调,反之亦然。

协调度区间 表示的意义
[0, 0.1) 极度失调衰退类
[0.1, 0.2) 严重失调衰退类
[0.2, 0.3) 中度失调衰退类
[0.3, 0.4) 轻度失调衰退类
[0.4, 0.5) 濒临失调衰退类
[0.5, 0.6) 勉强协调发展类
[0.6, 0.7) 初级协调发展类
[0.7, 0.8) 中级协调发展类
[0.8, 0.9) 良好协调发展类
[0.9, 1] 优质协调发展类

mathmodels 包提供了 coupling_degree() 函数计算耦合协调度,基本语法:

coupling_degree(data, w = NULL, id_cols = NULL, type = "standard")
  • data 为已归一化的各子系统得分的数据框,可以包含不参与计算的 id_cols
  • w 为各系统的权重,默认为 NULL 表示等权重;
  • id_cols 不参与计算的列名向量,默认为 NULL
  • type 指定耦合度的计算公式,可选 "standard"(传统公式)和 "adjusted"(修正公式)。

返回 tibble 包含 ID (若提供 id_cols),coupling(耦合度)、coord(协调指数)、coupling_coord(耦合协调度)。

14.2 障碍度

障碍度模型,旨在评估各指标或因素对系统协调发展的制约程度,识别影响协调水平提升的关键瓶颈。该模型常与耦合协调度模型结合使用,用于诊断协调水平偏低的内在原因,具有较强的解释力和实践指导价值。例如,在区域经济发展研究中,可通过障碍度分析判断经济活力不足、协调机制缺失,还是绿色发展滞后等因素构成主要制约。

作为耦合协调度模型的有益补充,障碍度模型有助于深入揭示系统内部的非均衡问题,为制定精准化、针对性的优化策略提供科学依据。

障碍度模型包含三个关键概念,用于识别制约系统协调发展的主要因素:

  • 指标贡献度:反映各指标对系统整体发展目标(如协调发展)的影响程度。通常由其权重体现,权重越高,表明该指标在系统中的作用越重要。例如,GDP 增长可能在经济子系统中具有较高的贡献度。

  • 指标偏差度:衡量指标实际表现与其理想状态之间的差距。标准化值越低(接近0),表示实际水平与目标差距越大,偏差度越高。例如,若环境保护水平显著低于预期目标,则其偏差度较大。

  • 障碍度:综合考虑指标的权重(贡献度)与理想值的偏离程度(偏差度),量化其对系统协调发展的阻碍作用。障碍度越高,说明该指标是制约系统协调的关键瓶颈。

这些概念有助于研究者识别优先改进的领域,广泛应用于政策评估、区域规划与可持续发展分析。

障碍度模型通常基于多层级指标体系。设有 \(m\) 个一级指标,第 \(j\) 个一级指标下包含 \(m_j\) 个二级指标(注意:各一级指标下的二级指标数量可不同)。障碍度计算步骤如下:

  • 二级指标 \(j\) 在一级指标 \(i\) 下的障碍度,定义为如下的加权偏差: \[ O_{ij} = (1 - X_{ij}) \cdot w_j \] 其中:
    • \(X_{ij} \in [0,1]\) 是第 \(ij\)个指标的标准化值(且已正向化处理);
    • \(w_j\) 是该指标的权重,通常通过熵权法、PCA 法或 AHP 等方法确定;
    • \((1 - X_{ij})\) 表示该指标与理想状态的偏离程度。

⚠️ 说明:障碍度本身是相对值,用于比较各指标的阻碍作用大小,一般不做行归一化,通过比较其数值大小判断影响程度。

若要做行归一化,计算公式为: \[ O_{ij} = \frac{(1-X_{ij})\cdot w_j}{\sum_{j=1}^m(1-X_{ij})\cdot w_j} \]

  • 一级指标 \(i\) 的总体障碍度\[ U_i = \sum_{j=1}^{m_i} O_{ij} \] 即该一级指标下所有二级指标障碍度的加总,用于评估该子系统对整体协调发展的阻碍程度。

最终,可根据 \(O_{ij}\)\(U_i\) 的大小排序,识别出最主要的障碍因素。

mathmodels 包提供了 obstacle_degree() 函数计算障碍度,基本语法:

obstacle_degree(data, w = NULL, id_cols = NULL, scaled = FALSE)

参数同 coupling_degree() 函数,scaled 设置是否对障碍度做行归一化,默认为 FALSE。为了便于批量计算,该函数设计为只计算二级指标障碍度 \(O_{ij}\),想进一步计算一级指标障碍度 \(U_i\),在外面接着使用 summarise(..., .by) 即可。

14.3 案例:耦合协调度、障碍度

加载包:

library(tidyverse)
library(mathmodels)

使用模拟数据:中国东部沿海地区 8 个省市“科技-经济-生态”系统协调发展研究(2015–2024年)

  • 科技创新子系统:R_D投入强度, 高新技术企业数, 专利授权量
  • 经济发展子系统:GDP总量, 人均可支配收入, 产业结构高级化
  • 生态环境子系统:空气质量优良率, 单位GDP能耗, 绿地覆盖率
cdev = read_csv("data/cdev-sim.csv")
cdev
# A tibble: 80 × 11
   地区   年份 R_D投入强度 高新技术企业数 专利授权量 GDP总量 人均可支配收入
   <chr> <dbl>       <dbl>          <dbl>      <dbl>   <dbl>          <dbl>
 1 上海   2015        3.9            8820       17.7   26881          42655
 2 上海   2016        4.44           9551       18     29300          44731
 3 上海   2017        4.53          10000       20.9   31255          47753
 4 上海   2018        4.44          10406       23.3   33185          50151
 5 上海   2019        4.66          11044       24.3   34222          52690
 6 上海   2020        5.07          11561       26.8   36722          54781
 7 上海   2021        4.78          12146       29.8   38388          57669
 8 上海   2022        5.67          12769       30.9   40910          59499
 9 上海   2023        5.53          13561       33.8   42373          62583
10 上海   2024        5.15          14016       35.7   44758          65044
# ℹ 70 more rows
# ℹ 4 more variables: 产业结构高级化 <dbl>, 空气质量优良率 <dbl>,
#   单位GDP能耗 <dbl>, 绿地覆盖率 <dbl>

14.3.1 分别综合评价每个子系统

  • 用熵权法分别综合评价每个子系统
tech = entropy_weight(cdev[3:5], rep("+",3))
eco = entropy_weight(cdev[6:8], rep("+",3))
env = entropy_weight(cdev[9:11], c("+","-","+"))
  • 查看指标权重
rlt = list(tech, eco, env)
map(rlt, "w") |> unlist()
   R_D投入强度 高新技术企业数     专利授权量        GDP总量 人均可支配收入 
     0.3215465      0.3414780      0.3369755      0.3098166      0.2481369 
产业结构高级化 空气质量优良率    单位GDP能耗     绿地覆盖率 
     0.4420465      0.3934835      0.3515999      0.2549167 
  • 计算三个子系统的综合得分
S = map_dfc(rlt, "s") |> 
  set_names("科技", "经济", "生态")
S = bind_cols(cdev[1:2], S)
S
# A tibble: 80 × 5
   地区   年份  科技  经济  生态
   <chr> <dbl> <dbl> <dbl> <dbl>
 1 上海   2015  36.2  50.2  40.6
 2 上海   2016  41.9  52.7  42.2
 3 上海   2017  45.1  57.9  46.4
 4 上海   2018  46.4  60.7  55.4
 5 上海   2019  49.8  62.9  58.7
 6 上海   2020  55.4  65.8  61.3
 7 上海   2021  55.9  71.1  68.0
 8 上海   2022  64.5  72.8  76.1
 9 上海   2023  66.5  75.2  80.1
10 上海   2024  65.4  77.3  79.8
# ℹ 70 more rows

14.3.2 批量计算耦合协调度

  • 归一化子系统得分
S = S |> 
  mutate(across(3:5, rescale))
  • 用熵权法计算指标权重,注意指标已经归一化
w = entropy_weight(S[3:5], rep(NA, 3))$w
w
     科技      经济      生态 
0.3898977 0.2839915 0.3261108 
  • 按年份分组,分别计算耦合协调度
S |> 
  nest(.by = 年份) |> 
  mutate(model = map(data, 
                     \(d) coupling_degree(d, w, id_cols = "地区"))) |> 
  select(-data) |> 
  unnest(model)
# A tibble: 80 × 5
    年份 地区  coupling  coord coupling_coord
   <dbl> <chr>    <dbl>  <dbl>          <dbl>
 1  2015 上海  0.965    0.453         0.661  
 2  2015 北京  0.953    0.437         0.646  
 3  2015 天津  0.00201  0.0255        0.00715
 4  2015 山东  0.00106  0.0845        0.00946
 5  2015 广东  0.987    0.353         0.591  
 6  2015 江苏  0.786    0.188         0.385  
 7  2015 浙江  0.951    0.298         0.532  
 8  2015 福建  0.000820 0.248         0.0143 
 9  2016 上海  0.970    0.496         0.694  
10  2016 北京  0.971    0.500         0.697  
# ℹ 70 more rows

14.3.3 批量计算障碍度

  • 使用前面计算出的熵权法权重,按年份分组,分别计算二级指标障碍度
res = S |> 
  nest(.by = 年份) |> 
  mutate(model = map(data, 
                     \(d) obstacle_degree(d, w, id_cols = "地区"))) |> 
  select(-data) |> 
  unnest(model)
res
# A tibble: 80 × 5
    年份 地区   科技   经济  生态
   <dbl> <chr> <dbl>  <dbl> <dbl>
 1  2015 上海  0.238 0.0997 0.209
 2  2015 北京  0.238 0.100  0.224
 3  2015 天津  0.381 0.284  0.310
 4  2015 山东  0.374 0.216  0.326
 5  2015 广东  0.227 0.185  0.235
 6  2015 江苏  0.310 0.193  0.309
 7  2015 浙江  0.309 0.209  0.184
 8  2015 福建  0.390 0.240  0.122
 9  2016 上海  0.211 0.0907 0.202
10  2016 北京  0.204 0.0919 0.204
# ℹ 70 more rows
  • 若要查看每年 科技 前三大的障碍度
res |> 
  slice_max(科技, n = 3, by = 年份)
# A tibble: 30 × 5
    年份 地区   科技  经济   生态
   <dbl> <chr> <dbl> <dbl>  <dbl>
 1  2015 福建  0.390 0.240 0.122 
 2  2015 天津  0.381 0.284 0.310 
 3  2015 山东  0.374 0.216 0.326 
 4  2016 天津  0.379 0.278 0.306 
 5  2016 福建  0.374 0.238 0.112 
 6  2016 山东  0.355 0.203 0.310 
 7  2017 天津  0.380 0.271 0.288 
 8  2017 山东  0.363 0.190 0.299 
 9  2017 福建  0.338 0.222 0.0957
10  2018 天津  0.356 0.267 0.266 
# ℹ 20 more rows
  • 若要查看每个子系统前三大的障碍度,先宽变长
res |> 
  pivot_longer(科技:生态, names_to = "子系统", values_to = "障碍度") |> 
  slice_max(障碍度, n = 3, by = c(年份, 子系统))
# A tibble: 90 × 4
    年份 地区  子系统 障碍度
   <dbl> <chr> <chr>   <dbl>
 1  2015 福建  科技    0.390
 2  2015 天津  科技    0.381
 3  2015 山东  科技    0.374
 4  2015 天津  经济    0.284
 5  2015 福建  经济    0.240
 6  2015 山东  经济    0.216
 7  2015 山东  生态    0.326
 8  2015 天津  生态    0.310
 9  2015 江苏  生态    0.309
10  2016 天津  科技    0.379
# ℹ 80 more rows
  • 批量计算一级指标障碍度 \(U_i\),即按年份分组汇总列和
res |> 
  summarise(across(科技:生态, sum), .by = 年份)
# A tibble: 10 × 4
    年份  科技  经济  生态
   <dbl> <dbl> <dbl> <dbl>
 1  2015  2.47 1.53  1.92 
 2  2016  2.24 1.45  1.82 
 3  2017  2.18 1.35  1.66 
 4  2018  2.01 1.26  1.53 
 5  2019  1.87 1.17  1.43 
 6  2020  1.75 1.09  1.31 
 7  2021  1.61 0.996 1.17 
 8  2022  1.47 0.914 0.981
 9  2023  1.38 0.825 0.933
10  2024  1.31 0.737 0.804