Звичайні найменші квадрати проти загальних найменших квадратів
Розглянемо спочатку найпростіший випадок лише однієї (незалежної) змінної . Для простоти нехай по центру і обидва і , тобто перехоплення завжди дорівнює нулю. Різниця між стандартною регресією OLS та "ортогональною" регресією TLS чітко показана на цій (адаптованій мною) фігурі з найпопулярнішої відповіді в найпопулярнішій темі PCA:х ухху
OLS підходить до рівняння , зводячи до мінімуму відстані у квадраті між спостережуваними значеннями та прогнозованими значеннями . TLS підходить до того ж рівняння, мінімізуючи відстані у квадраті між точками та їх проекцією на пряму. У цьому найпростішому випадку рядок TLS - це просто перший основний компонент 2D-даних. Для того, щоб знайти , зробіть PCA на точок, тобто побудувати ковариационной матриці і знайти свій перший власний вектор ; тоді .у у ( х , у ) β ( х , у ) 2 × 2 Σ v = ( v х , v у ) β = v у / v ху= βхуу^( х , у)β( х , у)2 × 2Σv =( vх, vу)β= vу/ vх
У Матлабі:
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]
До речі, це дасть правильний нахил, навіть якщо і не були в центрі (адже вбудовані функції PCA автоматично виконують центрування). Щоб відновити перехоплення, обчисліть .y β 0 = ˉ y - β ˉ xхуβ0= у¯- βх¯
OLS проти TLS, множинна регресія
З огляду на залежну змінну та безліч незалежних змінних (знову ж таки, все зосереджено для простоти), регресія відповідає рівняннюOLS підходить, мінімізуючи помилки в квадраті між спостережуваними значеннями та прогнозованими значеннями . TLS підходить, мінімізуючи відстані у квадраті між спостережуваними пунктами та найближчими точками на площині регресії / гіперплані.x i y = β 1 x 1 + … + β p x p . у у ( х , у ) ∈ R р + 1ухi
у= β1х1+ … + Βpхp.
уу^( х , у) ∈ Rр + 1
Зауважте, що вже немає "лінії регресії"! Вище наведене рівняння вказує на гіперплан : це 2D площина, якщо є два предиктори, 3D гіперплан, якщо є три предиктори тощо. Отже, рішення вище не працює: ми не можемо отримати рішення TLS, взявши лише перший ПК (який є рядок). Проте рішення можна легко отримати за допомогою PCA.
Як і раніше, PCA виконується в точках. Це дає власні вектори в колонках . Перші власні вектори визначають -вимірну гіперплощину яка нам потрібна; останній (число ) власного вектора є ортогональним для нього. Питання полягає в тому, як перетворити основу задану першими власними векторами, у коефіцієнти .p + 1 V p p H H p + 1 v p + 1 H p β( х , у)р + 1VppНр + 1vр + 1Нpβ
Зауважте, що якщо ми встановимо для всіх і тільки , то , тобто вектор лежить в гиперплоскости . З іншого боку, ми знаємо, що є ортогональним для нього. Тобто їх крапковий добуток повинен дорівнювати нулю:я ≠ до х до = 1 у = β до ( 0 , ... , 1 , ... , β до ) ∈ H H v р + 1 = ( v 1 , ... , v р + 1 )хi= 0i ≠ kхк= 1у^= βк
( 0 , … , 1 , … , βк) ∈ H
Нv k + β k v p + 1 = 0 ⇒ β k = - v k / v p + 1 .vр + 1= ( v1, … , Vр + 1)⊥Н
vк+ βкvр + 1= 0 ⇒ βк= - vк/ vр + 1.
У Матлабі:
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)]
Знову ж таки, це призведе до правильних нахилів, навіть якщо і не були в центрі (оскільки вбудовані функції PCA автоматично виконують центрування). Щоб відновити перехоплення, обчисліть .y β 0 = ˉ y - ˉ x βхуβ0= у¯- х¯β
В якості перевірки обгрунтованості зауважте, що це рішення збігається з попереднім у випадку лише одного предиктора . Дійсно, тоді простір дорівнює 2D, і так, враховуючи, що перший власний вектор PCA ортогональний другому (останньому), .( x , y ) v ( 1 ) y / v ( 1 ) x = - v ( 2 ) x / v ( 2 ) yх( х , у)v( 1 )у/ v( 1 )х= - v( 2 )х/ v( 2 )у
Розчин закритої форми для TLS
Дивно, але виявляється, що для існує рівняння закритої форми . Аргумент, наведений нижче, взято з книги Сабін ван Хаффеля "Загальні найменші квадрати" (розділ 2.3.2).β
Нехай і - централізовані матриці даних. Останній власний вектор PCA є власним вектором коваріаційної матриці з власним значенням . Якщо це власний вектор, то так . Запис рівняння власного вектора:
Хуvр + 1[ Xу ]σ2p+ 1( X ⊤ X X ⊤ y y ⊤ X- vр + 1/ vр + 1= ( β- 1 )⊤
( X⊤Ху⊤ХХ⊤уу⊤у) ( β- 1) = σ2р + 1( β- 1) ,
і добуток зліва, ми одразу отримуємо, що що сильно нагадує знайомий вираз OLS
βТ Л S= ( X⊤X - σ2р + 1Я )- 1Х⊤у ,
βO L S= ( X⊤Х )- 1Х⊤у .
Багатоваріантна множинна регресія
Ця ж формула може бути узагальнена до мультиваріантного випадку, але навіть для визначення того, що робить багатоваріантний TLS, потрібна була б алгебра. Дивіться Вікіпедію на TLS . Багатоваріантна регресія OLS еквівалентна купі одновимірних регресій OLS для кожної залежної змінної, але у випадку TLS це не так.