⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a.m

📁 最小二乘法和主成分回归法对同一数据进行分析
💻 M
字号:
clear
clc
l=input('请输入l的值:');%l为最优主成分数
n=100;
e=[rand(n,1),randn(n,1),5*rand(n,1),10*rand(n,1),50*rand(n,1),100*rand(n,1),200*randn(n,1),500*rand(n,1)];
j=8;
[X1 Y1 X2 Y2]=scshuju2(n,e(:,j));
[p2,score2,eigenvalue2,t22]=princomp(X1);%对x1进行主成分分析
% p2是x1的协方差矩阵的特征向量
% score 是得分矩阵
%eigenvalue x的协方差矩阵的特征值
[u,s,v]=svd(X1);
v-p2
T2=score2(:,1:l);
P2=p2(:,1:l);
Y11=Y1-mean(Y1);
Bsz=pinv(T2'*T2)*T2'*Y11%主成分回归得到的B的估计值
X12=X1-ones(50,1)*(mean(X1));
X22=X2-ones(50,1)*(mean(X2));
Yc2=X12*P2*Bsz;%模型输出值
Yc2=Yc2+mean(Y1);
Tp2=X22*P2;%计算预测值
Yp2=Tp2*Bsz;

Yp=Yp2+mean(Y2);
figure(1)
plot(Y1,Y1,'k-',Y1,Yc2,'k+');xlabel('训练集实际输出值');ylabel('训练集预测输出值');title('PLS');
figure(2)
plot(Y2,Y2,'k-',Yp,Y2,'k+')


ec2=Y1-Yc2;%回归误差
ep2=Y2-Yp2;%预测误差
sum12=sum(ec2.^2);%回归误差的平方和
sum22=sum(ep2.^2);%预测误差的平方和
sum12s=var(Y1);%训练集实际输出值的方差
sum12s=sum12s*50;
sum22s=var(Y2);%预测集输出值的方差
sum22s=sum22s*50;
ec2=sqrt(1/(n/2-1)*sum12);
ep2=sqrt(1/(n/2)*sum22);
Rc2=1-sum12/sum12s;%回归误差的相关系数
Rp2=1-sum22/sum22s;%预测误差的相关系数

%figure(1)
%plot(Y1,Ycs1(:,1),'k+',Y1,YS1(:,1),'k-');xlabel('训练集实际输出值');ylabel('训练集预测输出值');title('MLR');axis([200,320,200,320]);
%figure(2)
%subplot(2,2,3),plot(Y1,Ycs2(:,1),'k+',YS1(:,1),YS1(:,1),'k-');xlabel('训练集输出实际值');ylabel('训练集预测输出值');title('PCR');axis([200,320,200,320]);



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -