权重分析——熵权法

权重分析利用信息熵法确定问卷调查指标的重要性。信息熵值越小,指标权重越大。输入包括正向和负向定量变量,经过归一化处理和计算信息熵冗余度,得出各指标权重,用于多指标综合评价。例如,在6个科室的8项考核指标权重分析中,此方法能有效分配各项占比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、作用

权重分析是通过熵权法对问卷调查的指标的重要性进行权重输出,根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重)就越大,如果某项指标的值全部相等,则该指标在综合评价中不起作用。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。

2、输入输出描述

输入:至少两项或以上的定量变量(正向指标与负向指标),一般要求数据为量表量数据
输出:输入定量变量对应的权重值

3、案例示例

比如对拥有的6个科室的8项考核指标进行权重分析,得到各个考核指标的权重占比。

4、建模步骤

熵是信息论中的概念,是对不确定性的一种度量。信息量越大,不确定性越小,熵就越小;信息量越小,不确定性越大,熵也越大。根据信息熵的定义,对于某项指标可用熵值来判断某个指标的离散 程度,其熵值越小,指标的离散程度越大,该指标对综合评价的影响(即权重)也越大。
1.对各个元素按照每个选项的数量进行归一化处理为:
对于正向指标:


对于负向指标:

第 i 个元素素的第 j 个选项的比例 yij 为:

上式中:m 为考虑的元素的个数。

2.第j个选项的信息熵为:

其中K=1/ln m,K为常数。

第j个选项的信息熵冗余度为:d_{j}=1-e_{j}
3.各项指标权值为:

### 结合CRITIC权重法和熵权法进行多准则决策分析 #### CRITIC权重法概述 CRITIC (Criteria Importance Through Inter-criteria Correlation) 方法是一种基于标准间差异性和冲突性的客观赋权方法。此方法考虑了不同属性之间的关联度以及对比强度来确定各个属性的重要性程度。 #### 熵权法概述 熵权法则依据信息论中的熵概念,用来衡量系统的无序化程度。在多目标决策领域内,它被广泛应用于评估各评价指标所含有的有用信息量,并据此赋予相应的权重值。当某个特定指标下的方案取值越接近,则说明该指标提供的区分能力较弱;反之则较强[^1]。 #### 组合法实施步骤 为了更好地融合这两种方法的优点,在实际应用过程中可以采取如下方式: - **数据标准化** 对原始矩阵 \(X\) 进行极差变换或其他适当的方法使其数值范围统一,消除因单位不一致带来的偏差。 ```python import numpy as np def normalize_data(X): min_vals = X.min(axis=0) max_vals = X.max(axis=0) ranges = max_vals - min_vals norm_X = (X - min_vals) / ranges return norm_X, ranges, min_vals ``` - **计算熵值** 计算每个指标对应的概率分布并由此得出其熵值\(E_j\), 表达式为: \[ E_{j}=-k \sum P_{ij}\ln(P_{ij}) \] 其中 \(P_{ij}=x'_{ij}/\sum^{m}_{i=1}(x'_{ij})\); k 是常数项 (\(k=\frac{1}{\ln(m)}\)). ```python from math import log def calculate_entropy(norm_X): m, n = norm_X.shape entropy_values = [] for j in range(n): p_ij_sum = sum([norm_X[i][j] for i in range(m)]) e_j = 0 for i in range(m): if norm_X[i][j]!=0: pij = norm_X[i][j]/p_ij_sum try: ln_pij = log(pij) except ValueError: continue e_j += pij * ln_pij entropy_values.append(-e_j*log(e_j)) return entropy_values ``` - **确定冗余度与冲突性** 使用皮尔逊相关系数测量任意两个变量间的线性关系强弱作为冗余度D; 同时定义冲突性C表示两列向量之间变化趋势相反的程度。 \[ D_{jk}=\rho(x'_j,x'_k)=\frac{\operatorname {cov}(x'_j , x'_k ) } {\sigma _{j }\cdot \sigma _{k }} \] \[ C_{j}=\sum ^n_{k=1}|S_{jk}-D_{jk}| \] 这里 S代表的是绝对的相关性(|ρ|). ```python import pandas as pd def compute_conflict_and_redundancy(norm_X): corr_matrix = abs(pd.DataFrame(norm_X).corr().values) conflict_scores = [] redundancy_scores = [] num_cols = len(corr_matrix[0]) for col_index in range(num_cols): s_row = [abs(val) for val in corr_matrix[col_index]] d_row = list(corr_matrix[col_index]) c_score = sum(abs(s_val-d_val) for s_val,d_val in zip(s_row,d_row)) r_score = sum(d_row)-d_row[col_index] conflict_scores.append(c_score/(num_cols-1)) redundancy_scores.append(r_score/(num_cols-1)) return conflict_scores,redundancy_scores ``` - **综合评分及权重分配** 将上述所得的结果结合起来形成最终的加权因子W: \[ W_j=(1-E_j)\times C_j \] 再经过归一化处理即可获得所需的组合权重向量w*. ```python def combine_weights(entropy_values,conflict_scores): combined_weight = [(1-e)*c for e,c in zip(entropy_values,conflict_scores)] total_combined_weight=sum(combined_weight) normalized_combined_weight=[cw/total_combined_weight for cw in combined_weight] return normalized_combined_weight ``` 通过这种方式能够充分利用两种算法的优势——既考虑到数据本身的离散特性又兼顾到了特征间的相互作用效应,从而提高了模型对于复杂环境适应能力和准确性[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值