- % PLS 单因变量偏最小二乘回归
- clear
- % 原始数据:自变量 X, 因变量 Y
- load XYpls
- % 标准化 X--E0 , Y--F0
- [E0,meanX,stdX]=prestd(X') ; E0=E0'
- [F0,meanY,stdY]=prestd(Y') ; F0=F0'
- E=E0; F=F0;
- beta=0 ; Fg=0;
- for ii=1:3
- EF=[E,F] ; [n,p]=size(E)
- EFcov=cov(EF) ; EFcov=EFcov(1:end-1,:) %协方差矩阵
- w=EFcov(:,p+1)/sqrt(sum(EFcov(:,p+1).^2))
- t=E*w
- q=E0'*t/(t'*t)
- r=F0'*t/(t'*t)
- ww=pinv(E0)*t % w*
- beta=r*ww+beta % 回归系数β
- Fg=t*r+Fg % 预测值
- E=E-t*q' ; F=F-t*r % 残差矩阵
- end
- Yg=poststd(Fg,meanY,stdY) % 预测值(还原值)
- % 模型检验
- % 复测定系数 R^2
- SSE=sum((Y-Yg).^2)
- SST=sum((Y-ones(n,1)*meanY).^2)
- R2 = 1-SSE/SST % 复测定系数 R^2
- R2tz = 1-(1-R2)*(n-1)/(n-p-1) % 调整复测定系数 R^2tz
- % F 检验
- F = ((SST-SSE)/p)/(SSE/(n-p-1))
复制代码
来自:研学 |