나는 보통 "보통 최소 제곱"에 대해 듣습니다. 이것이 선형 회귀에 가장 널리 사용되는 알고리즘입니까? 다른 것을 사용해야 할 이유가 있습니까?
나는 보통 "보통 최소 제곱"에 대해 듣습니다. 이것이 선형 회귀에 가장 널리 사용되는 알고리즘입니까? 다른 것을 사용해야 할 이유가 있습니까?
답변:
제목의 질문과 관련하여 사용되는 알고리즘은 무엇입니까?
선형 대수 관점에서, 선형 회귀 알고리즘은 미지수보다 더 많은 방정식 으로 선형 시스템 를 해결하는 방법 입니다. 대부분의 경우이 문제에 대한 해결책이 없습니다. 그리고 이것은 벡터 가 , 의 열 공간에 속하지 않기 때문 입니다.b A C ( A )
는 best straight line
전체 에러하게 하나 걸리는 작게. 음수가 아니기 때문에 제곱 길이 로 작게 생각하는 것이 편리합니다. b \ in C (\ mathbf {A}) 인 경우에만 0과 같습니다 . b ∈ C ( A )
의 열 공간에서 가장 가까운 지점에 벡터 를 투영하면 (직교 적으로) 최소 오차로 시스템을 해결하는 벡터 (구성 요소가 가장 직선에 있음)를 얻을 수 있습니다.A b ∗
투영 된 벡터 는 다음과 같이 주어집니다 :
아마도 최소 자승법은 특이 치에 대해 과잉 보상하기 때문에 독점적으로 사용 되지 않습니다 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
?!
lm
QR 방법 은 그 이유가 있습니다. 이유를 설명 할 수 있습니까?
질문의 서한에 답하기 위해 "일반 최소 제곱"은 알고리즘이 아닙니다. 오히려 그것은 계산 선형 대수학에서 일종의 문제이며,이 중 선형 회귀가 한 예입니다. 일반적으로 데이터는 및 형식의 데이터에 대한 임시 함수 ( "모델")를 . "기준 코드"라고하며 monomials에서 무엇이든 될 수 삼각 함수 (예를 들면 행 , ) 및 지수 함수 ( ). 여기서 "선형 회귀"의 "선형"이라는 용어는 기본 함수를 나타내지 않습니다. 와 관련하여 모델의 부분 도함수를 취 하면 곱하는 요소가 . 즉, 입니다.
하나는 이제 직사각형 행렬 ( "디자인 행렬")을 가지고 있으며 (보통) 열보다 많은 행을 가지며, 각 항목은 형식 , 는 행 인덱스이고 는 열 색인. OLS는 이제 수량 를 최소화 하는 벡터 을 (행렬 표기법으로 ; 여기에서 은 일반적으로 "응답 벡터"라고합니다.
최소 제곱 솔루션을 계산하는 데 실제로 사용되는 방법에는 정규 방정식, QR 분해 및 특이 값 분해의 세 가지가 있습니다. 간단히 말해서 행렬 를 벡터 대해 풀기 위해 쉽게 조작 할 수있는 행렬의 곱 으로 변환하는 방법 입니다.
George는 이미 그의 대답에서 정규 방정식의 방법을 보여주었습니다. 하나는 선형 방정식 세트를 해결합니다.
대한 . 행렬 가 대칭 양수 (반) 정확한 사실로 인해 , 이것에 사용되는 일반적인 방법은 Cholesky 분해이며, 는 이며 는 삼각 행렬이 더 낮습니다. 이 접근 방식의 문제점은 설계 행렬을 (보통) 훨씬 작은 행렬 로 압축 할 수 있다는 장점에도 불구 하고이 연산이 중요한 수치를 잃기 쉽다는 것입니다. 디자인 매트릭스의 "조건 번호"와 관련이 있습니다.
디자인 매트릭스와 직접 작동하는 QR 분해 방법이 약간 더 좋습니다. 이 요인 같이 , 직교 행렬 (그 트랜스와 같은 행렬 곱가 항등 행렬 제공) 및 은 위 삼각형입니다. 는 이후 됩니다. 이유 나는 (단지 같은 어떤 점잖은 수치 선형 대수 텍스트를 참조로받지 않습니다 이 하나 )이 정상 방정식의 방법보다 더 나은 수치 속성이 있습니다.
QR 분해 사용의 한 가지 변형은 준 정규 방정식 방법입니다 . 간단히 말해서 분해 인 경우, 해결 될 선형 시스템은 다음과 같은 형식을 취합니다.
효과적으로,이 방법에서 QR 분해를 사용하여 Cholesky 삼각형을 로 만듭니다. 이것은 가 드문 경우이고 (또는 팩터 버전)의 명시적인 저장 및 / 또는 형성 이 원치 않거나 비현실적인 경우에 유용합니다 .
마지막으로 OLS를 해결하는 가장 비싸지 만 가장 안전한 방법은 SVD (Singular Value Decomposition)입니다. 이번에는 가 으로 간주됩니다 . 여기서 및 는 직교입니다. 및A = U Σ V ⊤ U V Σ는 대각 항목을 "단수 값"이라고하는 대각 행렬입니다. 이 분해의 힘은 특이 값에 의해 부여 된 진단 능력에 있습니다. 하나 이상의 작은 특이 값을 볼 경우 완전히 독립적 인 기준을 선택하지 않았을 가능성이 있습니다. 당신의 모델. (앞서 언급 한 "조건 번호"는 실제로 가장 큰 특이 값과 가장 작은 특이 값의 비율과 관련이 있습니다. 가장 작은 특이 값이 "작은"이면 코스 비율이 커집니다 (따라서 행렬이 잘못됨). .)
이것은 단지이 세 가지 알고리즘의 스케치 일뿐입니다. 계산 통계 및 수치 선형 대수에 대한 좋은 책은 더 관련성이 높은 세부 정보를 제공 할 수 있어야합니다.
R^{-1} Q^T y
A가 제곱이 아닌 경우 어떻게 계산 합니까? R에서 0 행을 삭제합니까?
정의와 용어를 혼동하기 쉽습니다. 두 용어는 때로는 서로 바꿔서 사용됩니다. Wikipedia에서 빠른 검색을하면 도움이됩니다.
일반 최소 제곱 (OLS)은 선형 회귀 모형을 적합시키는 데 사용되는 방법입니다. OLS 방법의 입증 가능한 일관성과 효율성 (보충 가정 하에서)이 지배적 접근 방식입니다. 추가 리드에 대해서는 기사를 참조하십시오.
오래된 책이지만, 내가 반복적으로 돌리는 책은
Lawson, CL 및 Hanson, RJ 해결 최소 제곱 문제 , Prentice-Hall, 1974.
여기에는 이전 답변에서 언급 한 일부 알고리즘에 대한 상세하고 읽기 쉬운 설명이 포함되어 있습니다. 당신은 그것을보고 싶을 수도 있습니다.