1. 程式人生 > >偏最小二乘迴歸(PLSR)- 2 標準演算法(NIPALS)

偏最小二乘迴歸(PLSR)- 2 標準演算法(NIPALS)

http://www.cnblogs.com/pegasus/p/3396085.html

1 NIPALS 演算法

Step1:對原始資料X和Y進行中心化,得到X0和Y0。從Y0中選擇一列作為u1,一般選擇方差最大的那一列。

注:這是為了後面計算方便,如計算協方差時,對於標準化後的資料,其樣本協方差為cov(X,Y)=XTY/(n-1)。

Step2:迭代求解X與Y的變換權重(w1,c1)、因子(u1,t1),直到收斂

step 2.1:利用Y的資訊U1,求X的變換權重w1(w1實現有X0到因子t1的變換,t1=X0*w1)及因子t1。從而將X0的資訊用t1來近似表達。

            

image_thumb[68] (2.1)

           image_thumb[69] (2.2)

           image_thumb[70] (2.3)

Step2.2:利用X的資訊t1,求Y的變換權重c1(c1實現有Y0到因子u1的變換,u1=Y0*c1),並更新因子u1。從而將Y0的資訊用t1來近似表達。

            image_thumb[72] (2.4)

            image_thumb[73] (2.5)

     image_thumb[75] (2.6)

Step2.5:判斷是否已找到合理解

           image_thumb[76] (2.7)

         若image_thumb[78]<閾值(如image_thumb[79])則繼續下面步驟;否則,取image_thumb[81],返回step2.1。

注:

1)以上過程的意義及其收斂性的直觀分析

     a)公式2.1,實際上求解了由Y的因子u1到X的迴歸模型的係數

image_thumb[99],公式2.2與2.3將X對映為第一個因子t1。

     b)同理,公式2.4,實際上求解了由X的因子t1到Y的迴歸模型的係數,公式2.5與2.6將X對映為第一個因子t1。

      c)這裡交替建立X與Y直接回歸關係的方式,通常會很快收斂。

2)w1與c1的其他求法。[2,3]中已經證明以上求解過程收斂後找到的解w1與c1可以利用矩陣分析方法找到

     a)特徵值分解方法(Eigen Value Decomposition):w1是image_thumb[100]的最大特徵值的單位特徵向量,c1是image_thumb[101]的最大特徵值的單位特徵向量,

     b)SVD分解法(singular vector decomposition):w1和c1分別於對X0

TY0進行SVD分解獲得的第一對左奇異向量(left singular vector)和右奇異向量的單位

向量。

Step3:求X與Y的殘差矩陣

step 3.1:求X的載荷(X-loading)p1(p1反映X0與因子t1的直接關係,image_thumb[84]

        注:前面求得X的變換權重w1是由X0到t1的關係,此處的p1是由t1到X0的關係。而且,由於後續的Wi(i>1)是根據Xi的殘差求得的,因此它無法反映T到X0的關係。所以,才要求出P以直接反映T到X0的關係)

                 image_thumb[85] (2.8)

        p1求解公式的推導如下

a)前面已求出t1,現在希望用t1來表達X0,建立迴歸模型

image_thumb[37]

b)模型不能表達的資訊即為X0的殘差矩陣X1。

image_thumb[43]

c)上式的關鍵是求p1,其求解公式推導過程:對image_thumb[39]轉置得image_thumb[40],兩邊右乘t1有image_thumb[41],從而有

image_thumb[42]

注:p1代表因子t1在X上的載荷(loadings),它反映了原始變數X與第一個因子向量t1間的關係。

step 3.2:求X0的殘差X1。此殘差表達了u1所不能反映的X0中的資訊。

image_thumb[94] (2,9)

step 3.3:求Y的載荷(Y-loading)q1(q1反映Y0與因子U1的關係,image_thumb[87]

image_thumb[88] (2.10)

step 3.4:建立X因子t1與Y因子u1間的迴歸模型image_thumb[90],用t1預測u1的資訊。

image_thumb[91](2.11)

step 3.5:求Y0的殘差Y1。此殘差表達了X因子t1所不能預測的Y0中的資訊

image_thumb[96](2.12)

注:這裡利用image_thumb[98],建立t1與Y間的關係。

Step4:利用X1與Y1,重複上面步驟,求解下一批PLS引數(因子、轉換權重、載荷、迴歸係數等)。

在這個演算法中,當一個因子計算出來後,進一步計算出X(及Y)的殘差。下一個因子是從當前殘差矩陣計算出來,因此PLS模型引數(因子scores,loadings, weights)與最初的X0無關,而是與殘差有關。

2 NIPALS-PLS 引數的理解

1)變換權向量w

                    image

在第二輪及以後的計算過程中,權向量wa將殘差Xa-1變換為因子得分ta,而不是對原始預處理後的資料X0直接進行變換,這阻礙了對於因子的有效解釋實際上,權向量在PLS迴歸模型中的解釋中用處不大。

2)構建X0到T直接聯絡的權向量R

                  imageimage

PLS演算法執行完成後,我們得到所有的因子t,那麼我們就可以直接建立原始資料X0與其之間的轉換權重矩陣R。其實R就是由X0到T的迴歸係數,其計算公式為

                 image

3 NIPALS-PLS 的預測過程

當完成PLS模型構建後,我們得到的PLS模型引數包括:

1)轉換權重:W(X-weights),C(Y-wights)

2)因子得分:T(X-factor scores),U(Y-factor scores)

3)載荷:P(X-loadings),Q(Y-loadings)

當來了一條新資料image,其預測計算過程如下

1)預處理:image。注:預處理方法與建模時保持一致,這裡公式採用中心化處理方法。

2)依次求出求image的各因子和殘差

              image

             image

3)計算預測值

            image

上面是由T到Y預測值的迴歸方程,而不是由X0到Y預測值的迴歸方程。如果在PLS建模過程中獲得第2節中介紹的可將X0直接轉換為T的權重R,那麼就能獲得一個針對X0的更直接的迴歸公式。

                                  image,迴歸係數image

參考文獻

[1] S. de Jong. SIMPLS: an alternative approach to partial least squares regression. Chemometrics and Intelligent Laboratory Systems, 18:251–263, 1993.

[2] R. Manne. Analysis of Two Partial-Least-Squares Algorithms for Multivariate Calibration. Chemometrics and Intelligent Laboratory Systems, 2:187–197, 1987.

[3] A. H¨oskuldsson. PLS Regression Methods. Journal of Chemometrics, 2:211–228,1988.