Bình phương tối thiểu bình thường so với tổng bình phương tối thiểu
Trước tiên chúng ta hãy xem xét trường hợp đơn giản nhất chỉ có một biến dự đoán (độc lập) . Để đơn giản, hãy để cả x và y làm trung tâm, tức là chặn luôn bằng không. Sự khác biệt giữa hồi quy OLS tiêu chuẩn và hồi quy TLS "trực giao" được thể hiện rõ ràng trên hình này (được điều chỉnh bởi tôi) từ câu trả lời phổ biến nhất trong luồng phổ biến nhất trên PCA:xxy
OLS phù hợp phương trình bằng cách giảm thiểu khoảng cách bình phương giữa các giá trị quan sát y và các giá trị dự đoán y . TLS phù hợp với cùng một phương trình bằng cách giảm thiểu khoảng cách bình phương giữa các điểm ( x , y ) và hình chiếu của chúng trên đường thẳng. Trong trường hợp đơn giản nhất, dòng TLS chỉ đơn giản là thành phần chính đầu tiên của dữ liệu 2D. Để tìm β , đừng PCA trên ( x , y ) điểm, tức là xây dựng 2 × 2 hiệp phương sai ma trận Σ và tìm eigenvector đầu tiên v =y=βxyy^(x,y)β(x,y)2×2Σ ; sau đó β = v y / v x .v=(vx,vy)β=vy/vx
Trong Matlab:
v = pca([x y]); //# x and y are centered column vectors
beta = v(2,1)/v(1,1);
Trong R:
v <- prcomp(cbind(x,y))$rotation
beta <- v[2,1]/v[1,1]
Nhân tiện, điều này sẽ mang lại độ dốc chính xác ngay cả khi và y không được căn giữa (vì các chức năng PCA tích hợp sẽ tự động thực hiện định tâm). Để khôi phục lại đánh chặn, tính toán beta 0 = ˉ y - beta ˉ x .xyβ0=y¯−βx¯
OLS so với TLS, hồi quy bội
Cho một biến phụ thuộc và nhiều biến độc lập x i (một lần nữa, tất cả các trung tâm vì đơn giản), hồi quy phù hợp với một phương trình y = β 1 x 1 + ... + β p x p . OLS không phù hợp bằng cách giảm thiểu các lỗi bình phương giữa các giá trị quan sát của y và các giá trị dự đoán y . TLS không phù hợp bằng cách giảm thiểu khoảng cách bình phương giữa quan sát ( x , y ) ∈ R p + 1yxi
y=β1x1+…+βpxp.
yy^(x,y)∈Rp+1 điểm và các điểm gần nhất trên mặt phẳng hồi quy / siêu phẳng.
Lưu ý rằng không còn "đường hồi quy" nữa! Phương trình trên chỉ định một siêu phẳng : đó là mặt phẳng 2D nếu có hai dự đoán, siêu phẳng 3D nếu có ba dự đoán, v.v ... Vì vậy, giải pháp trên không hoạt động: chúng ta không thể lấy giải pháp TLS bằng cách chỉ sử dụng PC đầu tiên (đó là một dòng). Tuy nhiên, giải pháp có thể dễ dàng thu được thông qua PCA.
Như trước, PCA được thực hiện trên điểm. Điều này mang lại p + 1 vector riêng trong các cột của V . Đầu tiên p vector riêng định nghĩa một p chiều siêu phẳng H mà chúng ta cần; eigenvector cuối cùng (số p + 1 ) v p + 1 là trực giao với nó. Câu hỏi đặt ra là làm thế nào để chuyển đổi cơ sở H được đưa ra bởi đầu tiên p vector riêng vào β hệ số.(x,y)p+1VppHp+1vp+1Hpβ
Quan sát rằng nếu chúng ta đặt cho tất cả i ≠ k và chỉ x k = 1 , sau đó y = β k , tức là vector ( 0 , ... , 1 , ... , β k ) ∈ H nằm trong các siêu phẳng H . Mặt khác, chúng ta biết rằng v p + 1 = ( v 1 , ... , v p + 1xi=0i≠kxk=1y^=βk
(0,…,1,…,βk)∈H
H là trực giao với nó. Tức là chấm sản phẩm của họ phải bằng không:
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.
Trong 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);
Trong R:
v <- prcomp(cbind(X,y))$rotation
beta <- -v[-ncol(v),ncol(v)] / v[ncol(v),ncol(v)]
Một lần nữa, điều này sẽ mang lại độ dốc chính xác ngay cả khi và y không được căn giữa (vì các chức năng PCA tích hợp sẽ tự động thực hiện định tâm). Để khôi phục lại đánh chặn, tính toán beta 0 = ˉ y - ˉ x β .xyβ0=y¯−x¯β
x(x,y)v(1)y/v(1)x=−v(2)x/v(2)y
Giải pháp dạng đóng cho 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.
Hồi quy đa biến
Công thức tương tự có thể được khái quát cho trường hợp đa biến, nhưng ngay cả để xác định TLS đa biến làm gì, sẽ cần một số đại số. Xem Wikipedia trên TLS . Hồi quy OLS đa biến tương đương với một loạt các hồi quy OLS đơn biến cho mỗi biến phụ thuộc, nhưng trong trường hợp TLS thì không như vậy.