通常の最小二乗対総最小二乗
最初に、予測変数(独立)変数 1つだけの最も単純なケースを考えてみましょう。簡単にするために、xとyの両方を中央に置きます。つまり、切片は常にゼロです。標準のOLS回帰と「直交」TLS回帰の違いは、PCAで最も人気のあるスレッドで最も人気のある回答からのこの(私が適応した)図に明確に示されています。xxy
OLSフィット方程式の観測値との間の二乗距離を最小化することによってYの予測値yと。TLSは、(x 、y )点間の距離の2乗と線上の投影を最小化することにより、同じ方程式に適合します。この最も単純なケースでは、TLSラインは2Dデータの最初の主要なコンポーネントにすぎません。βを見つけるには、(x 、y )点でPCAを実行します。つまり、2 × 2共分散行列Σを構築し、その最初の固有ベクトルvy=βxyy^(x,y)β(x,y)2×2Σです。 ; 次に、 β = v y / v xv=(vx,vy)β=vy/vx
Matlabで:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
Rで:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
ちなみに、とyが中央に配置されていなくても、これにより正しい勾配が得られます(組み込みのPCA関数が自動的に中央配置を実行するため)。インターセプト、計算回収するβ 0 = ˉ Yが - β ˉ Xxyβ0=y¯−βx¯。
OLS対TLS、重回帰
従属変数の指定されたし、多くの独立変数がxはIを(再び、すべての簡略化のために中心)、回帰方程式にフィットY = β 1 X 1 + ... + β P X Pを。OLSは、観測値との間の二乗誤差最小化することによって適合を行いY予測値yと。TLSは、観察との間の二乗距離を最小化することによって適合を行い(X、Y )∈ R P + 1yxi
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1 回帰平面/超平面上の点と最も近い点。
もう「回帰線」がないことに注意してください!上記の方程式は超平面を指定します:2つの予測子がある場合は2D平面、3つの予測子がある場合は3D超平面などです。したがって、上記のソリューションは機能しません。最初のPCのみを取得してTLSソリューションを取得できません(行)。それでも、ソリューションはPCAを介して簡単に取得できます。
前と同様に、PCAはポイントで実行されます。これにより、Vの列にp + 1の固有ベクトルが生成されます。最初のp個の固有ベクトルは、必要なp次元の超平面Hを定義します。最後の(数p + 1)固有ベクトルv p + 1はそれに直交します。問題は、最初のp個の固有ベクトルによって与えられたHの基底をどのようにβに変換するかです。(x,y)p+1VppHp+1vp+1Hpβ係数です。
我々が設定されている場合ことを確認しすべてのため、私は≠ k個のみX K = 1、次いで、Y = β K、すなわち、ベクトル(0 、... 、1 、... 、β K)∈ Hの超平面にあるH。一方、v p + 1 = (v 1、… 、v p + 1xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
Hはそれに直交します。ゼロでなければならないそれらのドット積、すなわち
、V 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.
Matlabで:
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);
Rで:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
繰り返しますが、これにより、とyが中央に配置されていない場合でも、正しい勾配が得られます(組み込みPCA関数が自動的に中央に配置されるため)。切片を回復するために、計算は、β 0 = ˉ Yが - ˉ X β。xyβ0=y¯−x¯β
x(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
TLSのクローズドフォームソリューション
β
Xyvp+1[Xy]σ2p+1−vp+1/vp+1=(β−1)⊤
(X⊤Xy⊤XX⊤yy⊤y)(β−1)=σ2p+1(β−1),
βTLS=(X⊤X−σ2p+1I)−1X⊤y,
βOLS=(X⊤X)−1X⊤y.
多変量重回帰
同じ式を多変量の場合に一般化できますが、多変量TLSが何をするかを定義するためにも、代数が必要になります。TLSのウィキペディアを参照してください。多変量OLS回帰は、各従属変数の一連の単変量OLS回帰と同等ですが、TLSの場合はそうではありません。