grape=read.csv('d:/grape.csv') #葡萄数据
grape
grape=as.matrix(grape[,-1])
claret=read.csv('d:/claret.csv') #葡萄酒数据
claret
claret=as.matrix(claret[,-1])
x=grape
y=claret
x0=scale(x)
x0
y0=scale(y)
y0
m=t(x0)%*%y0%*%t(y0)%*%x0
m
eigen(m)
w1=eigen(m)$vectors[,1]
w1
v1=t(y0)%*%x0%*%w1/sqrt(as.matrix(eigen(m)$values)[1,])
v1
t1=x0%*%w1
t1 # 以上为第一步(1)分别提取两变量组的第一对成分,并使之相关性达最大。
u1=y0%*%v1
u1
library("pracma")
α1=inv(t(t1)%*%t1)%*%t(t1)%*%x0 #也可由t(x0)%*%t1/norm(t1,'2')^2算得α1(主成分t1与x0进行最小二乘回归求得的t1对每一个x0的回归系数)
β1=inv(t(t1)%*%t1)%*%t(t1)%*%y0 #也可由t(y0)%*%t1/norm(t1,'2')^2算得β1(主成分t1与y0进行最小二乘回
中国2012年数学建模大赛A题(葡萄与葡萄酒)+补充了pls回归系数的算法
最新推荐文章于 2021-11-15 09:23:13 发布