Zwykłe najmniejsze kwadraty vs. suma najmniejszych kwadratów
Rozważmy najpierw najprostszy przypadek tylko jednej zmiennej predykcyjnej (niezależnej) . Dla uproszczenia, niech x i y są wyśrodkowane, tzn. Przecięcie jest zawsze zerowe. Różnica między standardową regresją OLS i „ortogonalną” regresją TLS jest wyraźnie pokazana na tej (dostosowanej przeze mnie) liczbie z najpopularniejszej odpowiedzi w najpopularniejszym wątku na PCA:xxy
OLS dopasowuje się do równania przez minimalizowanie kwadratów odległości pomiędzy obserwowanymi wartościami ý i przewidywanych wartości y . TLS pasuje do tego samego równania, minimalizując kwadratowe odległości między punktami ( x , y ) i ich rzut na linię. W tym najprostszym przypadku linia TLS jest po prostu pierwszym głównym składnikiem danych 2D. Aby znaleźć β , wykonaj PCA w punktach ( x , y ) , tj. Skonstruuj macierz kowariancji 2 × 2 i znajdź pierwszy wektor własnyy=βxyy^(x,y)β(x,y)2×2v = ( v x , v y ) β = v y / v xΣv=(vx,vy) ; następnie .β=vy/vx
W Matlabie:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
W R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
Nawiasem mówiąc, to wydajność prawidłowe nachylenie nawet jeśli i nie wyśrodkowany (ponieważ wbudowanej funkcji automatycznego wykonywania centrowania PCA). Aby odzyskać przechwycenie, oblicz .y β 0 = ˉ y - β ˉ xxyβ0=y¯−βx¯
OLS vs. TLS, regresja wielokrotna
Biorąc pod uwagę zmienną zależną i wiele zmiennych niezależnych (ponownie wszystkie wyśrodkowane dla uproszczenia), regresja pasuje do równaniaOLS dopasowuje się, minimalizując do kwadratu błędy między obserwowanymi wartościami a wartościami przewidywanymi . TLS dopasowuje się, minimalizując kwadratowe odległości między zaobserwowanymi punktami a najbliższymi punktami na płaszczyźnie regresji / hiperpłaszczyźnie.x i y = β 1 x 1 + … + β p x p . y y ( x , y ) ∈ R s + 1yxi
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1
Zauważ, że nie ma już „linii regresji”! Powyższe równanie określa hiperpłaszczyznę : jest to płaszczyzna 2D, jeśli istnieją dwa predyktory, hiperpłaszczyzna 3D, jeśli istnieją trzy predyktory itp. Tak więc powyższe rozwiązanie nie działa: nie możemy uzyskać rozwiązania TLS, biorąc tylko pierwszy komputer (który jest linia). Mimo to rozwiązanie można łatwo uzyskać za pomocą PCA.
Tak jak poprzednio, PCA wykonuje się na punktach . Daje to wektory w kolumnach . Pierwsze wektory zdefiniować wymiarową hiperpłaszczyznę że musi; ostatni (liczba ) wektor własny jest do niego ortogonalny. Pytanie brzmi, jak przekształcić podstawę podanej przez pierwszych wektorów własnych do współczynników.p + 1 V p p H p + 1 v p + 1 H p β(x,y)p+1VppHp+1vp+1Hpβ
Zauważ, że jeśli ustawimy dla wszystkich i tylko , wtedy , tj. Wektor leży w hiperpłaszczyzna . Z drugiej strony wiemy, że jest do niego ortogonalny. Czyli ich iloczyn iloczynu musi wynosić zero:I ≠ k x k = 1 y = β K ( 0 , ... , 1 , ... , β k ) ∈ H H V P + 1 = ( V, 1 , ... , v p + 1 )xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
Hv k + β k v p + 1 = 0 ⇒ β k = - v k / v p + 1 .vp+1=(v1,…,vp+1)⊥H
vk+βkvp+1=0⇒βk=−vk/vp+1.
W Matlabie:
v = pca([X y]); //# X is a centered n-times-p matrix, y is n-times-1 column vector
beta = -v(1:end-1,end)/v(end,end);
W R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Ponownie, to otrzymując odpowiednie terenie, nawet w przypadku i nie wycentrowany (ponieważ wbudowanej funkcji automatycznego wykonywania centrowania PCA). Aby odzyskać przechwytywanie, oblicz .y β 0 = ˉ y - ˉ x βxyβ0=y¯−x¯β
W ramach kontroli poczytalności zauważ, że to rozwiązanie pokrywa się z poprzednim w przypadku tylko jednego predyktora . Rzeczywiście, wówczas przestrzeń jest 2D, a zatem biorąc pod uwagę, że pierwszy wektor własny PCA jest ortogonalny do drugiego (ostatniego), .( x , y ), V ( 1 ) Y / V ( 1 ) x = - V ( 2 ) x / v ( 2 ) Yx(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
Rozwiązanie w formie zamkniętej dla TLS
Nieoczekiwanie okazuje się, że istnieje równanie o zamkniętej formie dla . Poniższy argument pochodzi z książki Sabine van Huffel „Suma najmniejszych kwadratów” (sekcja 2.3.2).β
Niech i będą wyśrodkowanymi macierzami danych. Ostatni wektor własny PCA jest wektorem własnym macierzy kowariancji o wartości własnej . Jeśli jest to wektor własny, to tak samo jest . Zapisywanie równania wektora własnego:
Xyvp+1[Xy]σ2p+1−vp+1/vp+1=(β−1)⊤
(X⊤Xy⊤XX⊤yy⊤y)(β−1)=σ2p+1(β−1),
i obliczając produkt po lewej, natychmiast otrzymujemy, że co mocno przypomina znane wyrażenie OLS
βTLS=(X⊤X−σ2p+1I)−1X⊤y,
βOLS=(X⊤X)−1X⊤y.
Wieloczynnikowa regresja wielokrotna
Tę samą formułę można uogólnić na przypadek wielowymiarowy, ale nawet zdefiniowanie działania TLS wielowymiarowego wymagałoby pewnej algebry. Zobacz Wikipedia na TLS . Wielowymiarowa regresja OLS jest równoważna wiązce jednoczynnikowych regresji OLS dla każdej zmiennej zależnej, ale w przypadku TLS tak nie jest.