楼主: huangqidong1987
36585 65

灰色聚类及其R实现(人大经济论坛数据处理与分析中心实习作业)   [推广有奖]

61
屋檐滴语 发表于 2019-5-21 21:59:55
非常清楚,谢谢楼主无私奉献。

62
yangming98 发表于 2019-5-21 22:12:43 来自手机
huangqidong1987 发表于 2010-8-5 09:27
灰色聚类法是灰色系统一个重要应用分支之一。灰色系统最大的优势就在于其克服统计概率统计的弱点,从杂乱无 ...
学习一下

63
屋檐滴语 发表于 2019-5-27 19:12:18
计算关联度部分的代码是否有瑕疵啊max(data)是否改为max(data[,j],min(data)改为min(data[,j])?

64
屋檐滴语 发表于 2019-5-27 19:49:45
  1. ---
  2. title: "灰色聚类及其R实现"
  3. author: "屋檐滴语"
  4. date: "2019/5/27"
  5. documentclass: ctexart
  6. output:
  7.   rticles::ctex:
  8.     fig_caption: yes
  9.     number_sections: yes
  10.     toc: yes
  11. classoption: "hyperref,"
  12. ---

  13. # 载入数据

  14. ```{r warning=FALSE, message=FALSE}
  15. library(readxl)
  16. data = read_xlsx("~/mydata/grey.xlsx", col_names = FALSE)
  17. data = as.matrix(data)
  18. rownames(data) = c("辽宁","山东","江苏","浙江","福建","广东")
  19. colnames(data) = c("人均工业总产值","人均工业增加值","人均利润","人均所得税")
  20. print(data)
  21. ```

  22. # 人均利润变正

  23. ```{r}
  24. data[,3] = data[,3] + 34
  25. print(data)
  26. ```

  27. # 线性变换

  28. ```{r}
  29. for(j in 1:4){
  30.   data[,j] = data[,j] / max(data[,j])
  31. }

  32. print(data)
  33. ```

  34. # 计算离差

  35. ```{r}
  36. for(j in 1:4){
  37.   data[,j] =  max(data[,j]) - data[,j]
  38. }

  39. print(data)
  40. ```

  41. # 计算关联系数和关联度

  42. ```{r}
  43. data_gl = matrix(0, nrow = 6, ncol = 4)

  44. for(i in 1:6)
  45. for(j in 1:4)
  46.   {
  47.     data_gl[i,j] = ((max(data[,j]) - min(data[,j]))*0.5)/
  48.       ((max(data[,j]) - min(data[,j])) * 0.5 + data[i,j] - min(data[,j]))
  49.   }

  50. rownames(data_gl) = c("辽宁","山东","江苏","浙江","福建","广东")
  51. colnames(data_gl) = c("人均工业总产值","人均工业增加值","人均利润","人均所得税")

  52. data_relation = matrix(0, nrow = 6, ncol = 1)

  53. for(k in 1:6){
  54.   data_relation[k,1] = sum(data_gl[k,])/4
  55. }

  56. colnames(data_relation) = c("关联度")  
  57. data_cluster = cbind(data_gl, data_relation)

  58. print(data_cluster)
  59. ```

  60. # 计算灰色聚类

  61. ```{r}
  62. data_grey = matrix(0, nrow=length(data_relation), ncol=length(data_relation))
  63. data_sort = sort(as.numeric(data_relation), decreasing=T)

  64. for(i in 1:6)
  65. for(j in 1:6)
  66. {
  67. data_grey[i,j]<-(abs(data_sort[i]-data_sort[j])/data_sort[j])
  68. }

  69. data_grey_Ds<-matrix(0,nrow=length(data_relation),ncol=length(data_relation))

  70. for(i in 1:6)
  71. for(j in 1:6)
  72. {
  73. data_grey_Ds[i,j]<-data_grey[i,j]+data_grey[j,i]
  74. }

  75. data_grey_Rg<-matrix(0,nrow=length(data_relation),ncol=length(data_relation))

  76. data_max<-max(data_grey_Ds)

  77. for(i in 1:6)
  78. for(j in 1:6)
  79. {
  80. data_grey_Rg[i,j]<-1-data_grey_Ds[i,j]/data_max
  81. }

  82. rownames(data_grey_Rg)<-c("广东","山东","辽宁","浙江","江苏","福建")
  83. colnames(data_grey_Rg)<-c("广东","山东","辽宁","浙江","江苏","福建")
  84. ```

  85. # 画出系谱图

  86. ```{r warning=FALSE, message=FALSE}
  87. d<-as.dist(1-data_grey_Rg)
  88. hc<-hclust(d,"single")
  89. plot(hc,hang=-1)
  90. ```
复制代码

grey.xlsx
下载链接: https://bbs.pinggu.org/a-2826812.html

8.06 KB

grey.pdf

61.06 KB

65
南弦天 发表于 2019-8-13 14:51:52
收到,谢谢

66
木小南呀 发表于 2019-8-19 17:08:05
收到 谢谢~~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 17:53