R语言 Kmeans聚类法 主成分分析

eg
set.seed(123)
x1=matrix(rnorm(1000,0,0.3),ncol = 10)#均值0,标准差为0.3的10010正态随机矩阵
x2=matrix(rnorm(1000,1,0.3),ncol = 10)#均值1,标准差为0.3的100
10正态随机矩阵
X=rbind(x1,x2)#形成200*10的随机矩阵
H=hclust(dist(X))
plot(H)
rect.hclust(H,2)
在这里插入图片描述
cutree(H,2)#系统聚类结果
在这里插入图片描述
km=kmeans(X,2)#kmeans聚类
km$cluster#分类结果
plot(X,pch=km $cluster)
在这里插入图片描述
eg模拟10个变量2000个样品的正态随机矩阵

set.seed(123)
x1=matrix(rnorm(10000,0,0.2),ncol = 10)
x2=matrix(rnorm(10000,1,0.2),ncol = 10)
km=kmeans(X,2)
kc=km$cluster
table(km)
plot(X,pch=kc,col=kc)

在这里插入图片描述
主成分分析
主成分分析是将多个指标化为少数几个综合指标的一种统计分析方法,即通过降维技术把多个变量化为几个少数主成分的方法。
eg
14名学生的身高与体重数据,做相关图以显示变量间的关系

x1=c(147,171,175,159,155,152,158,154,164,168,166,159,164,177)
x2=c(32,57,64,41,38,35,44,41,54,57,49,47,46,63)
cor(x1,x2)

在这里插入图片描述

plot(x1,x2,xlim = c(145,180),ylim = c(25,75))

在这里插入图片描述

lines(c(146,178),c(30,66),lwd=2)
lines(c(163,166),c(54,47))
library(shape)
lines(getellipse(24,3,mid = c(162,48),angle = 48),lty=3)

在这里插入图片描述
上图将坐标旋转。
主成分的一些说明:主成分分析的主要目的是用较少的变量去解释原资料中的大部分变异,即期望能将手中许多相关性很高的变量转化成互相独立的变量,并能解释大部分资料之变异的几个新变量,也就是所谓的主成分。

X=data.frame(x1,x2)
R=cor(X)#相关系数阵(统计学)
R
S=cov(X)#协方差阵(数学)
S

在这里插入图片描述
后面计算基于相关系数矩阵。
求主成分就是寻找线性函数,使相应的方差达到最大。

svd(S)#协差阵的奇异值分解
svd(R)#相关阵的奇异值分解

谱分解
主成分分析函数princomp()的用法
princomp(x,cor=FALSE,scores=TRUE,…)
x数据矩阵或数据框,cor是否用相关阵,默认为协差阵,scores是否输出成分得分

pc=princomp(X)
pc
pc$sdev^2#主成分方差

在这里插入图片描述
主成分载荷(主成分在这里插入图片描述

pc$loadings

在这里插入图片描述
将主成分系数带入在这里插入图片描述
中即可得主成分得分

pc$loadings
pc$scores

在这里插入图片描述

pc$scores
plot(pc$scores,asp=1)
abline(h=0,v=0,lty=3)

在这里插入图片描述
信息量基本在成分1上,很少在成分2上,进一步做看的更清晰

biplot(pc$scores,pc$loadings)
abline(h=0,v=0,lty=3)

在这里插入图片描述
(biplot(scores,loading…) scores是因子得分,loadings因子载荷)
用综合统计量评估主成分:

summary(pc)

在这里插入图片描述
方差贡献(standard deviation),方差贡献率(proportion of variance),方差累计贡献率(cumulative proportion)
主成分分析步骤:
1.将原始数据标准化,得标准数据矩阵
2.建立相关系数矩阵
3.求特征值及特征向量
4.获得主成分
主成分注意事项
1.主成分分析,最好以相关系数矩阵为主
2.为使方差达到最大,通常主成分分析是不加以转轴
3.通常将特征值小于1的成分放弃,只保留大于1的成分
4.在实际研究里,若用3或5个成分,就能解释变异80%也行
5.使用主成分,会使各变量方差为最大,且成分间彼此独立
在这里插入图片描述

发布了10 篇原创文章 · 获赞 2 · 访问量 229

猜你喜欢

转载自blog.csdn.net/m0_46445293/article/details/104754559