선형 회귀 분석에는 어떤 알고리즘이 사용됩니까?


42

나는 보통 "보통 최소 제곱"에 대해 듣습니다. 이것이 선형 회귀에 가장 널리 사용되는 알고리즘입니까? 다른 것을 사용해야 할 이유가 있습니까?


@hxd, 설계 행렬의 특정 구조를 제외하고, 이들은 모두 상수 인자 만 다른 알고리즘입니다. 분해 접근법은 수치 선형 대수의 전통에서 물려받은 좋은 습관입니다. O(mn2)
JM은 통계학자가 아닙니다.

@ hxd, 그래서 내 대답이 관련된 알고리즘의 박람회가되도록 조정되었습니다. 이 글에서 다루지 않은 질문이 있으면 새로운 질문을하십시오.
JM은 통계학자가 아닙니다.

답변:


32

제목의 질문과 관련하여 사용되는 알고리즘은 무엇입니까?

선형 대수 관점에서, 선형 회귀 알고리즘은 미지수보다 더 많은 방정식 으로 선형 시스템 를 해결하는 방법 입니다. 대부분의 경우이 문제에 대한 해결책이 없습니다. 그리고 이것은 벡터 가 , 의 열 공간에 속하지 않기 때문 입니다.b A C ( A )Ax=bbAC(A)

best straight line전체 에러하게 하나 걸리는 작게. 음수가 아니기 때문에 제곱 길이 로 작게 생각하는 것이 편리합니다. b \ in C (\ mathbf {A}) 인 경우에만 0과 같습니다 .e=Axb b C ( A )e2bC(A)

의 열 공간에서 가장 가까운 지점에 벡터 를 투영하면 (직교 적으로) 최소 오차로 시스템을 해결하는 벡터 (구성 요소가 가장 직선에 있음)를 얻을 수 있습니다.A b bAb

ATAx^=ATbx^=(ATA)1ATb

투영 된 벡터 는 다음과 같이 주어집니다 :b

b=Ax^=A(ATA)1ATb

아마도 최소 자승법은 특이 치에 대해 과잉 보상하기 때문에 독점적으로 사용 되지 않습니다 squaring.

이 알고리즘을 사용하여 회귀 문제를 해결하는 간단한 예제를 R로 보여 드리겠습니다.

library(fBasics)

reg.data <- read.table(textConnection("
   b      x
  12      0
  10      1
   8      2
  11      3
   6      4
   7      5
   2      6
   3      7
   3      8 "), header = T)

attach(reg.data)

A <- model.matrix(b~x)

# intercept and slope
inv(t(A) %*% A) %*% t(A) %*% b

# fitted values - the projected vector b in the C(A)
A %*% inv(t(A) %*%A ) %*% t(A) %*% b

# The projection is easier if the orthogonal matrix Q is used, 
# because t(Q)%*%Q = I
Q <- qr.Q(qr(A))
R <- qr.R(qr(A))

# intercept and slope 
best.line <- inv(R) %*% t(Q) %*% b

# fitted values 
Q %*% t(Q) %*% b

plot(x,b,pch=16)
abline(best.line[1],best.line[2])

나는 잘못을 얻는다 could not find inv?!
hhh


5
fBasics의 inv를 해결의 동의어 일 때 사용하는 이유가 있습니까? 불필요한 경우 외부 패키지에 대한 종속성을 요구하지 않는 것이 더 좋지 않습니까?
Dason

@George 나는 명확한 대답을 좋아하지만 원래 질문은 알고리즘을 요구하는 것으로 생각하며 QR은 그중 하나입니다. LU, SVD, Cholesky 분해는 어떻습니까? 또한 R에서 lmQR 방법 은 그 이유가 있습니다. 이유를 설명 할 수 있습니까?
Haitao Du

@GeorgeDontas 는 되돌릴 수 없을 수도 있습니다 . 이 답변 에서 설명했듯이 이를 처리하는 한 가지 방법 은 다른 열의 선형 조합 인 열 에서 제거하는 것입니다. AATAA
Oren Milman

70

질문의 서한에 답하기 위해 "일반 최소 제곱"은 알고리즘이 아닙니다. 오히려 그것은 계산 선형 대수학에서 일종의 문제이며,이 중 선형 회귀가 한 예입니다. 일반적으로 데이터는 및 형식의 데이터에 대한 임시 함수 ( "모델")를 . "기준 코드"라고하며 monomials에서 무엇이든 될 수 삼각 함수 (예를 들면 행 , ) 및 지수 함수 ( ). 여기서 "선형 회귀"의 "선형"이라는 용어는 기본 함수를 나타내지 않습니다.{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cj 와 관련하여 모델의 부분 도함수를 취 하면 곱하는 요소가 . 즉, 입니다.cjcjfj(x)

하나는 이제 직사각형 행렬 ( "디자인 행렬")을 가지고 있으며 (보통) 열보다 많은 행을 가지며, 각 항목은 형식 , 는 행 인덱스이고 는 열 색인. OLS는 이제 수량 를 최소화 하는 벡터 을 (행렬 표기법으로 ; 여기에서 은 일반적으로 "응답 벡터"라고합니다.m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

최소 제곱 솔루션을 계산하는 데 실제로 사용되는 방법에는 정규 방정식, QR 분해 및 특이 값 분해의 세 가지가 있습니다. 간단히 말해서 행렬 를 벡터 대해 풀기 위해 쉽게 조작 할 수있는 행렬의 곱 으로 변환하는 방법 입니다.Ac

George는 이미 그의 대답에서 정규 방정식의 방법을 보여주었습니다. 하나는 선형 방정식 세트를 해결합니다.n×n

AAc=Ay

대한 . 행렬 가 대칭 양수 (반) 정확한 사실로 인해 , 이것에 사용되는 일반적인 방법은 Cholesky 분해이며, 는 이며 는 삼각 행렬이 더 낮습니다. 이 접근 방식의 문제점은 설계 행렬을 (보통) 훨씬 작은 행렬 로 압축 할 수 있다는 장점에도 불구 하고이 연산이 중요한 수치를 잃기 쉽다는 것입니다. 디자인 매트릭스의 "조건 번호"와 관련이 있습니다.cAAAAGGGm×nn×n

디자인 매트릭스와 직접 작동하는 QR 분해 방법이 약간 더 좋습니다. 이 요인 같이 , 직교 행렬 (그 트랜스와 같은 행렬 곱가 항등 행렬 제공) 및 은 위 삼각형입니다. 는 이후 됩니다. 이유 나는 (단지 같은 어떤 점잖은 수치 선형 대수 텍스트를 참조로받지 않습니다 이 하나 )이 정상 방정식의 방법보다 더 나은 수치 속성이 있습니다.AA=QRQRcR1Qy

QR 분해 사용의 한 가지 변형은 준 정규 방정식 방법입니다 . 간단히 말해서 분해 인 경우, 해결 될 선형 시스템은 다음과 같은 형식을 취합니다.A=QR

RRc=Ay

효과적으로,이 방법에서 QR 분해를 사용하여 Cholesky 삼각형을 로 만듭니다. 이것은 가 드문 경우이고 (또는 팩터 버전)의 명시적인 저장 및 / 또는 형성 이 원치 않거나 비현실적인 경우에 유용합니다 .AAAQ

마지막으로 OLS를 해결하는 가장 비싸지 만 가장 안전한 방법은 SVD (Singular Value Decomposition)입니다. 이번에는 가 으로 간주됩니다 . 여기서 및 는 직교입니다. 및A = U Σ VU V ΣAA=UΣVUVΣ는 대각 항목을 "단수 값"이라고하는 대각 행렬입니다. 이 분해의 힘은 특이 값에 의해 부여 된 진단 능력에 있습니다. 하나 이상의 작은 특이 값을 볼 경우 완전히 독립적 인 기준을 선택하지 않았을 가능성이 있습니다. 당신의 모델. (앞서 언급 한 "조건 번호"는 실제로 가장 큰 특이 값과 가장 작은 특이 값의 비율과 관련이 있습니다. 가장 작은 특이 값이 "작은"이면 코스 비율이 커집니다 (따라서 행렬이 잘못됨). .)

이것은 단지이 세 가지 알고리즘의 스케치 일뿐입니다. 계산 통계 및 수치 선형 대수에 대한 좋은 책은 더 관련성이 높은 세부 정보를 제공 할 수 있어야합니다.


3
좋은 설명입니다!
Mike Spivey

R^{-1} Q^T yA가 제곱이 아닌 경우 어떻게 계산 합니까? R에서 0 행을 삭제합니까?
bhan

1
@bhan, 나는 QR 분해의 "경제"(또는 "얇은") 변형을 가정하고 있는데, 여기서 은 정사각형이고 는 설계 행렬과 같은 차원을 갖는다. "풀 QR"과 "얇은 QR"의 차이점을 찾아보십시오. QRQ
JM은 통계학자가 아닙니다.

@JM "계산 통계 및 수치 선형 대수에 대한 좋은 책"에 대한 권장 사항은 무엇입니까? 더 배우고 싶어요
Haitao Du

1
@hxd, 내 머리 꼭대기에서 : 계산 통계를위한 Monahan, 수치 선형 대수를위한 Golub / van Loan.
JM은 통계학자가 아닙니다.

6

위키 링크 : 선형 회귀에 대한 추정 방법은 OLS 및 대체 추정 방법이 사용되는 상황을 포함하여 상당히 포괄적 인 추정 방법 목록을 제공합니다.


1
(페이지도 QR 언급하지 않음) 문제를 해결하지 않습니다
user603

4

정의와 용어를 혼동하기 쉽습니다. 두 용어는 때로는 서로 바꿔서 사용됩니다. Wikipedia에서 빠른 검색을하면 도움이됩니다.

일반 최소 제곱 (OLS)은 선형 회귀 모형을 적합시키는 데 사용되는 방법입니다. OLS 방법의 입증 가능한 일관성과 효율성 (보충 가정 하에서)이 지배적 접근 방식입니다. 추가 리드에 대해서는 기사를 참조하십시오.


그렇기 때문에 OLS를 선형 회귀 분석에 사용되는 "알고리즘"으로 생각합니다.
Belmont

3
보통 최소 제곱은 추정값입니다. 추정값을 계산하기위한 다양한 알고리즘이 있습니다. 일반적으로 QR과 같은 일종의 직교 행렬 분해가 사용됩니다. en.wikipedia.org/wiki/…
Simon Byrne

4

나는 '최소 제곱'을 가장 적합한 회귀선을 정의하는 기준으로 생각하는 경향이 있습니다 (즉, '제곱'잔차 '최소'를 합한 것)과 '알고리즘'을 단계 세트로 사용합니다. 해당 기준을 만족시키는 회귀 계수를 결정합니다. 이 구별은 동일한 기준을 만족시키는 다른 알고리즘을 가질 수 있음을 시사합니다.

다른 사람들이이 구별을하는지 여부와 그들이 사용하는 용어를 알고 싶습니다.


알고리즘에 따르면, 나는 분포의 평균을 모델링하기 위해 선을 맞추는 데 사용되는 소프트웨어 구현을 대략 의미합니다.
Belmont

3

오래된 책이지만, 내가 반복적으로 돌리는 책은

Lawson, CL 및 Hanson, RJ 해결 최소 제곱 문제 , Prentice-Hall, 1974.

여기에는 이전 답변에서 언급 한 일부 알고리즘에 대한 상세하고 읽기 쉬운 설명이 포함되어 있습니다. 당신은 그것을보고 싶을 수도 있습니다.


1
이 오래된 책을 읽으면 Lawson / Hanson에서 논의되지 않은 Åke Björck의 최소 제곱 문제에 대한 수치 적 방법을 살펴보십시오 . Lawson / Hanson 책에 포함 된 루틴 은 Netlib에서 사용 가능 합니다.
JM은 통계가 아닙니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.