Kuadrat terkecil biasa vs kuadrat terkecil total
Pertama mari kita pertimbangkan kasus paling sederhana dari hanya satu variabel prediktor (independen) . Untuk kesederhanaan, biarkan keduanya x dan y dipusatkan, yaitu intersep selalu nol. Perbedaan antara regresi OLS standar dan regresi "orthogonal" TLS jelas ditunjukkan pada gambar (diadaptasi oleh saya) ini dari jawaban paling populer di utas terpopuler di PCA:xxy
OLS cocok persamaan dengan meminimalkan jarak kuadrat antara nilai-nilai yang diamati y dan nilai-nilai diprediksi y . TLS cocok dengan persamaan yang sama dengan meminimalkan jarak kuadrat antara ( x , y ) poin dan proyeksi mereka di telepon. Dalam kasus paling sederhana ini garis TLS hanyalah komponen utama pertama dari data 2D. Untuk menemukan β , jangan PCA pada ( x , y ) poin, yaitu membangun 2 × 2 kovarians matriks Σ dan menemukan vektor eigen pertama v =y=βxyy^(x,y)β(x,y)2 × 2Σ ; maka β = v y / v x .v =( vx, vy)β= vy/ vx
Di Matlab:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
Dalam R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
By the way, ini akan menghasilkan kemiringan yang benar bahkan jika dan y tidak terpusat (karena fungsi PCA bawaan secara otomatis melakukan pemusatan). Untuk memulihkan intersep, hitung β 0 = ˉ y - β ˉ x .xyβ0= y¯- βx¯
OLS vs. TLS, regresi berganda
Diberikan variabel dependen dan banyak variabel independen x i (sekali lagi, semuanya berpusat untuk kesederhanaan), regresi sesuai dengan persamaan y = β 1 x 1 + ... + β p x p . OLS tidak cocok dengan meminimalkan kesalahan kuadrat antara nilai-nilai yang diamati dari y dan diperkirakan nilai-nilai y . TLS melakukan fit dengan meminimalkan jarak kuadrat antara yang diamati ( x , y ) ∈ R p + 1yxsaya
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1 poin dan poin terdekat pada bidang regresi / pesawat terbang.
Perhatikan bahwa tidak ada lagi "garis regresi"! Persamaan di atas menentukan hyperplane : ini adalah bidang 2D jika ada dua prediktor, 3D hyperplane jika ada tiga prediktor, dll. Jadi solusi di atas tidak berfungsi: kita tidak bisa mendapatkan solusi TLS dengan hanya mengambil PC pertama (yang merupakan sebuah garis). Meski begitu, solusinya dapat dengan mudah diperoleh melalui PCA.
Seperti sebelumnya, PCA dilakukan pada titik . Ini menghasilkan p + 1 vektor eigen di kolom V . Vektor p eigen pertama mendefinisikan hyperplane p -dimensional H yang kita butuhkan; yang terakhir (nomor p + 1 ) vektor eigen v p + 1 adalah orthogonal untuk itu. Pertanyaannya adalah bagaimana mengubah basis H yang diberikan oleh vektor eigen p pertama menjadi koefisien β .(x,y)p+1VppHp+1vp+1Hpβ
Perhatikan bahwa jika kita mengatur untuk semua i ≠ k dan hanya x k = 1 , maka y = β k , yaitu vektor ( 0 , ... , 1 , ... , β k ) ∈ H terletak pada hyperplane H . Di sisi lain, kita tahu bahwa v p + 1 = ( v 1 , ... , v p + 1xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
H ortogonal untuk itu. Yaitu produk titik mereka harus nol:
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.
Di 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);
Dalam R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Sekali lagi, ini akan menghasilkan lereng yang benar bahkan jika dan y tidak terpusat (karena fungsi PCA bawaan secara otomatis melakukan pemusatan). Untuk memulihkan intersep, hitung β 0 = ˉ y - ˉ x β .xyβ0=y¯−x¯β
x(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
Solusi formulir tertutup untuk 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.
Regresi berganda multivarian
Rumus yang sama dapat digeneralisasi ke kasus multivariat, tetapi bahkan untuk menentukan apa yang dilakukan TLS multivariat, akan memerlukan beberapa aljabar. Lihat Wikipedia di TLS . Regresi OLS multivariat setara dengan sekelompok regresi OLS univariat untuk setiap variabel dependen, tetapi dalam kasus TLS tidak demikian.