#第9章 习题9
#ex9.4 邮电业和国民经济的典型相关分析
#打开数据文件ex9.4.xls, 选取B1:I14区域, 然后复制
ex9.4<-read.table("clipboard", header=T)
#将ex9.4.xls数据读入到ex9.4中
R=round(cor(ex9.4),3) ;R #求样本相关系数矩阵, 保留三位小数
X=scale(ex9.4) #对数据进行标准化处理
x=X[,1:4] #指定一组变量数据
y=X[,5:8] #指定另一组变量数据
library(CCA) #载入典型相关分析所用CCA包
CCAc9.4=cc(x,y) #进行典型相关分析
CCAc9.4$cor #输出典型相关系数
CCAc9.4$xcoef #输出x的典型载荷
CCAc9.4$ycoef #输出y的典型载荷
source('corcoef_test.R') #调用典型相关系数检验脚本,若该脚本不在当前R的工作路径下,则要将路径设置清晰,如source ('C:/Program Files/corcoef_test.R')
corcoef_test(r=CCAc9.4$cor,n=nrow(x),p=ncol(x),q=ncol(y))#进行典型相关系数检验
CCAc9.4$scores$corr.X.xscores #输出第一组典型变量与X组原始变量之间的相关系数
CCAc9.4$scores$corr.Y.xscores #输出第一组典型变量与y组原始变量之间的相关系数
CCAc9.4$scores$corr.X.yscores #输出第二组典型变量与X组原始变量之间的相关系数
CCAc9.4$scores$corr.Y.yscores #输出第二组典型变量与y组原始变量之间的相关系数
apply(CCAc9.4$scores$corr.X.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第一组变量方差的比例
apply(CCAc9.4$scores$corr.Y.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第二组变量方差的比例
apply(CCAc9.4$scores$corr.X.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第一组变量方差的比例
apply(CCAc9.4$scores$corr.Y.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第二组变量方差的比例
u<-as.matrix(x)%*%CCAc9.4$xcoef #计算得分
v<-as.matrix(y)%*%CCAc9.4$ycoef #计算得分
plot(u[,1],v[,1],xlab="u1",ylab="v1") #绘制第一对典型变量得分的散点图,x轴名称为u1,y轴名称为v1
abline(0,1) #在散点图上添加一条y等于x的线,以看散点分布情况
#ex9.5 城镇居民平均每人全年家庭收入来源及现金消费支出的典型相关分析
#打开数据文件ex9.5.xls, 选取B1:I32区域, 然后复制
ex9.5<-read.table("clipboard", header=T)
#将ex9.6.xls数据读入到ex9.6中
R=round(cor(ex9.5),3) ;R #求样本相关系数矩阵, 保留三位小数
X=scale(ex9.5) #对数据进行标准化处理
x=X[,1:4] #指定一组变量数据
y=X[,5:8] #指定另一组变量数据
library(CCA) #载入典型相关分析所用CCA包
CCAc9.5=cc(x,y) #进行典型相关分析
CCAc9.5$cor #输出典型相关系数
CCAc9.5$xcoef #输出x的典型载荷
CCAc9.5$ycoef #输出y的典型载荷
source('corcoef_test.R') #调用典型相关系数检验脚本,若该脚本不在当前R的工作路径下,则要将路径设置清晰,如source ('C:/Program Files/corcoef_test.R')
corcoef_test(r=CCAc9.5$cor,n=nrow(x),p=ncol(x),q=ncol(y)) #进行典型相关系数检验
CCAc9.5$scores$corr.X.xscores #输出第一组典型变量与X组原始变量之间的相关系数
CCAc9.5$scores$corr.Y.xscores #输出第一组典型变量与y组原始变量之间的相关系数
CCAc9.5$scores$corr.X.yscores #输出第二组典型变量与X组原始变量之间的相关系数
CCAc9.5$scores$corr.Y.yscores #输出第二组典型变量与y组原始变量之间的相关系数
apply(CCAc9.5$scores$corr.X.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第一组变量方差的比例
apply(CCAc9.5$scores$corr.Y.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第二组变量方差的比例
apply(CCAc9.5$scores$corr.X.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第一组变量方差的比例
apply(CCAc9.5$scores$corr.Y.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第二组变量方差的比例
u<-as.matrix(x)%*%CCAc9.5$xcoef #计算得分
v<-as.matrix(y)%*%CCAc9.5$ycoef #计算得分
plot(u[,1],v[,1],xlab="u1",ylab="v1") #绘制第一对典型变量得分的散点图,x轴名称为u1,y轴名称为v1
abline(0,1) #在散点图上添加一条y等于x的线,以看散点分布情况
#ex9.6 全社会固定资产投资资金与三大产业产值的典型相关分析
#打开数据文件ex9.6.xls, 选取B1:I32区域, 然后复制
ex9.6<-read.table("clipboard", header=T)
#将ex9.6.xls数据读入到ex9.6中
R=round(cor(ex9.6),3) ;R #求样本相关系数矩阵, 保留三位小数
X=scale(ex9.6) #对数据进行标准化处理
x=X[,1:5] #指定一组变量数据
y=X[,6:8] #指定另一组变量数据
library(CCA) #载入典型相关分析所用CCA包
CCAc9.6=cc(x,y) #进行典型相关分析
CCAc9.6$cor #输出典型相关系数
CCAc9.6$xcoef #输出x的典型载荷
CCAc9.6$ycoef #输出y的典型载荷
source('corcoef_test.R') #调用典型相关系数检验脚本,若该脚本不在当前R的工作路径下,则要将路径设置清晰,如source ('C:/Program Files/corcoef_test.R')
corcoef_test(r=CCAc9.6$cor,n=nrow(x),p=ncol(x),q=ncol(y)) #进行典型相关系数检验
CCAc9.6$scores$corr.X.xscores #输出第一组典型变量与X组原始变量之间的相关系数
CCAc9.6$scores$corr.Y.xscores #输出第一组典型变量与y组原始变量之间的相关系数
CCAc9.6$scores$corr.X.yscores #输出第二组典型变量与X组原始变量之间的相关系数
CCAc9.6$scores$corr.Y.yscores #输出第二组典型变量与y组原始变量之间的相关系数
apply(CCAc9.6$scores$corr.X.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第一组变量方差的比例
apply(CCAc9.6$scores$corr.Y.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第二组变量方差的比例
apply(CCAc9.6$scores$corr.X.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第一组变量方差的比例
apply(CCAc9.6$scores$corr.Y.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第二组变量方差的比例
u<-as.matrix(x)%*%CCAc9.6$xcoef #计算得分
v<-as.matrix(y)%*%CCAc9.6$ycoef #计算得分
plot(u[,1],v[,1],xlab="u1",ylab="v1") #绘制第一对典型变量得分的散点图,x轴名称为u1,y轴名称为v1
abline(0,1) #在散点图上添加一条y等于x的线,以看散点分布情况
#ex9.7 农用化肥施用量及主要农产品产量的典型相关分析
#打开数据文件ex9.7.xls, 选取B1:I32区域, 然后复制
ex9.7<-read.table("clipboard", header=T)
#将ex9.7.xls数据读入到ex9.7中
R=round(cor(ex9.7),3) ;R #求样本相关系数矩阵, 保留三位小数
X=scale(ex9.7) #对数据进行标准化处理
x=X[,1:4] #指定一组变量数据
y=X[,5:8] #指定另一组变量数据
library(CCA) #载入典型相关分析所用CCA包
CCAc9.7=cc(x,y) #进行典型相关分析
CCAc9.7$cor #输出典型相关系数
CCAc9.7$xcoef #输出x的典型载荷
CCAc9.7$ycoef #输出y的典型载荷
source('corcoef_test.R') #调用典型相关系数检验脚本,若该脚本不在当前R的工作路径下,则要将路径设置清晰,如source ('C:/Program Files/corcoef_test.R')
corcoef_test(r=CCAc9.7$cor,n=nrow(x),p=ncol(x),q=ncol(y)) #进行典型相关系数检验
CCAc9.7$scores$corr.X.xscores #输出第一组典型变量与X组原始变量之间的相关系数
CCAc9.7$scores$corr.Y.xscores #输出第一组典型变量与y组原始变量之间的相关系数
CCAc9.7$scores$corr.X.yscores #输出第二组典型变量与X组原始变量之间的相关系数
CCAc9.7$scores$corr.Y.yscores #输出第二组典型变量与y组原始变量之间的相关系数
apply(CCAc9.7$scores$corr.X.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第一组变量方差的比例
apply(CCAc9.7$scores$corr.Y.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第二组变量方差的比例
apply(CCAc9.7$scores$corr.X.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第一组变量方差的比例
apply(CCAc9.7$scores$corr.Y.yscores,2,function(x){mean(x^2)}) #第二组典型变量解释原第二组变量方差的比例
u<-as.matrix(x)%*%CCAc9.7$xcoef #计算得分
v<-as.matrix(y)%*%CCAc9.7$ycoef #计算得分
plot(u[,1],v[,1],xlab="u1",ylab="v1") #绘制第一对典型变量得分的散点图,x轴名称为u1,y轴名称为v1
abline(0,1) #在散点图上添加一条y等于x的线,以看散点分布情况
#ex9.8 高中一年级男生体力及运动能力的典型相关分析
#打开数据文件ex9.8.xls, 选取B1:M39区域, 然后复制
ex9.8<-read.table("clipboard", header=T)
#将ex9.8.xls数据读入到ex9.8中
R=round(cor(ex9.8),3) ;R #求样本相关系数矩阵, 保留三位小数
X=scale(ex9.8) #对数据进行标准化处理
x=X[,1:7] #指定一组变量数据
y=X[,8:12] #指定另一组变量数据
library(CCA) #载入典型相关分析所用CCA包
CCAc9.8=cc(x,y) #进行典型相关分析
CCAc9.8$cor #输出典型相关系数
CCAc9.8$xcoef #输出x的典型载荷
CCAc9.8$ycoef #输出y的典型载荷
source('corcoef_test.R') #调用典型相关系数检验脚本,若该脚本不在当前R的工作路径下,则要将路径设置清晰,如source ('C:/Program Files/corcoef_test.R')
corcoef_test(r=CCAc9.8$cor,n=nrow(x),p=ncol(x),q=ncol(y)) #进行典型相关系数检验
CCAc9.8$scores$corr.X.xscores #输出第一组典型变量与X组原始变量之间的相关系数
CCAc9.8$scores$corr.Y.xscores #输出第一组典型变量与y组原始变量之间的相关系数
CCAc9.8$scores$corr.X.yscores #输出第二组典型变量与X组原始变量之间的相关系数
CCAc9.8$scores$corr.Y.yscores #输出第二组典型变量与y组原始变量之间的相关系数
apply(CCAc9.8$scores$corr.X.xscores,2,function(x){mean(x^2)}) #第一组典型变量解释原第一组变量方差的