偏最小二乘法介绍及应用

star2017 1年前 ⋅ 278 阅读

本文由一起大数据网整理,转载请保留原文链接。

为了更好的理解PLS,推荐大家先学习回归分析、典型相关分析和主成分分析相关知识内容(这些内容在SPSS视频教程里都有)。

第一部分:概念与诊断(来自百度百科)

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

基本公式

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

基本特点

与传统多元线性回归模型相比,偏最小二乘回归的特点是:
(1)能够在自变量存在严重多重相关性的条件下进行回归建模;
(2)允许在样本点个数少于变量个数的条件下进行回归建模;
(3)偏最小二乘回归在最终模型中将包含原有的所有自变量;
(4)偏最小二乘回归模型更易于辨识系统信息与噪声(甚至一些非随机性的噪声);
(5)在偏最小二乘回归模型中,每一个自变量的回归系数将更容易解释。
在计算方差和协方差时,求和号前面的系数有两种取法:当样本点集合是随机抽取得到时,应该取1/(n-1);如果不是随机抽取的,这个系数可取1/n。

诊断方法

经验式诊断法

1、在自变量的简单相关系数矩阵中,有某些自变量的相关系数值较大。
2、回归系数的代数符号与专业知识或一般经验相反;或者,它同该自变量与y的简单相关系数符号相反。
3、对重要自变量的回归系数进行t检验,其结果不显著。
特别典型的是,当F检验能在高精度下通过,测定系数R2的值亦很大,但自变量的t检验却全都不显著,这时,多重相关性的可能性将很大。
4、如果增加(或删除)一个变量,或者增加(或删除)一个观测值,回归系数的估计值发生了很大的变化。
5、重要自变量的回归系数置信区间明显过大。
6、在自变量中,某一个自变量是另一部分自变量的完全或近似完全的线性组合。
7、对于一般的观测数据,如果样本点的个数过少,样本数据中的多重相关性是经常存在的。
但是,采用经验式方法诊断自变量系统中是否确实存在多重相关性,并不十分可靠,另一种较正规的方法是利用统计检验(回归分析),检查每一个自变量相对其它自变量是否存在线性关系。

方差膨胀因子诊断法

最常用的多重相关性的正规诊断方法是使用方差膨胀因子。自变量xj的方差膨胀因子记为(VIF)j,它的计算方法为
(4-5) (VIF)j =(1-R j2)-1
式中,R j2是以xj为因变量时对其它自变量回归的复测定系数。
所有xj变量中最大的(VIF)j通常被用来作为测量多重相关性的指标。一般认为,如果最大的(VIF)j超过10,常常表示多重相关性将严重影响最小二乘的估计值。
(VIF)j被称为方差膨胀因子的原因,是由于它还可以度量回归系数的估计方差与自变量线性无关时相比,增加了多少。
不妨假设x1,x2,…,xp均是标准化变量。采用最小二乘法得到回归系数向量B,它的精度是用它的方差来测量的。B的协方差矩阵为
Cov(B)= σ2 (X’X)-1
式中,σ2是误差项方差。所以,对于回归系数b j,有
Var(b j)= σ2cjj
cjj是(X’X)-1矩阵中第j个对角元素。可以证明,
cjj =(VIF)j

第二部分:PLS分析

SAS,SPSS和R都可以进行PLS分析:

SAS直接调用PLS过程,案例请参考:偏最小二乘 深入学习请看官方文档:PLS代码SAS

SPSS 22之前的版本需要自己安装Python插件,从22开始,可以在安装SPSS的时候直接选择安装插件。下图就是安装SPSS 22的时候截取的。

PLS插件

 

 

R进行PLS分析比较简单:请参考来自 http://blog.csdn.net/li603060971/article/details/49508381 的代码

#偏最小二乘
setwd(“C:/Users/IBM/Desktop/研一课程/2.2回归分析/回归作业”)  #设定当前的工作目录
shuju=read.table(“shuju.txt”,header=T)
shuju   #读取数据
library(pls)
set.seed(1)  #求最优的成分个数
shuju.plsr <- plsr(y~.,data=shuju[,-1],scale=T,validation=”CV”)
summary(shuju.plsr)
#下面使用3个成分
shuju.plsr3 <- plsr(y~.,3,data=shuju[,-1],scale=T,validation=”CV”)
summary(shuju.plsr3)
coef(shuju.plsr3)
shuju.coef <- coef(shuju.plsr2)/apply(shuju[,2:8],2,sd)#求原始变量的回归系数
shuju.int <- mean(shuju$y)-shuju.coef%*%apply(shuju[,2:8],2,mean)#求截距
c(shuju.int,shuju.coef)
附录数据
years y x1 x2 x3 x4 x5 x6 x7
1974 172.9 11246 681 105.9 10183 4110 11242 9
1975 352.94 10335 791 107.4 10414 3996 12693 6.5
1976 447.67 13156 607 114.4 13134 4689 16681 6
1977 404.02 6127 714 110.8 15033 6876 22131 4.75
1978 409.51 27419 911 99.4 17389 8636 31353 4.75
1979 619.71 25633 1231 91.4 21715 12339 43528 9.5
1980 1121.17 95684 2760 90.8 27075 16623 70752 10
1981 1506.94 105987 2651 86.3 31827 19937 125989 16
1982 1105.79 46230 2105 125.3 35393 24787 99468 10.5
1983 933.03 37165 3030 107.4 38823 25112 82478 10.5
1984 1008.54 48787 2810 106.6 46079 24414 54936 8.5
1985 1567.56 75808 2649 115.7 47871 22970 87135 6
1986 1960.06 123128 3031 110.1 54372 24403 129884 6.5
1987 2884.88 371406 3644 105.8 65602 30531 153044 5
1988 2556.72 198569 3690 101.6 74917 37861 215033 5.25

最后,推荐几个不错的PLS相关的资料:

偏最小二乘回归(PLSR)算法原理

偏最小二乘回归的原理及应用

基于R语言的PLS算法的实现

PLS回归应用实例

偏最小二乘回归分析

原创文章,作者:xsmile,如若转载,请注明出处:http://www.17bigdata.com/%e5%81%8f%e6%9c%80%e5%b0%8f%e4%ba%8c%e4%b9%98%e6%b3%95%e4%bb%8b%e7%bb%8d%e5%8f%8a%e5%ba%94%e7%94%a8/

更多内容请访问:IT源点

相关文章推荐
  • 该目录下还没有内容!

全部评论: 0

    我有话说: