一、实验任务 请根据表1给出的7个因素对我国14个地区的发展状况进行聚类分析。
表1 我国14个地区的财政情况
二、实验步骤 一、用六种类间距离进行系统聚类,并绘制聚类图 1.读取数据 library(openxlsx) read.xlsx("C:\\Users\\Dell\\Desktop\\多元统计和r语言\\shiyanwu.xlsx") X=read.xlsx("C:\\Users\\Dell\\Desktop\\多元统计和r语言\\shiyanwu.xlsx",rowNames = T) 2.最短距离法 #将因素进行分类 colnames(X)=c("x1","x2","x3","x4","x5","x6","x7") D=dist(X,method="euclidean",p=2) #欧式距离,最短距离法 a=hclust(D,method="single") plot(a) 3.最长距离法 #欧氏距离,最长距离法 b=hclust(D,method = "complete") plot(b) 4.ward法 #欧氏距离,ward法 c=hclust(D,method="ward.D2") plot(c) 5.中间距离法 #中间距离法 d=hclust(D,method="median") plot(d) 6.类平均法 #类平均法 e=hclust(D,method="average") plot(e) 7.重心法 #重心法 f=hclust(D,method="centroid") plot(f)
1.加载包 library(factoextra) library(dplyr) library(cluster) library(pacman) library(NbClust) names(X) 2.标准化数据 X.scaled<-scale(X[2:7]) 3.通过Nbclust来确定k L=NbClust(X.scaled,distance="euclidean",method="average") table(L$Best.n[1,]) 分析:k值选择2 win.graph(width=6, height=5,pointsize=9)#因为figure margins too large报错 barplot(table(L$Best.n[1,]),xlab = "No. of cluster") 4.以聚类数为2进行分析 set.seed(666) kmeans1<-kmeans(X.scaled,centers=2,nstart = 25) fviz_cluster(object=kmeans1,data=X[2:7], ellipse.type = "euclid",star.plot=T,repel=T, geom = ("point"),palette='jco',main="", ggtheme=theme_minimal())+ theme(axis.title = element_blank()) 5.归类 summary(kmeans1) kmeans$cluster kmeans$size 6.整理数据 z=data.frame(X[2:7],kmeans1$cluster) z=arrange(z,kmeans1.cluster) 7.对每组数据进行平均值统计 by_fenzu=group_by(z,kmeans1.cluster) summarize(by_fenzu,x1=mean(x1),x2=mean(x2), x3=mean(x3),x4=mean(x4),x5=mean(x5),x6=mean(x6)) 分析:在第一类城市中,因素五表现突出,第二类城市因素2,3,5表现突出 8.对数据进行分组,得出每组因素的密度分布情况 Data1=z[which(z$kmeans1.cluster==1),] Data2=z[which(z$kmeans1.cluster==2),] 9.绘制分布曲线 #1 par(mfrow=c(1,2)) plot(density(Data1[,1]),main="1.1") plot(density(Data2[,1]),main="1.2") #2 par(mfrow=c(1,2)) plot(density(Data1[,2]),main="2.1") plot(density(Data2[,2]),main="2.2") #3 par(mfrow=c(1,2)) plot(density(Data1[,3]),main="3.1") plot(density(Data2[,3]),main="3.2") #4 par(mfrow=c(1,2)) plot(density(Data1[,4]),main="4.1") plot(density(Data2[,4]),main="4.2") #5 par(mfrow=c(1,2)) plot(density(Data1[,5]),main="5.1") plot(density(Data2[,5]),main="5.2") #6 par(mfrow=c(1,2)) plot(density(Data1[,6]),main="6.1") plot(density(Data2[,6]),main="6.2") #7 par(mfrow=c(1,2)) plot(density(Data1[,7]),main="7.1") plot(density(Data2[,7]),main="7.2") 三、请利用多元线性回归模型对全国各省的各市的财政收入情况与各个影响因素进行综合分析 library(mvstats) #多元线性回归 (fm=lm(y~x1+x2+x3+x4+x5+x6+x7,data=X)) coef.sd(fm) lm(formula = y~x1+x2+x3+x4+x5+x6+x7, data = X) 三、实验总结 通过本次实验,我学会了用六种类间距离进行系统聚类,并绘制了聚类图,并且对7个因素采用了kmeans聚类法分析了我国14个地区的发展状况,利用多元线性回归模型对全国各省的各市的财政收入情况与各个影响因素进行了综合分析。 四、心得体会 此次实验,还是有些许不足。不如mvstats的包无法安装,并且产生了一些不可以解决的问题,但是不影响实验结果。另外,还是很有收获的,学会了多元线性回归分析以及类间距的应用等。 |
地区电信行业发展分析
最新推荐文章于 2024-09-11 11:50:49 发布