rm(list=ls())  
ex5.1 <- read.table("例5-1.txt", head=TRUE, fileEncoding="utf8")  
dat51 <- ex5.1[, -1]  
rownames(dat51) <- ex5.1[, 1]  
#协方差矩阵  
sigm  <- cov(dat51)  
my51  <- eigen(sigm)  
#特征值  
lam <- my51$values  
p   <- length(lam)  
#方差贡献率  
cumlam <- cumsum(lam)/sum(lam)  
VE <- data.frame(lam, lam/sum(lam), cumlam)  
colnames(VE) <- c("特征根","贡献率","累计贡献率")  
print(VE)  
#碎石图  
plot(lam, type="o", xlab="主成分序号", ylab="特征值") 

#特征向量  
gam <- my51$vectors  
colnames(gam) <- paste("vec",sep = "", 1:p)  
print(gam[, 1:2])  
#因子负荷量  
lam_ma <- matrix(lam, p, p,  byrow = TRUE)  
sigmai <- (diag(sigm))^0.5   
##特征向量*特征根的算数平方根  
gamsla <- gam * sqrt(lam_ma)  
load <- gamsla / sigmai  
colnames(load) <- paste("load",sep = "", 1:p)  
print(load[,1:2])  

#定义5.3 第一和二主成分对X1-X9的方差贡献率  
VV <- load ^ 2  
print(VV[, 1:2])  
sum(VV[, 1:2])/ 9  







