7.1下面给出5 个元素两两之间的距离,利用最短距离法、最长距离法和类平均法做出5个元素的谱系聚类,画谱系图并做出比较。
x1=c(0,4,6,1,6)
x2=c(4,0,9,7,3)
x3=c(6,9,0,10,5)
x4=c(1,7,10,0,8)
x5=c(6,3,5,8,0)
x=rbind(x1,x2,x3,x4,x5)
y=as.dist(x)
y
hc=hclust(y,"single")#最短距离法
hc
plot(hc)
plot(hc);rect.hclust(hc,2)#加2类框
cutree(hc,2)#分2类
plot(hc);rect.hclust(hc,3)#加3类框
cutree(hc,3)#分3类
hc1=hclust(y,"complete")#最长距离法
plot(hc1);rect.hclust(hc1,2)#加2类框
cutree(hc1,2)#分2类
plot(hc1);rect.hclust(hc1,3)#加3类框
cutree(hc1,3)#分3类
hc2=hclust(y,"average")#类平均法
plot(hc2)
plot(hc2);rect.hclust(hc2,2)#加2类框
cutree(hc2,2)#分2类
plot(hc2);rect.hclust(hc2,3)#加3类框
cutree(hc2,3)#分3类
7.2为了比较全国31个省、市、自治区1996年和2007年(数据见本章例 7.2)城镇居民生法消费的分布规律,根据调查资料做区域消费类型划分。并将 1996年和2007年数据进行对比分析。今收集了8个反映城镇居民生活消费结构的指标(1996年数据见表):
x1——人均食品支出(元/人)
x2——人均衣着商品支出(元/人)
x3——人均家庭设备用品及服务支出(元/人)
x4——人均医疗保健支出(元/人)
x5——人均交通和通信支出(元/人)
x6——人均娱乐教育文化服务支出(元/人)
x7——人均居住支出(元/人)
x8——人均杂项商品和服务支出(元/人)。
试对该数据进行聚类分析。
地区 | X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 |
北京 | 2671.52 | 512.35 | 436.31 | 217.82 | 257.02 | 699.15 | 286.99 | 313.68 |
天津 | 2398.47 | 349.24 | 372.27 | 141 | 247.15 | 435.68 | 320.88 | 191.89 |
河北 | 1533.42 | 302.35 | 281.69 | 155.08 | 185.82 | 336.37 | 260.63 | 118.19 |
山西 | 1400.26 | 347.83 | 202.2 | 145.89 | 144.96 | 316.73 | 163.29 | 132.52 |
内蒙古 | 1249.58 | 254.29 | 192.44 | 134.5 | 133.3 | 274.78 | 186.06 | 121.67 |
辽宁 | 1749.76 | 365.36 | 167.58 | 135.6 | 154.07 | 303.62 | 244.31 | 128.44 |
吉林 | 1438.94 | 329.63 | 161.49 | 137.96 | 137.35 | 243.28 | 253.19 | 121.92 |
黑龙江 | 1437.24 | 359.83 | 162.47 | 173.68 | 137.33 | 246.69 | 258.44 | 108.75 |
上海 | 3415.5 | 363.61 | 637.28 | 147.78 | 467.85 | 779.28 | 392.62 | 333.19 |
江苏 | 2070.29 | 280.72 | 364.72 | 94.4 | 233.48 | 337.28 | 306.11 | 165.94 |
浙江 | 2704.43 | 412.57 | 650.11 | 246.32 | 307.82 | 538 | 404.5 | 250.71 |
安徽 | 1938.62 | 297.49 | 232.77 | 75.32 | 196.13 | 302.37 | 256.41 | 127.7 |
福建 | 2610.66 | 308.71 | 249.76 | 78.17 | 190.16 | 245.33 | 309.45 | 141.89 |
江西 | 1579.21 | 174.97 | 196.56 | 71.94 | 119.68 | 246.63 | 276.97 | 138.58 |
山东 | 1645.74 | 356.25 | 354.42 | 147.29 | 183.01 | 377.95 | 231.69 | 173.34 |
河南 | 1439.32 | 304.06 | 215.52 | 125.97 | 131.74 | 211.41 | 281.61 | 115.25 |
湖北 | 1731.43 | 350.53 | 279.58 | 113.16 | 175.41 | 436.9 | 287.13 | 142.25 |
湖南 | 1986.57 | 313.03 | 334.06 | 149.81 | 210.63 | 460.88 | 267.79 | 181.45 |
广东 | 3186.77 | 343.38 | 531.97 | 240.97 | 421.82 | 746.68 | 751.2 | 395.84 |
广西 | 2188.14 | 246.9 | 344.15 | 106.33 | 252.3 | 530.48 | 376.06 | 162.87 |
海南 | 2237.13 | 186.07 | 222.21 | 125.95 | 140.55 | 385.35 | 280.17 | 180.07 |
四川 | 1925.3 | 329.08 | 293.22 | 135.29 | 145.34 | 380.37 | 272.48 | 143.53 |
贵州 | 1918.76 | 247.69 | 304.9 | 93.04 | 154.85 | 287.6 | 257.57 | 146.83 |
云南 | 1971.54 | 346.19 | 284.49 | 180.51 | 208.3 | 364.15 | 294.03 | 193.19 |
西藏 | 2592.26 | 618.38 | 182.47 | 151.91 | 107.68 | 248.64 | 178.35 | 222.2 |
陕西 | 1461.62 | 242.03 | 318.43 | 144.75 | 167.61 | 294.25 | 264.29 | 133.82 |
甘肃 | 1443.01 | 214.28 | 188.2 | 130.42 | 123.19 | 249.55 | 163.5 | 132.89 |
青海 | 1651.16 | 275.3 | 195.27 | 190.13 | 168.08 | 244.39 | 125.23 | 148.95 |
宁夏 | 1377.25 | 301.18 | 214.49 | 171.77 | 209.98 | 262.57 | 132.5 | 143.87 |
新疆 | 1531.88 | 352.17 | 254.04 | 155.85 | 191.48 | 323.24 | 184.93 | 215.31 |
library(openxlsx)
d7_22=read.xlsx("E:/多元统计分析及R语言建模/mvexer5.xlsx",sheet ="E7.2",rowNames = T)
plot(d7_22,gap=0)
D=dist(d7_22);D#计算距离矩阵
hc=hclust(D,"single")#最短距离法
names(hc)
data.frame(hc$merge,hc$height)
plot(hc)
plot(hclust(D,"single"))#最短距离法
plot(hclust(D,"complete"))#最长距离法
plot(hclust(D,"median"))#中间距离法
plot(hclust(D,"average"))#类平均法
plot(hclust(D,"centroid"))#重心法
plot(hclust(D,"ward.D"))#Ward.D法
plot(hclust(D,"ward.D2"))#ward.D2法
#综上,用类平均法较好,聚成4类
H=hclust(D,"average");H
plot(H);rect.hclust(H,4)#加4类框
cutree(H,4)#分4类