偏最小二乘法,它通过最小化误差的平方和找到一组数据的最佳函数匹配。 用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。
很多其他的优化问题也可通过最小化能量或最大化熵用最小二乘形式表达。

  • 偏最小二乘法
clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口
format short
pz=[191 36  50  5   162 60
189 37  52  2   110 60
193 38  58  12  101 101
162 35  62  12  105 37
189 35  46  13  155 58
182 36  56  4   101 42
211 38  56  8   101 38
167 34  60  6   125 40
176 31  74  15  200 40
154 33  56  17  251 250
169 34  50  17  120 38
166 33  52  13  210 115
154 34  64  14  215 105
247 46  50  1   50  50
193 36  46  6   70  31
202 37  62  12  210 120
176 37  54  4   60  25
157 32  52  11  230 80
156 33  54  15  225 73
138 33  68  2   110 43];%每一列为一个指标,每一行为一个样本mu=mean(pz); %求均值
sig=std(pz); %求标准差
rr=corrcoef(pz); %求相关系数矩阵
data=zscore(pz); %数据标准化
n=3; % n 是自变量的个数
m=3; % m 是因变量的个数
x0=pz(:,1:n);y0=pz(:,n+1:end);%定义自变量为前n列,因变量为n+1到m列
e0=data(:,1:n);f0=data(:,n+1:end);%e0为自变量归一化值,f0为因变量归一化值
num=size(e0,1);%求样本点的个数
chg=eye(n); % w 到 w* 变换矩阵的初始化
for i=1:n%计算 w,w* 和t 的得分向量,matrix=e0'*f0*f0'*e0;[vec,val]=eig(matrix); %求特征值和特征向量val=diag(val); %提出对角线元素,即特征值[val,ind]=sort(val,'descend');%降序排列,ind为排序后原下标序号w(:,i)=vec(:,ind(1)); %提出最大特征值对应的特征向量w_star(:,i)=chg*w(:,i); %计算w*的取值t(:,i)=e0*w(:,i); %计算成分ti 的得分alpha=e0'*t(:,i)/(t(:,i)'*t(:,i)); %计算alpha_ichg=chg*(eye(n)-w(:,i)*alpha'); %计算w 到w*的变换矩阵e=e0-t(:,i)*alpha'; %计算残差矩阵e0=e;%将残差矩阵带进下次循环%计算ss(i)的值beta=[t(:,1:i),ones(num,1)]\f0; %求回归方程的系数beta(end,:)=[]; %删除回归分析的常数项cancha=f0-t(:,1:i)*beta; %求残差矩阵ss(i)=sum(sum(cancha.^2)); %求误差平方和%计算p(i)for j=1:numt1=t(:,1:i);f1=f0;she_t=t1(j,:);she_f=f1(j,:); %把舍去的第j 个样本点保存起来t1(j,:)=[];f1(j,:)=[]; %删除第j 个观测值beta1=[t1,ones(num-1,1)]\f1; %求回归分析的系数beta1(end,:)=[]; %删除回归分析的常数项cancha=she_f-she_t*beta1; %求残差向量p_i(j)=sum(cancha.^2);endp(i)=sum(p_i);if i>1Q_h2(i)=1-p(i)/ss(i-1);elseQ_h2(1)=1;endif Q_h2(i)<0.0975fprintf('提出的成分个数r=%d',i);fprintf('   ');fprintf('交叉的有效性=%f',Q_h2(i));r=i;breakend
end
beta_z=[t(:,1:r),ones(num,1)]\f0; %求Y 关于t 的回归系数
beta_z(end,:)=[]; %删除常数项
xishu=w_star(:,1:r)*beta_z; %求Y 关于X 的回归系数,且是针对标准数据的回归系数,每一列是一个回归方程
mu_x=mu(1:n);mu_y=mu(n+1:end);
sig_x=sig(1:n);sig_y=sig(n+1:end);
for i=1:mch0(i)=mu_y(i)-mu_x./sig_x*sig_y(i)*xishu(:,i); %计算原始数据的回归方程的常数项
end
for i=1:mxish(:,i)=xishu(:,i)./sig_x'*sig_y(i); %计算原始数据的回归方程的系数,每一列是一个回归方程
end
sol=[ch0;xish] %显示回归方程的系数,每一列是一个方程,每一列的第一个数是常数项,每一列为一个因变量与自变量们的回归方程
%此为还原为原始变量后的方程
%% 感觉用途不大,用到的时候再查询怎么使用
save mydata x0 y0 num xishu ch0 xish
w1=w(:,1)
w2=w(:,2)
wx1=w_star(:,1)
wx2=w_star(:,2)
tx1=t(:,1)'
tx2=t(:,2)'
beta_z %回归系数
xishu%系数矩阵,即未还原原始变量的系数,每一列为一个因变量与自变量的回归方程%% 用法:分别计算出第四列第五列第六列和前三列的线性回归关系,给出系数,系数以列的方式给出,
%%sol分别为常数项系数,x1 x2 x3的系数
  • 生成mydata数据,进行偏最小二乘检验
clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口
format short
load('mydata.mat')%mydata为计算偏最小二乘保存的数据集,可以用于检验
%% 更直观的解释各个自变量的作用
figure
bar(xishu')%分别画出三个自变量对三个因变量标准化后回归方程的系数的的长度图
axis tight
hold on
annotation('textbox',[0.26 0.14 0.086 0.07],'String',{'单杠'},'FitBoxToText','off');
annotation('textbox',[0.56 0.14 0.086 0.07],'String',{'弯曲'},'FitBoxToText','off');
annotation('textbox',[0.76 0.14 0.086 0.07],'String',{'跳高'},'FitBoxToText','off');%在指定位置加注释
%% 拟合效果的确定
%所有点都在对角线附近均匀分布,则效果较好
ch0=repmat(ch0,num,1);%repmat起复制矩阵组合为新矩阵的作用
yhat=ch0+x0*xish; %计算y 的预测值
y1max=max(yhat);
y2max=max(y0);
ymax=max([y1max;y2max]);
cancha=yhat-y0; %计算残差
figure
subplot(2,2,1)
plot(0:ymax(1),0:ymax(1),yhat(:,1),y0(:,1),'*')
title('单杠成绩预测')
subplot(2,2,2)
plot(0:ymax(2),0:ymax(2),yhat(:,2),y0(:,2),'O')
title('弯曲成绩预测')
subplot(2,1,2)
plot(0:ymax(3),0:ymax(3),yhat(:,3),y0(:,3),'H')
title('跳高成绩预测')
%% 绘制拟合效果图和权重比重图
  • 结果:

偏最小二乘回归≈多元线性回归分析+典型相关分析+主成分分析

matlab偏最小二乘法及其检验相关推荐

  1. 回归预测 | MATLAB实现PLS(偏最小二乘法)和PCR(主成分回归)多输入单输出

    回归预测 | MATLAB实现PLS(偏最小二乘法)和PCR(主成分回归)多输入单输出 目录 回归预测 | MATLAB实现PLS(偏最小二乘法)和PCR(主成分回归)多输入单输出 预测效果 基本介绍 ...

  2. Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择

    全文下载:http://tecdat.cn/?p=22319 本文建立偏最小二乘法(PLS)回归(PLSR)模型,以及预测性能评估.为了建立一个可靠的模型,我们还实现了一些常用的离群点检测和变量选择方 ...

  3. 最小二乘模型 matlab程序,我提供给大家一个偏最小二乘法的代码

    下面是一个偏最小二乘法的完整代码,就是结果不尽如人意,望高人指点一二! 实测数据矩阵: X = [ 30 405 1.5 47.5 40 435 3.0 45.0 50 465 1.0 42.5 60 ...

  4. matlab pls rmsecv,偏最小二乘法PLS回归NIPALS算法及Matlab程序及例子.doc

    偏最小二乘法PLS回归NIPALS算法及Matlab程序及例子 偏最小二乘法PLS回归NIPALS算法的Matlab程序及例子 function [T,P,W,Wstar,U,b,C,B_pls,.. ...

  5. 关系模式最小依赖集怎么求_偏最小二乘法的原理与实现

    偏最小二乘法的原理与实现 近几年来,机器学习在各个领域都有不错的表现,在生物信息领域也有相关的应用.然而,在诸如基因组学.转录组学.蛋白组学以及代谢组学等高通量数据的一大特点是特征量多.样本数少. 以 ...

  6. matlab非线性系统频域标识,基于MATLAB的最小二乘法系统辨识与仿真

    第 29卷 第 2期 许昌学院学报 Vol. 29. No. 2 2010年 3月 JOURNAL OF XUCHANG UN IVERSITY Mar. 2010 收稿日期: 2008 - 10 - ...

  7. H.264视频质量评价算法(基于偏最小二乘法回归)

    Zhiyuan Shi等人(这是中国人写的,但是我没看见中文论文,厦门大学的)在论文<Research on Quality Assessment Metric Based on H.264/A ...

  8. matlab独立t样本检验,matlab与单样本t检验

    R语言,SPSS几EXCEL解决单样本T检验问题.母猪的怀孕期未114d,今抽测... spss单样本t检验_数学_自然科学_专业资料. 文档贡献者 920450863 贡献于2012-12-21 1 ...

  9. 【突变检验方法一】MATLAB实现Pettitt突变检验

    MATLAB实现Pettitt突变检验 1 突变检验 2 Pettitt突变检验 2.1 原理 2.2 MATLAB相关代码 2.3 案例 参考 1 突变检验 突变分为如下主要的几种:均值突变(最常见 ...

  10. MATLAB之最小二乘法

    一.算法原理 给定一些列点x1,x2,.....xn,对应的函数值为y1,y2,......yn.若拟合曲线为y=ax+b,根据条件可写出线形方程组为: [x1 1;x2 1;...;x3;1]*[a ...

最新文章

  1. ImportError: Could not import backend for traitsui. Make sure you have a suitable UI toolkit like
  2. Unity3D NGUI学习(一)血条
  3. 大数据市场规模5年将达8000亿 交易平台忙圈地
  4. 每日程序C语言40-不带头结点的尾插法创建链表
  5. python程序填空题参照代码模板、完善代码_python二级考试操作题11.pdf
  6. php如何打出的正方形行列,javascript实现输出指定行数正方形图案的方法
  7. IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
  8. 微课系列(8):Python中lambda表达式的变量作用域
  9. HttpWebRequest简单使用
  10. oracle在进行跨库访问时,采用dblink实现
  11. 计算机控制系统中采样速率的选择
  12. 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]
  13. echart 中国地图 带effectScatter和lines
  14. qunee for html5 绘图
  15. 软路由和OpenWrt/LEDE
  16. Google earth engine 入门与简介
  17. preHandle执行多次问题
  18. pics_IE的内容顾问,PICS评级和当今的ASP.NET Flakey
  19. PTA 7-113 用switch语句编程百分制成绩转换为五分制成绩
  20. 据统计:程序员平均寿命仅为37.9岁!

热门文章

  1. 惠普803墨盒清零步骤_打印机惠普7110墨盒清零的方法
  2. 哆啦A梦的神奇口袋 - 这全是宝藏 https://baozangku.com/
  3. GeekTool使用cal格式不对齐
  4. 修复被osx86破坏的网卡
  5. 物联网和区块链:挑战与风险
  6. 传染病模型SIS及相应的matlab代码
  7. win7下VS2012配置DirectShow+Opencv并且多摄像头采集
  8. 如何在页面上预览word
  9. react里面点击按钮触发复制文本功能
  10. idea更换源_IDEA修改Maven替换阿里源