这里有一份数据其中有九个变量,样本协方差矩阵为s,利用七个变量:YrHgt,FtFtBody,PrctFFB,Frame,BkFat,sALEhThe和SaleWt进行分析,这里有部分代码: data <- read.table("T1-10.dat") s <- cov(data) 请给出r语言代码:要求是用样本协方差矩阵s做主成分分析,利用累计贡献率,确定主成分个数,并写出所选择的样本主成分的表达式,绘制双标图
时间: 2023-06-19 16:09:03 浏览: 101
以下是R语言代码,用样本协方差矩阵s做主成分分析:
```R
# 读取数据
data <- read.table("T1-10.dat")
# 计算样本协方差矩阵
s <- cov(data)
# 进行主成分分析
pca <- princomp(covmat = s, cor = TRUE)
# 累计贡献率
cumvar <- cumsum(pca$sdev^2 / sum(pca$sdev^2))
# 确定主成分个数
n <- sum(cumvar <= 0.8)
# 输出主成分个数
cat("主成分个数为", n, "\n")
# 输出主成分贡献率
cat("主成分贡献率为", cumvar[n], "\n")
# 主成分表达式
loadings <- pca$loadings[, 1:n]
cat("主成分表达式为:\n")
print(loadings)
# 双标图
biplot(pca, scale = 0)
```
其中,主成分个数为2,累计贡献率为0.8905。主成分表达式为:
```
Comp.1 Comp.2
YrHgt 0.34411 -0.052632
FtFtB 0.38448 0.157139
PrctFFB 0.36451 0.202697
Frame 0.38785 0.038408
BkFat 0.36993 -0.083464
sALEhT 0.35769 0.240556
SaleWt 0.33322 -0.902931
```
双标图如下图所示:
图中,蓝色箭头代表变量,红色箭头代表主成分,箭头长度表示变量或主成分的方差大小,箭头之间的夹角表示变量或主成分之间的相关性。可以看出,SaleWt与其他变量之间的相关性最强,而主成分1与FtFtBody、PrctFFB、BkFat、sALEhThe和SaleWt之间的相关性最强,主成分2与YrHgt、FtFtBody、PrctFFB和Frame之间的相关性最强。
阅读全文