Welcher Algorithmus wird bei der linearen Regression verwendet?


42

Normalerweise höre ich von "gewöhnlichen kleinsten Quadraten". Ist das der am häufigsten verwendete Algorithmus für die lineare Regression? Gibt es Gründe, einen anderen zu verwenden?


@hxd Abgesehen von speziellen Strukturen in der Entwurfsmatrix sind dies alles -Algorithmen, die sich nur im konstanten Faktor unterscheiden. Der Zerlegungsansatz ist eine gute Gewohnheit, die aus der Tradition der numerischen linearen Algebra stammt. O(mn2)
JM ist kein Statistiker

@hxd, und deshalb war meine Antwort auf eine Darstellung der beteiligten Algorithmen zugeschnitten. Wenn Sie Fragen haben, die nicht in diesem Thread behandelt werden, sollten Sie eine neue Frage stellen.
JM ist kein Statistiker

Antworten:


32

In Bezug auf die Frage im Titel, was ist der Algorithmus, der verwendet wird:

In einer linearen Algebra-Perspektive ist der lineare Regressionsalgorithmus der Weg, ein lineares System mit mehr Gleichungen als Unbekannten zu lösen . In den meisten Fällen gibt es keine Lösung für dieses Problem. Und das liegt daran, dass der Vektor nicht zum Spaltenraum von , .b A C ( A )Ax=bbAC(A)

Das best straight lineist diejenige , die der Gesamtfehler macht so klein , wie es dauert. Und es ist praktisch, sich die quadratische Länge als klein , da sie nicht negativ ist und nur dann gleich 0 ist, wenn b \ in C (\ mathbf {A}) steht .e=Axb b C ( A )e2bC(A)

Wenn Sie den Vektor (orthogonal) auf den nächsten Punkt im Spaltenraum von projizieren, erhalten Sie den Vektor , der das System löst (seine Komponenten liegen auf der besten geraden Linie), mit dem geringsten Fehler.A b bAb

ATAx^=ATbx^=(ATA)1ATb

und der projizierte Vektor ist gegeben durch:b

b=Ax^=A(ATA)1ATb

Vielleicht wird die Methode der kleinsten Quadrate nicht ausschließlich verwendet, da dies squaring Ausreißer überkompensiert.

Lassen Sie mich ein einfaches Beispiel in R geben, das das Regressionsproblem mit diesem Algorithmus löst:

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])

Ich bekomme einen Fehler could not find inv?!
hhh


5
Gibt es einen Grund für die Verwendung von inv von fBasics, wenn es nur ein Synonym für solve ist? Wäre es nicht besser, wenn die Antwort keine Abhängigkeit von externen Paketen erfordert, wenn dies nicht erforderlich ist?
Dason

@ George Ich liebe die klare Antwort. Ich denke jedoch, die ursprüngliche Frage stellte Algorithmen und QR ist nur eine davon. Wie wäre es mit LU, SVD, Cholesky-Zerlegung? Auch in R lmlautet die Methode für QR. Es gibt Gründe dafür. Können Sie erklären, warum?
Haitao Du

@GeorgeDontas Beachten Sie, dass möglicherweise nicht invertierbar ist. Wie in dieser Antwort erläutert , besteht eine Möglichkeit, damit umzugehen, darin, Spalten aus entfernen, bei denen es sich um lineare Kombinationen anderer Spalten handelt. AATAA
Oren Milman

70

Um den Buchstaben der Frage zu beantworten, ist "gewöhnliche kleinste Quadrate" kein Algorithmus; Vielmehr handelt es sich um eine Art Problem in der linearen Rechenalgebra, wofür die lineare Regression ein Beispiel ist. Normalerweise hat man Daten und eine vorläufige Funktion ("Modell") zur Anpassung der Daten an die Form . Die werden "Basisfunktionen" genannt und können alles von Monomen bis zu trigonometrischen Funktionen (zB , ) und Exponentialfunktionen ( ) sein. Der Begriff "linear" in "linearer Regression" bezieht sich hier nicht auf die Basisfunktionen,{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cj Sie die partielle Ableitung des Modells in Bezug auf eines der Sie den Faktor, der multipliziert . das heißt, .cjcjfj(x)

Man hat jetzt eine rechteckige Matrix ("Entwurfsmatrix"), die (normalerweise) mehr Zeilen als Spalten hat, und jeder Eintrag hat die Form , wobei der Zeilenindex und der ist Spaltenindex. OLS ist nun die Aufgabe, den Vektor , der die Menge (in Matrixnotation ; hier wird üblicherweise als "Antwortvektor" bezeichnet.m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

In der Praxis gibt es mindestens drei Methoden zur Berechnung von Lösungen der kleinsten Quadrate: die Normalgleichungen, die QR-Zerlegung und die Singulärwertzerlegung. Kurz gesagt, es handelt sich um Möglichkeiten, die Matrix in ein Produkt von Matrizen umzuwandeln , die leicht manipuliert werden können, um den Vektor zu lösen .Ac

George zeigte bereits in seiner Antwort die Methode der normalen Gleichungen; man löst einfach den Satz linearer Gleichungenn×n

AAc=Ay

für . Aufgrund der Tatsache, dass die Matrix symmetrisch positiv (semi) definit ist, wird hierfür üblicherweise die Cholesky-Zerlegung verwendet, die berücksichtigt in die Form , mit einer unteren Dreiecksmatrix. Das Problem bei diesem Ansatz ist, dass trotz des Vorteils, die Entwurfsmatrix in eine (normalerweise) viel kleinere Matrix komprimieren zu können , diese Operation dazu neigt, signifikante Zahlen zu verlieren (dies hat etwas zu tun) tun mit der "Bedingungsnummer" der Entwurfsmatrix).cAAAAGGGm×nn×n

Ein etwas besserer Weg ist die QR-Zerlegung, die direkt mit der Entwurfsmatrix zusammenarbeitet. Es faktorisiert als , wobei eine orthogonale Matrix ist (Multiplikation einer solchen Matrix mit ihrer Transponierung ergibt eine Identitätsmatrix) und ist das obere Dreieck. wird anschließend berechnet als . Aus Gründen, auf die ich nicht näher eingehen möchte (ich sehe nur einen anständigen numerischen linearen Algebra-Text wie diesen ), hat dieser bessere numerische Eigenschaften als die Methode normaler Gleichungen.AA=QRQRcR1Qy

Eine Variation bei der Verwendung der QR-Zerlegung ist die Methode der seminormalen Gleichungen . Kurz gesagt, wenn man die Zerlegung , nimmt das zu lösende lineare System die Form anA=QR

RRc=Ay

Tatsächlich verwendet man in diesem Ansatz die QR-Zerlegung, um das Cholesky-Dreieck von zu bilden. Dies ist nützlich für den Fall, dass dünn ist und die explizite Speicherung und / oder Bildung von (oder einer faktorisierten Version davon) unerwünscht oder unpraktisch ist.AAAQ

Schließlich ist die Singular Value Decomposition (SVD) die teuerste und zugleich sicherste Methode zur Lösung von OLS. Dieses Mal wird als berücksichtigt , wobei und beide orthogonal sind undA = U Σ VU V ΣAA=UΣVUVΣist eine diagonale Matrix, deren diagonale Einträge als "singuläre Werte" bezeichnet werden. Die Kraft dieser Zerlegung liegt in der diagnostischen Fähigkeit, die Ihnen durch die Singularwerte verliehen wird. Wenn Sie einen oder mehrere winzige Singularwerte sehen, ist es wahrscheinlich, dass Sie einen nicht völlig unabhängigen Basissatz gewählt haben, der eine Neuformulierung von erforderlich macht Ihr Modell. (Die oben erwähnte "Bedingungszahl" bezieht sich tatsächlich auf das Verhältnis des größten Singularwerts zum kleinsten; das Verhältnis wird natürlich riesig (und die Matrix ist daher schlecht konditioniert), wenn der kleinste Singularwert "winzig" ist. .)

Dies ist lediglich eine Skizze dieser drei Algorithmen; Jedes gute Buch über Computerstatistik und numerische lineare Algebra sollte in der Lage sein, Ihnen relevantere Details zu liefern.


3
Schöne Erklärung!
Mike Spivey

Wie berechnen Sie, R^{-1} Q^T ywenn A nicht quadratisch ist? Lässt du die Nullzeilen in R fallen?
Bhan

1
@bhan, ich gehe von der "Economy" - (oder "Thin" -) Variante der QR-Zerlegung aus, bei der quadratisch ist und die gleichen Dimensionen wie die Entwurfsmatrix hat. Was Sie tun müssen: Prüfen Sie den Unterschied zwischen "Full QR" und "Thin QR". QRQ
JM ist kein Statistiker

@JM irgendwelche Empfehlungen zum Thema "Gutes Buch über Computerstatistik und numerische lineare Algebra"? möchte wirklich mehr lernen.
Haitao Du

1
@hxd: Monahan für Computerstatistik und Golub / van Loan für numerische lineare Algebra.
JM ist kein Statistiker


4

Es ist leicht, zwischen Definitionen und Terminologie zu verwechseln. Beide Begriffe werden manchmal synonym verwendet. Ein kurzer Blick auf Wikipedia sollte helfen:

Ordinary Least Squares (OLS) ist eine Methode zur Anpassung linearer Regressionsmodelle. Aufgrund der nachweislichen Konsistenz und Effizienz (unter ergänzenden Annahmen) der OLS-Methode ist dies der dominierende Ansatz. Weitere Hinweise finden Sie in den Artikeln.


Richtig, deshalb halte ich OLS für einen "Algorithmus", der in der linearen Regression verwendet wird ...
Belmont,

3
Das gewöhnliche kleinste Quadrat ist ein Schätzer. Es gibt eine Vielzahl von Algorithmen zur Berechnung der Schätzung: In der Regel wird eine Art orthogonale Matrixzerlegung verwendet, z. B. QR. Siehe en.wikipedia.org/wiki/…
Simon Byrne

4

Ich neige dazu, "kleinste Quadrate" als Kriterium für die Definition der am besten passenden Regressionslinie (dh derjenigen, die die Summe der "quadratischen" Residuen zum kleinsten "macht) und des" Algorithmus "in diesem Kontext als die Menge der verwendeten Schritte zu betrachten um die Regressionskoeffizienten zu bestimmen, die dieses Kriterium erfüllen. Diese Unterscheidung legt nahe, dass es möglich ist, unterschiedliche Algorithmen zu verwenden, die dasselbe Kriterium erfüllen.

Ich wäre gespannt, ob andere diese Unterscheidung treffen und welche Terminologie sie verwenden.


Mit Algorithmus meine ich ungefähr die Software-Implementierung, die zum Anpassen einer Linie verwendet wird, um den Mittelwert einer Verteilung zu modellieren.
Belmont,

3

Ein altes Buch, zu dem ich mich immer wieder umdrehe, ist

Lawson, CL und Hanson, RJ, Solving Least Squares Problems , Prentice-Hall, 1974.

Es enthält eine detaillierte und gut lesbare Diskussion einiger der Algorithmen, die in früheren Antworten erwähnt wurden. Vielleicht möchten Sie es sich ansehen.


1
Wenn Sie dieses alte Buch lesen, sollten Sie sich auch mit Åke Björcks numerischen Methoden für Kleinste-Quadrate-Probleme befassen , die in Lawson / Hanson noch nicht besprochen wurden. Die im Lawson / Hanson-Buch enthaltenen Routinen sind bei Netlib erhältlich .
JM ist kein Statistiker
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.