第十一章:偏最小二乘回归分析

当两组变量的个数很多,且都存在多重相关性,而观测数据的数量(样本量)又较少时,用偏最小二乘回归建立模型

11.1 分析概述

  1. 在自变量集中提出第一成分u(尽可能多的提取原自变量中的变异信息),同时在因变量集中也提取第一成分v,并要求u与v相关程度达到最大
  2. 建立因变量与u的回归,如果回归方程已达到满意的精度,则算法终止。否则继续对第二成分的提取,直到能达到满意的精度为止。
  3. 若最终对自变量集提取r个成分,偏最小二乘法回归将通过建立因变量和r个u的回归式,然后再表示为因变量与原自变量的回归方程式,即偏最小二乘回归方程式

11.2 Matlab命令plsregress

使用格式[ XL, YL, XS, YS, BETA, PCTVAR, MSE, stats ] = plsregress( X, Y, ncomp )

11.3 案例分析

例1:

clc,clear
ab0=load('pz.txt'); 
mu=mean(ab0), sig=std(ab0) 
rr=corrcoef(ab0)  %求相关系数矩阵
ab=zscore(ab0); %数据标准化
a=ab(:,[1:3]);b=ab(:,[4:end]);  %提出标准化后的自变量和因变量数据
[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats] =plsregress(a,b)
contr=cumsum(PCTVAR,2) %求累计贡献率
xw=a\XS  %求自变量提出成分系数,每列对应一个成分,这里xw等于stats.W
yw=b\YS  
ncomp=input('请根据PCTVAR的值确定提出成分对的个数ncomp=');
[XL2,YL2,XS2,YS2,BETA2,PCTVAR2,MSE2,stats2] =plsregress(a,b,ncomp)
n=size(a,2); m=size(b,2);%n是自变量的个数,m是因变量的个数
beta3(1,:)=mu(n+1:end)-mu(1:n)./sig(1:n)*BETA2([2:end],:).*sig(n+1:end); %原始数据回归方程的常数项
beta3([2:n+1],:)=(1./sig(1:n))'*sig(n+1:end).*BETA2([2:end],:) %计算原始变量的系数,每一列是一个回归方程
bar(BETA2','k')   %画直方图
yhat=repmat(beta3(1,:),[size(a,1),1])+ab0(:,[1:n])*beta3([2:end],:)  %求因变量的预测值
ymax=max([yhat;ab0(:,[n+1:end])]); %求预测值和预测值的最大值
%下面画y1,y2,y3的预测图,并画直线y=x
figure, subplot(2,2,1)
plot(yhat(:,1),ab0(:,n+1),'*',[0:ymax(1)],[0:ymax(1)],'Color','k')
legend('弯曲成绩预测图',2), xlabel('预测数据'), ylabel('观测数据')
subplot(2,2,2)
plot(yhat(:,2),ab0(:,n+2),'O',[0:ymax(2)],[0:ymax(2)],'Color','k')
legend('弯曲成绩预测图',2), xlabel('预测数据'), ylabel('观测数据')
subplot(2,2,3)
plot(yhat(:,3),ab0(:,end),'H',[0:ymax(3)],[0:ymax(3)],'Color','k')
legend('跳高成绩预测图',2), xlabel('预测数据'), ylabel('观测数据')

例2:

clc, clear,format long g  %长小数的显示方式
ab0=load('you.txt');
mu=mean(ab0);sig=std(ab0); %求均值和标准差
ab=zscore(ab0); %数据标准化
a=ab(:,[1:7]);b=ab(:,[8:end]);
ncomp=2; %试着选择成分的对数
[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats]=plsregress(a,b,ncomp)
contr=cumsum(PCTVAR,2) %求累积贡献率
n=size(a,2); m=size(b,2); 
BETA2(1,:)=mu(n+1:end)-mu(1:n)./sig(1:n)*BETA([2:end],:).*sig(n+1:end); 
BETA2([2:n+1],:)=(1./sig(1:n))'*sig(n+1:end).*BETA([2:end],:) 
format  %恢复到短小数的显示方式
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多元线性回归最小二乘线性回归模型都可以用矩阵形式进行表述。 对于多元线性回归模型,假设有 $p$ 个自变量和 $n$ 个样本,可以将自变量和因变量表示为矩阵形式: $$ \mathbf{X} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix}, \quad \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $$ 其中,$\mathbf{X}$ 是自变量矩阵,每行代表一个样本,每列代表一个自变量;$\mathbf{y}$ 是因变量矩阵,每行代表一个样本的因变量。多元线性回归模型可以表示为: $$ \mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\epsilon} $$ 其中,$\boldsymbol{\beta}$ 是模型参数,$\boldsymbol{\epsilon}$ 是误差项。 对于最小二乘线性回归模型,假设只有一个自变量和 $n$ 个样本,可以将自变量和因变量表示为矩阵形式: $$ \mathbf{X} = \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{bmatrix}, \quad \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $$ 其中,$\mathbf{X}$ 是自变量矩阵,第一列都是 $1$,第二列是自变量;$\mathbf{y}$ 是因变量矩阵,每行代表一个样本的因变量。最小二乘线性回归模型可以表示为: $$ \mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\epsilon} $$ 其中,$\boldsymbol{\beta}$ 是模型参数,$\boldsymbol{\epsilon}$ 是误差项。 综上所述,多元线性回归最小二乘线性回归模型都可以用矩阵形式进行表述,但是多元线性回归模型中自变量的个数比最小二乘线性回归模型多,因此自变量矩阵的列数也会相应增加。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值