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

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

먼저 하나의 예측 변수 (독립) 변수 의 가장 간단한 경우를 생각해 봅시다 . 간단히하기 위해, x 와 y를 모두 중심에 두십시오 . 즉 절편은 항상 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의 에 고유 벡터 β의 계수.(엑스,와이)피+1V피피H피+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[엑스와이]σ피+12−V피+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=βk⋅1=β케이(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.