uv
maxcov(Xu,Yv).(1)
Ycov(Xu,y)≡Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.∥u∥=1.
由于不依赖,我们必须最大化。让我们考虑一下,在哪里数据是单独标准化的(我最初犯了错误地缩放线性组合而不是分别缩放和!),因此;但是并取决于。总之,
最大程度地增加潜在分量和响应变量之间的相关性将不会产生相同的结果uVar(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]
x1x2Var(x1)=Var(x2)=1Var(Xu)≠1u。
我应该感谢Arthur Tenenhaus,他为我指出了正确的方向。
使用单位权重向量不是限制性的,如果需要,某些程序包(pls. regression
在plsgenomics中,基于Wehrens早期程序包中的代码pls.pcr
)将返回非标准化的权重向量(但潜在分量仍为标准1)。但是大多数PLS软件包都将返回标准化的,包括您使用的软件包,特别是那些实现SIMPLS或NIPALS算法的软件包。我发现两者很好地概括了在巴里M.明智的介绍方法,偏最小二乘法的属性(PLS)回归,和算法之间的差异,但化学计量学u小插图也提供了很好的讨论(第26-29页)。同样特别重要的是,大多数PLS例程(至少我在R中知道的例程)都假定您提供了非标准化变量,因为对中和/或缩放是在内部处理的(例如,在进行交叉验证时,这一点尤其重要。 )。
给定约束,发现向量为Ù Ù = X ' ÿu′u=1u
u=X′y∥X′y∥.
通过一点模拟,可以得到以下结果:
set.seed(101)
X <- replicate(2, rnorm(100))
y <- 0.6*X[,1] + 0.7*X[,2] + rnorm(100)
X <- apply(X, 2, scale)
y <- scale(y)
# NIPALS (PLS1)
u <- crossprod(X, y)
u <- u/drop(sqrt(crossprod(u))) # X weights
t <- X%*%u
p <- crossprod(X, t)/drop(crossprod(t)) # X loadings
您可以将以上结果(u=[0.5792043;0.8151824]
尤其是)与R包提供的结果进行比较。例如,使用化学计量学软件包中的NIPALS(我知道mixOmics软件包中提供了另一种实现),我们将获得:
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
使用plsr
其默认的内核PLS算法,可以获得类似的结果:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
在所有情况下,我们都可以检查的长度为1。u
如果您更改功能以将其优化为可读取的内容
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
然后标准化u
(u <- u/sqrt(crossprod(u))
),您应该更接近上述解决方案。
旁注:作为基准(1)等同于
可以发现从的SVD的左奇异向量对应于最大本征值:ü X ' ÿ
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
在更一般的情况下(PLS2),总结上述内容的一种方式是说,第一PLS规范向量是X和Y的协方差矩阵在两个方向上的最佳近似。
参考文献
- Tenenhaus,M(1999)。L'approche PLS。Revue de StatistiqueAppliquée,47(2),5-40。
- ter Braak,CJF和de Jong,S(1993)。偏最小二乘回归的目标函数。化学计量杂志,12,41–54。
- Abdi,H(2010)。偏最小二乘回归和潜在结构回归的投影(PLS回归)。Wiley跨学科评论:计算统计,2,97-106。
- Boulesteix,AL和Strimmer,K(2007)。偏最小二乘:用于分析高维基因组数据的通用工具。生物信息学简报,8(1),32-44。
pls
在此JSS论文中,对程序包和PLS回归进行了很好的概述。