PCA를 통해 직교 회귀 (총 최소 제곱)를 수행하는 방법은 무엇입니까?


29

나는 항상 lm()R 에서 에 선형 회귀를 수행하기 위해 사용 합니다. 이 함수는 와 같은 계수 반환합니다x β y = β x .와이엑스β

와이=β엑스.

오늘 나는 최소 최소 제곱 에 대해 배웠고 그 princomp()기능 (주성분 분석, PCA)을 사용하여 그것을 수행 할 수 있습니다. 나에게 좋을 것입니다 (보다 정확합니다). 을 사용하여 몇 가지 테스트를 수행했습니다 princomp().

r <- princomp( ~ x + y)

내 문제는 : 결과를 해석하는 방법? 회귀 계수는 어떻게 구할 수 있습니까? "계수" 는 값에 곱하여 가까운 숫자를 제공하는 데 사용해야 하는 숫자 를 의미합니다 .β엑스와이


잠깐만, 나는 약간 혼란스러워. 봐 : zoonek2.free.fr/UNIX/48_R/09.html 나는 우리가 얘기하는 생각 때문에 이것은 PCA (주성분 분석, 일명 "직교 회귀"또는 "사각형의 수직 금액"또는 "총 최소 제곱")라고합니다 princomp ()가 포함 된 TLS 정보
Dail

아니; 그것들은 서로 다른 두 가지입니다. PCA에 관한 위키 백과 기사를 참조하십시오. 여기서 사용되는 것은 해킹입니다 (정확한지 모르겠지만 확인하겠습니다). 그것이 계수의 복잡한 추출 이유입니다.

1
관련 질문 : stats.stackexchange.com/questions/2691/… 그리고 블로그 게시물은 다음 답변 중 하나에 의해 참조됩니다 : cerebralmastication.com/2010/09/…
Jonathan

답변:


48

정규 최소 제곱 대 총 최소 제곱

먼저 하나의 예측 변수 (독립) 변수 의 가장 간단한 경우를 생각해 봅시다 . 간단히하기 위해, xy를 모두 중심에 두십시오 . 즉 절편은 항상 0입니다. 표준 OLS 회귀와 "직교"TLS 회귀의 차이점은 PCA에서 가장 많이 사용되는 스레드에서 가장 많이 사용 된 답변 의이 그림에 나와 있습니다 .엑스엑스와이

OLS 대 TLS

OLS의 적합한 식 관측 값 간의 제곱 된 거리를 최소화함으로써 , Y가 예측 된 값 Y를 . TLS 간의 제곱 된 거리를 최소화하여 같은 식에 적합 ( X , Y가 ) (와이=β엑스와이와이^(엑스,와이) 점과 선의 투영 . 이 가장 단순한 경우에 TLS 라인은 단순히 2D 데이터의 첫 번째 주요 구성 요소입니다. 를 찾으려면 ( x , y ) 점에서 PCA를 수행하십시오 . 즉, 2 × 2 공분산 행렬 Σ을 구성 하고 첫 번째 고유 벡터 v =β(엑스,와이)2×2Σ ; 그런 다음 β = v y / v x 입니다.V=(V엑스,V와이)β=V와이/V엑스

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]

그런데, 내장 PCA 기능이 자동으로 센터링을 수행하기 때문에 y 가 가운데에 있지 않더라도 올바른 경사를 얻을 수 있습니다. 절편을 복구하려면 β를 계산하십시오.엑스와이 .β0=와이¯β엑스¯

OLS 대 TLS, 다중 회귀

종속 변수 와 많은 독립 변수 x i (다시 말하면 모두 단순성을 위해 중심이 됨)가 주어지면 회귀는 방정식 y = β 1 x 1 + + β p x p에 적합 합니다. OLS는 관측 된 값 사이의 제곱 오차 최소화하여 착용감을 수행 Y예측값을와이엑스나는

와이=β1엑스1++β엑스.
와이. TLS는 관측 사이의 제곱 거리를 최소화하여 착용감을 수행(X,Y)RP+1와이^(엑스,와이)아르 자형+1 회귀 평면 / 초평면의 점과 가장 가까운 점.

더 이상 "회귀선"이 없습니다. 위의 방정식은 초평면을 지정합니다 . 예측기가 2 개인 경우 2D 평면이고, 예측자가 3 개인 경우 3D 초평면입니다. 따라서 위의 해결책은 효과가 없습니다. 첫 번째 PC 만 가져 와서 TLS 솔루션을 얻을 수는 없습니다. 라인). 그래도 PCA를 통해 솔루션을 쉽게 얻을 수 있습니다.

이전과 마찬가지로 PCA는 지점 에서 수행됩니다 . V의 열에 p + 1 고유 벡터가 생성 됩니다. 제 P의 고유 벡터가 정의 P 차원 초평면의 H 우리가 필요로하는 단계; 마지막 (숫자 p + 1 ) 고유 벡터 v p + 1 은 직교합니다. 질문에 의거하여 변환하는 방법은 H 제 주어진 P의 에 고유 벡터 β의 계수.(엑스,와이)+1VH+1V+1Hβ

우리가 설정된 경우 관찰 모든 k는 단지 X K = 1 다음, Y = β (K) , 즉, 벡터 ( 0 , ... , 1 , ... , β K ) H의 초평면의에 놓여 H . 반면에, 우리는 그 v를 알고 있습니다엑스나는=0나는케이엑스케이=1와이^=β케이

(0,,1,,β케이)H
H 는 그것에 직교합니다. 즉 자신의 내적 제로 여야 브이 K + β 케이 브이 P + 1 = 0 β K = - (V)의 K / V의 P + 1 .
V+1=(V1,,V+1)H
V케이+β케이V+1=0β케이=V케이/V+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)]

다시 말하지만, 내장 PCA 기능이 자동으로 센터링을 수행하기 때문에 y 가 가운데에 있지 않더라도 올바른 기울기가 나타납니다 . 절편을 복구하려면 β 0 = ˉ yˉ x β를 계산하십시오 .엑스와이β0=와이¯엑스¯β

엑스(엑스,와이)V와이(1)/V엑스(1)=V엑스(2)/V와이(2)

TLS를위한 폐쇄 형 솔루션

β

엑스와이V+1[엑스와이]σ+12V+1/V+1=(β1)

(엑스엑스엑스와이와이엑스와이와이)(β1)=σ+12(β1),
β에스=(엑스엑스σ+12나는)1엑스와이,
β영형에스=(엑스엑스)1엑스와이.

다변량 다중 회귀

다변량 사례에 대해 동일한 공식을 일반화 할 수 있지만 다변량 TLS의 기능 을 정의하기 위해서는 대수학이 필요합니다. TLS에 위키 백과를 참조하십시오 . 다변량 OLS 회귀는 각 종속 변수에 대한 일 변량 OLS 회귀에 해당하지만 TLS의 경우에는 그렇지 않습니다.


1
R을 모르지만 나중에 참조 할 수 있도록 R 스 니펫을 제공하고 싶었습니다. 여기 R에 능숙한 사람들이 많이 있습니다. 필요한 경우 내 스 니펫을 자유롭게 수정하세요! 고맙습니다.
amoeba는 Reinstate Monica가

(0,,1,,βk)

x나는xk=1y=βjxjy=βk1=β케이(0,,1,β케이)와이=βj엑스j
아메바는

나는 그 부분을 잘못 읽은 것 같지만 지금은 분명하다. 설명을 주셔서 감사합니다.
JohnK

2
R에서는 "prcomp (cbind (x, y)) $ rotation"보다 "eigen (cov (cbind (x, y))) $ vectors"를 선호 할 수 있습니다 . 전자가 큰 벡터에서는 훨씬 빠르기 때문입니다.
Thomas Browne

9

here 에서 찾은 순진한 GNU Octave 구현을 기반으로 이와 같은 작업 (소금 결석, 늦음)이 작동 할 수 있습니다.

tls <- function(A, b){

  n <- ncol(A)
  C <- cbind(A, b)

  V <- svd(C)$v
  VAB <- V[1:n, (n+1):ncol(V)]
  VBB <- V[(n+1):nrow(V), (n+1):ncol(V)]
  return(-VAB/VBB)
}

4

princomp총 최소 제곱 회귀 대신 주성분 분석을 실행 중입니다. 내가 아는 한, TLS를 수행하는 R 함수 나 패키지는 없습니다. 대부분 MethComp 에는 Deming 회귀가 있습니다 .
그러나 이것을 가치가 없을 가능성이 높은 제안으로 취급하십시오.


MethComp 패키지의 Deming이 TLS라고 생각했습니다. 차이점은 무엇입니까?
mark999

x와 y에 대한 오류 비율을 제공해야합니다. 순수한 TLS가이를 최적화합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.