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?
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?
Antworten:
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 )
Das best straight line
ist 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 . b ≤ C ( 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 ∗
und der projizierte Vektor ist gegeben durch:
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])
could not find inv
?!
lm
lautet die Methode für QR. Es gibt Gründe dafür. Können Sie erklären, warum?
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, Sie die partielle Ableitung des Modells in Bezug auf eines der Sie den Faktor, der multipliziert . das heißt, .
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.
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 .
George zeigte bereits in seiner Antwort die Methode der normalen Gleichungen; man löst einfach den Satz linearer Gleichungen
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).
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.
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 an
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.
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 Σ V ⊤ U V Σ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.
R^{-1} Q^T y
wenn A nicht quadratisch ist? Lässt du die Nullzeilen in R fallen?
Der Wiki-Link: Schätzmethoden für lineare Regression enthält eine ziemlich umfassende Liste von Schätzmethoden, einschließlich OLS, und die Kontexte, in denen alternative Schätzmethoden verwendet werden.
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.
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.
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.