R 实战综合指数评价法示例教程

本文介绍综合指数法的含义,并通过示例来说明其计算过程,并给出R实现代码。

综合指数法的含义

综合指数法是指用实际值与标准值进行对比后再使用线性综合汇总得到综合评价分值的方法。
鉴于对被评价对象的整体性评价是通过多项指标的差异来进行的。差异有绝对差异和相对差异之分,而相对差异可用指标的个体指数来反映,因此便产生了综合指数评价法。

这种方法的基本思路为:首先选择确定各指标的评价标准;然后把指标的实际值与评价标准值之间进行比较得到各个指标的个体指数;最后将计算得到的各指标个体指数加权平均得到综合评价指数。其一般计算公式为:
在这里插入图片描述

z :被评价对象获得的综合指数;
xi : 第i项指标的实际值;
xi0:第i项指标的评价标准;
p : 评价指标的个数;
w : 评价指标的权重;

在实践中,评价标准xi0有多种选择。纵向对比时可以确定为基础水平或历史最好水平;横向比较时可以是同类被评价对象的最好水平或评价水平。

示例

下面用综合指数方法对我国各地区乡镇企业经济效益情况进行综合评价。

我们搜集得到的我国28个省、自治区、直辖市(海南、西藏缺数据,未参加评价)的6项关于中小企业经济效益指标的数据。
考虑到数据的支持,选取以下6项指标进行评价:
X1 : 每百元固定资产原值实现利润(元);
x2 : 每百元资金实现利税(元) ;
x3 : 每百元总收入实现利润(元) ;
x4 : 每百元固定资产实现总收入( 元) ;
X5 : 每百元总收入占用流动资金(元);
x6 : 人均创造总收入(万元)。

我们选择评价标准值为全国平均水平。因此需要计算每个效益指标的均值。

由于x5每百元总收入占用流动资金是一个逆向指标,故用其倒数将其正向化。

计算过程如下:

  1. 读取数据
  2. 计算每个指标均值
  3. 计算每个评价对象的综合指数
  4. 已经综合指数进行排名

下面首先加载数据。读者可以在这里下载示例数据。

读取数据

options(digits=4)
library(tidyverse)
data <- tibble(read.csv("data/data2.csv"))

names(data) <- c("loc","x1","x2","x3","x4","x5","x6")
head(data)

#   loc       x1    x2    x3    x4    x5    x6
#   <chr>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 北京    24.0  21.2  8.73  274.  33.0 32   
# 2 天津    25.0  22.3  8.89  281.  34.7  1.15
# 3 河北    30.4  22.8 12.4   245.  26.8  0.71
# 4 山西    18.8  18.8 11.7   161.  29.6  0.56
# 5 内蒙古  13.4  11.5  7.36  183.  39.3  0.53
# 6 辽宁    21.4  18.0  7.42  289.  36.9  1.04

计算指标均值

## 计算列平均值
data %>% mutate(x5=1/x5) -> data

data %>%
  summarise(across(where(is.numeric),  mean, na.rm = TRUE)) -> mv
mv

#      x1    x2    x3    x4     x5    x6
#   <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl>
# 1  16.1  15.2  7.13  231. 0.0332  1.83

综合指数

这里没有考虑权重,直接利用每个评价对象的多个指标实际值之和与标准值之和的比。最后为我们乘以100,则实际大于100表示高于平均水平。

## 计算综合指数函数
indsum <- function(x, y){
  
  (sum(x)/sum(y))*100
}

## 按行计算每个评价对象的综合指数
## 最后按综合指数倒序排序

data %>% rowwise() %>%
  mutate(z=indsum(c_across(2:7), mv)) %>%
  arrange(-z)

完整R代码

最后我们通过ggplot画出指数排名。

options(digits=4)
library(tidyverse)
library(scales)

data <- tibble(read.csv("data/data2.csv"))

names(data) <- c("loc","x1","x2","x3","x4","x5","x6")
head(data)

## 计算列平均值
data %>% mutate(x5=1/x5) -> data

data %>%
  summarise(across(where(is.numeric),  mean, na.rm = TRUE)) -> mv
mv

#      x1    x2    x3    x4     x5    x6
#   <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl>
# 1  16.1  15.2  7.13  231. 0.0332  1.83

## 计算综合指数函数
indsum <- function(x, y){
  
  (sum(x)/sum(y))*100
}

## 按行计算每个评价对象的综合指数
## 最后按综合指数倒序排序

data %>% rowwise() %>%
  mutate(z=indsum(c_across(2:7), mv)) %>%
  arrange(-z) -> data

## 前10名评价对象
#    loc      x1    x2    x3    x4     x5    x6     z
#    <chr> <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl> <dbl>
#  1 浙江   11.6  12.6  3.36  346. 0.0228  1.18  138.
#  2 江苏   10.3  10.8  3.03  340. 0.0238  1.11  134.
#  3 北京   24.0  21.2  8.73  274. 0.0303    32  133.
#  4 天津   25.0  22.3  8.89  281. 0.0288  1.15  125.
#  5 辽宁   21.4  18.0  7.42  289. 0.0271  1.04  124.
#  6 上海   13.0  13.8  4.45  291. 0.0233  1.54  119.
#  7 福建   20.8  20.2  7.69  271. 0.0438  0.7   118.
#  8 河北   30.4  22.8 12.4   245. 0.0373  0.71  115.
#  9 山东   20.3  14.8  7.86  258. 0.0265  0.89  111.
# 10 吉林   21.5  19.1  8.64  249. 0.0365  0.78  110.

ggplot(data, aes(x=reorder(loc,-z), y=z, group =1)) + 
  geom_point() + geom_line() +
  ggtitle("中小企业经济效益指标") +
  ylab("综合指数") +
  xlab("评价对象") +
  theme(plot.title = element_text(hjust = 0.5)) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))

在这里插入图片描述

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值