一、求均值向量,离差阵,协方差阵,相关阵,标准化后的协方差矩阵
原始数据长这样:
城市 | X1 | X2 | X3 | X4 | X5 |
北京 | 4 | 29 | 56 | 38 | 276 |
天津 | 8 | 39 | 68 | 48 | 245 |
石家庄 | 12 | 41 | 101 | 58 | 205 |
太原 | 17 | 45 | 95 | 54 | 224 |
呼和浩特 | 13 | 33 | 71 | 40 | 294 |
沈阳 | 18 | 35 | 74 | 42 | 287 |
长春 | 10 | 32 | 59 | 42 | 305 |
哈尔滨 | 17 | 32 | 64 | 47 | 303 |
上海 | 6 | 37 | 41 | 32 | 319 |
南京 | 7 | 36 | 56 | 31 | 304 |
杭州 | 6 | 38 | 55 | 30 | 334 |
合肥 | 7 | 39 | 56 | 36 | 311 |
福州 | 5 | 21 | 38 | 21 | 364 |
南昌 | 9 | 29 | 58 | 33 | 335 |
济南 | 13 | 36 | 88 | 50 | 223 |
郑州 | 9 | 39 | 84 | 51 | 230 |
武汉 | 8 | 36 | 58 | 37 | 309 |
长沙 | 7 | 27 | 48 | 41 | 309 |
广州 | 7 | 36 | 43 | 23 | 331 |
南宁 | 8 | 24 | 46 | 26 | 357 |
海口 | 4 | 11 | 29 | 14 | 361 |
重庆 | 8 | 39 | 53 | 33 | 331 |
成都 | 6 | 37 | 64 | 41 | 280 |
贵阳 | 10 | 18 | 41 | 23 | 362 |
昆明 | 9 | 26 | 42 | 24 | 366 |
拉萨 | 7 | 19 | 29 | 12 | 366 |
西安 | 8 | 41 | 88 | 51 | 250 |
兰州 | 15 | 47 | 76 | 34 | 312 |
西宁 | 15 | 36 | 61 | 35 | 337 |
银川 | 14 | 35 | 72 | 36 | 301 |
乌鲁木齐 | 9 | 36 | 75 | 47 | 279 |
X= read.csv("C:\\Users\\HuXiang\\Documents\\Tencent Files\\1085244341\\FileRecv\\Ch01_kongqizhiliang2020.csv",header=T,sep=",")
X<-data.frame(X[,2:6]) #转换为数据表
Mean_X=colMeans(X,na.rm=T) #按照列求均值向量
Dim_X=dim(X) #求数据表的维数
Scatter_X = (Dim_X[1]-1)*cov(X) #求离差阵
Covariance_X=cov(X) #求协方差阵
Correlation_X=cor(X) #求相关系数阵
Standard_X<-scale(X,center = T,scale = T) #样本数据的0-1标准化
Covariance_SX = cov(Standard_X) #标准化后的样本数据的协方差矩阵
二、绘制条形图、矩阵散点图,箱型图,雷达图,星图,轮廓图,脸谱图和调和曲线图
还是使用刚才的数据
X= read.csv("C:\\Users\\HuXiang\\Documents\\Tencent Files\\1085244341\\FileRecv\\Ch01_kongqizhiliang2020.csv")
barplot(apply(X[,2:6],1,mean),names.arg=X[,1],las=3)#按行绘制均值条形图
barplot(apply(X[,2:6],1,mean),col=1:6)#按列绘制彩色均值条形图
pairs(X[,2:6]) #绘制矩阵散点图
boxplot(X[,2:6]) #按列绘制箱型图,垂直放置
boxplot(X[,2:6],horizontal = T) #按列绘制箱型图,水平放置
boxplot(X[,2:6],horizontal = T,las=1)
#绘制脸谱图
install.packages("aplpack",depend=TRUE) #安装aplpack包
library("aplpack") #加载aolpack包
a = faces(data.matrix(X),fill=T,which =2:6,labels = X[,1],cex=0.7 )
plot(a,face.type=1,cex=0.7)
#绘制雷达图
stars(X[,2:6],radius=T,labels = X[,1],cex=0.7)
#绘制星图
stars(X[,2:6],radius=F,labels = X[,1],cex=0.7)
#绘制轮廓图
matplot(0:30,X[,2:6],xlim=c(0.5,30),type="l",lty = 5:1,col=1:6,las=2,
xlab="",cex.axis=0.7,cex.lab=0.7,ylab = "平均浓度或天数")
axis(1,0:30,t(X[,1]),las=2,cex.axis=0.7)
for(i in 1:5)lines(25:28,rep(230-10*(i-1),4),lty=8-i,col=i)
text(29,230-10*(i-1),colnames(X)[i+1],cex=0.7)
#绘制调和曲线图
install.packages("andrews")
library(andrews)
andrews(X[,2:6],clr=3,ymax = 3)