R语言使用灰色关联分析中国经济社会发展指标

灰色关联分析包括两个重要功能。

第一项功能:灰色关联度,与correlation系数相似,如果要评估某些单位,在使用此功能之前转置数据。第二个功能:灰色聚类,如层次聚类。 

由Kaizong Ye,Weilong Zhang撰写

灰色关联度有两种用法。该算法用于测量两个变量的相似性,就像`cor`一样。如果要评估某些单位,可以转置数据集。

首先,灰色关联度算法的核心功能在于测量两个变量之间的相似性。这一特性与 R 语言中的cor函数有着异曲同工之妙。cor函数在数据分析中是大家所熟知的用于计算变量间相关性的工具,它能以数值的形式直观地展现出两个变量之间线性相关的程度。

而灰色关联度算法同样致力于探寻变量之间的关联关系,只不过它的侧重点在于衡量变量变化趋势的相似性。

例如,在研究经济领域中不同行业的发展态势时,我们可以将某一行业的产值随时间的变化作为一个变量,另一个行业的利润随时间的变化作为另一个变量。通过灰色关联度算法,我们能够深入分析这两个变量在变化趋势上的相似程度。如果灰色关联度的值较高,那就意味着这两个行业在发展过程中可能受到某些共同因素的影响,或者它们的发展模式具有一定的相似性;反之,如果关联度较低,则说明它们的发展路径相对独立。


可下载资源


作者


本文分析的数据、代码、报告分享至会员群

*一种是检查两个变量的相关性,数据类型如下:

| 参考| v1 | v2 | v3 |
| ———– |||| —- | —- |
| 1.2 | 1.8 | 0.9 | 8.4 |
| 0.11 | 0.3 | 0.5 | 0.2 |
| 1.3 | 0.7 | 0.12 | 0.98 |
| 1.9 | 1.09 | 2.8 | 0.99 |

reference:参考变量,reference和v1之间的灰色关联度…近似地测量reference和v1的相似度。


*另一个是评估某些单位的好坏。

| 单位| v1 | v2 | v3 |
| ———– |||| —- | —- |
| 江苏| 1.8 | 0.9 | 8.4 |
| 浙江| 0.3 | 0.5 | 0.2 |
| 安徽 0.7 | 0.12 | 0.98 |
| 福建| 1.09 | 2.8 | 0.99 |


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

 示例


##生成数据
 
#' economyCompare = data.frame(refer, liaoning, shandong, jiangsu, zhejiang, fujian, guangdong)
 
#
  # 异常控制 #
  if (any(is.na(df))) stop("'df' have NA" )
  if (distingCoeff<0 | distingCoeff>1) stop("'distingCoeff' must be in range of [0,1]" )
  
diff = X  #设置差学列矩阵空间
  
  for (i in 
  mx = max(diff)

计算关联系数

 relations = (mi+distingCoeff*mx) / (diff + distingCoeff*mx)
  
  #计算关联度#
  # 暂时简单处理, 等权
  relDegree = rep(NA, nc)
  for (i in 1:nc) {
    relDegree[i] = mean(relations[,i])  # 等权
  }

排序: 按关联度大到小

 X_order = X[order(relDegree, 
  relDes = rep(NA, nc) #分配空间  关联关系描述(说明谁和谁的关联度)
  X_names = names(X_o
  names(relationalDegree) = relDes
  
  
  if (cluster) {
    
    greyRelDegree = GRA(economyC
    
      
    # 得到差异率矩阵 #
    grey_diff = matrix(0
        
        grey_diff[i,j] = abs(rel
    #得到距离矩阵#
    grey_dist = matrix(0, nrow
iff[i,j]+grey_diff[j,i]
      }
    }
    
    # 得到灰色相关系数矩阵 #
    grey_dist_max = max(grey_dist)
    grey_correl = matrix(0, nrow = nc, ncol = nc)
    for (i in 1:nc) {
      for (j in 1:nc) {
        grey_correl[i,j] = 1 - grey_dist[i,j] / grey_dist_max
      }
    }
    
 
    
    d = as.dist(1-grey_correl)  # 得到无对角线的下三角矩阵(数值意义反向了, 值越小表示越相关 )
    # 主对角线其实表示了各个对象的相近程度, 画图的时候, 相近的对象放在一起
    

系统聚类

 hc = hclust(d, method = clusterMethod)  # 系统聚类(分层聚类)函数, single: 单一连接(最短距离法/最近邻) 
    # hc$height, 是上面矩阵的对角元素升序
    # hc$order, 层次树图上横轴个体序号
    plot(hc,hang=-1)  #hang: 设置标签悬挂位置
    
  }
  
  #输出#
  
  if (cluster)  {
    lst = list(relationalDegree=relationalDegree, 
  
  return(lst)
  
}
```
```{r}
## 生成数据
rownames(economyCompare) = c("indGV", "indVA", "profit", "incomeTax")
## 灰色关联度
greyRelDegree = greya(economyCompare)
greyRelDegree
```

R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断

阅读文章


灰色关联度 

灰色聚类,如层次聚类 


随时关注您喜欢的主题


 ## 灰色聚类 greya(economyCompare, cluster = T) 


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498