Regresja PLS opiera się na algorytmach iteracyjnych (np. NIPALS, SIMPLS). Twój opis głównych pomysłów jest poprawny: szukamy jednego (PLS1, jednej zmiennej odpowiedzi / wielu predyktorów) lub dwóch (PLS2, z różnymi trybami, wielu zmiennych odpowiedzi / wielu predyktorów) wektora (-ów) wag, (i ) powiedzmy, aby utworzyć kombinację liniową pierwotnej zmiennej (zmiennych), tak że kowariancja między Xu i Y (Yv, dla PLS2) jest maksymalna. Skupmy się na wyodrębnieniu pierwszej pary wag powiązanych z pierwszym składnikiem. Formalnie kryterium optymalizacji czyta
W twoim przypadku jest jednoznaczne, więc sprowadza się do maksymalizacji
uv
maxcov(Xu,Yv).(1)
Ycov(Xu,y)≡Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.∥u∥=1.
Ponieważ nie zależy od , musimy zmaksymalizować . Zastanówmy się , gdzie dane są indywidualnie standaryzowane (początkowo popełniłem błąd skalowania kombinacji liniowej zamiast osobno i !), Tak że ; jednak i zależy od . Podsumowując,
maksymalizacja korelacji między składnikiem utajonym a zmienną odpowiedzi nie da takich samych wynikówVar(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]
x1x2Var(x1)=Var(x2)=1Var(Xu)≠1u.
Powinienem podziękować Arthurowi Tenenhausowi, który wskazał mi właściwy kierunek.
Używanie wektorów wagi jednostkowej nie jest ograniczające, a niektóre pakiety ( pls. regression
w wersji plsgenomics , oparte na kodzie z wcześniejszego pakietu Wehrensa pls.pcr
) zwracają niestandardowe wektory wagi (ale z ukrytymi składnikami wciąż o normie 1), jeśli są wymagane. Ale większość pakietów PLS zwróci znormalizowany , w tym ten, którego użyłeś, zwłaszcza te implementujące algorytm SIMPLS lub NIPALS; Znalazłem dobry przegląd obu podejść w prezentacji Barry'ego M. Wise'a, właściwości regresji częściowych najmniejszych kwadratów (PLS) i różnic między algorytmami , ale chemometriiuwinieta oferuje również dobrą dyskusję (str. 26–29). Szczególnie ważny jest również fakt, że większość procedur PLS (przynajmniej ta, którą znam w R) zakłada, że udostępniasz niestandardowe zmienne, ponieważ centrowanie i / lub skalowanie jest obsługiwane wewnętrznie (jest to szczególnie ważne na przykład podczas sprawdzania poprawności krzyżowej ).
Biorąc pod uwagę ograniczenie , wektor jestu′u=1u
u=X′y∥X′y∥.
Za pomocą małej symulacji można uzyskać w następujący sposób:
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
Możesz porównać powyższe wyniki ( u=[0.5792043;0.8151824]
w szczególności) z tym, co dadzą pakiety R. Np. Używając NIPALS z pakietu chemometrii (inna implementacja, o której wiem, że jest dostępna w pakiecie mixOmics ), otrzymalibyśmy:
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
Podobne wyniki można uzyskać za pomocą plsr
domyślnego algorytmu PLS jądra:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
We wszystkich przypadkach możemy sprawdzić, czy ma długość 1.u
Pod warunkiem, że zmienisz funkcję, aby zoptymalizować na czytającą
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
a u
następnie normalizować ( u <- u/sqrt(crossprod(u))
), powinieneś być bliżej powyższego rozwiązania.
Sidenote : Jako kryterium (1) jest równa
znajduje się w lewym pojedynczej wektora z SVD odpowiadający największej wartości własnej:
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
W bardziej ogólnym przypadku (PLS2) sposobem na podsumowanie powyższego jest stwierdzenie, że pierwsze wektory kanoniczne PLS są najlepszym przybliżeniem macierzy kowariancji X i Y w obu kierunkach.
Bibliografia
- Tenenhaus, M (1999). L'approche PLS . Revue de Statistique Appliquée , 47 (2), 5-40.
- ter Braak, CJF i de Jong, S (1993). Funkcja celu częściowej regresji metodą najmniejszych kwadratów . Journal of Chemometrics , 12, 41–54.
- Abdi, H (2010). Częściowa regresja najmniejszych kwadratów i rzut na ukrytą regresję struktury (regresja PLS) . Wiley Interdisciplinary Reviews: Statystyka obliczeniowa , 2, 97-106.
- Boulesteix, AL i Strimmer, K (2007). Częściowe najmniejsze kwadraty: wszechstronne narzędzie do analizy wielowymiarowych danych genomowych . Briefings in Bioinformatics , 8 (1), 32-44.
pls
tym dokumencie JSS znajduje się dobry przegląd pakietu i regresji PLS .