统计学的Python实现-016:变异系数

作者:长行

时间:2019.03.15

统计学解释

变异系数:变异系数(coefficient of variation),又称离散系数,是一个衡量数据离散程度的、没有量纲的统计量。其值为标准差与平均值之比。

变异系数的计算公式为:
C V = σ μ CV=\frac{\sigma}{\mu} CV=μσ
其中 σ \sigma σ为标准差, μ \mu μ为均值。

代码实现

import numpy
def coefficient_of_variation(data):
    mean=numpy.mean(data) #计算平均值
    std=numpy.std(data,ddof=0) #计算标准差
    cv=std/mean
    return cv
data_test_1=[1,2,3,4,5,6,7]
data_test_2=[1,1,1,4,7,7,7]
print('CV_1',coefficient_of_variation(data_test_1))
print('CV_2',coefficient_of_variation(data_test_2))

结果

CV_1 0.5
CV_2 0.6943650748294136

实际应用

变异系数通常用来比较两组量纲差异明显的数据的离散程度,例如两个粉丝数差距显著的社交媒体账号推文点赞数的离散程度。

变异系数法是一种多属性决策分析方法,用于确定各决策因素的权重。它与CRITIC权重法类似,也是基于主观判断和专家意见,但是它不需要构建判断矩阵,而是直接对各指标的变异程度进行评估,从而计算出权重。 其步骤如下: 1. 确定决策因素及其指标。 2. 对各指标进行归一化处理。 3. 计算各指标的变异系数,即标准差除以平均值。 4. 根据变异系数计算各指标的权重。 变异系数法适用于各指标之间的相关性较小的情况,但是在指标之间存在显著相关性的情况下,其结果可能会失真。 以下是使用Python实现变异系数法的示例代码: ```python import numpy as np # 构建决策矩阵,这里以三个决策因素为例,每个因素有三个指标 decision_matrix = np.array([ [10, 15, 20], [5, 10, 15], [20, 25, 30] ]) # 归一化决策矩阵 normalized_matrix = np.zeros_like(decision_matrix) for i in range(decision_matrix.shape[0]): sum_of_row = np.sum(decision_matrix[i]) for j in range(decision_matrix.shape[1]): normalized_matrix[i][j] = decision_matrix[i][j] / sum_of_row # 计算变异系数 std_dev = np.std(normalized_matrix, axis=0) mean = np.mean(normalized_matrix, axis=0) variation_coefficient = std_dev / mean # 计算权重 weight_vector = variation_coefficient / np.sum(variation_coefficient) print("决策因素的权重为:", weight_vector) ``` 这段代码中,首先构建了一个决策矩阵`decision_matrix`,然后对其进行归一化,得到`normalized_matrix`。 接着,使用`np.std`和`np.mean`函数分别计算出各指标的标准差和平均值,从而得到变异系数`variation_coefficient`。 最后,通过`variation_coefficient`计算出各指标的权重向量`weight_vector`即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

长行

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

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

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

打赏作者

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

抵扣说明:

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

余额充值