Lassen Sie uns untersuchen, was gerade passiert. Ich bin mir sicher, dass Sie den größten Teil des folgenden Materials bereits kennen, aber um Notationen und Definitionen festzulegen und die Ideen klarer zu machen, werde ich die Grundlagen der polynomialen Regression behandeln, bevor ich die Frage beantworte. Wenn Sie möchten, springen Sie zu der Überschrift "Was R
macht", die ungefähr zwei Drittel des Weges in diesem Beitrag ausmacht, und überspringen Sie dann die Definitionen, die Sie möglicherweise benötigen.
Die Einstellung
Wir betrachten eine n×k Modellmatrix X potenzieller erklärender Variablen in einer Art Regression. Dies bedeutet, dass wir uns die Spalten von X als n Vektoren X1,X2,…,Xk vorstellen und lineare Kombinationen daraus bilden, β1X1+β2X2+⋯+βkXk, um eine Antwort vorherzusagen oder zu schätzen.
Manchmal kann eine Regression verbessert werden, indem zusätzliche Spalten eingefügt werden, die durch Multiplizieren verschiedener Spalten von X mit Koeffizienten für Koeffizienten erstellt werden. Solche Produkte heißen "Monomials" und können gerne geschrieben werden
Xd11Xd22⋯Xdkk
wobei jede "Leistung" di Null oder größer ist, was darstellt, wie oft jedes X1 im Produkt vorkommt. Man beachte, dass X0 ein n -Vektor konstanter Koeffizienten ( 1 ) ist und X1=X selbst. Somit erzeugen Monome (als Vektoren) einen Vektorraum, der den ursprünglichen Spaltenraum von X. Die Möglichkeit, dass es sich um einen größeren Vektorraum handelt, gibt diesem Verfahren einen größeren Spielraum für die Modellierung der Antwort mit linearen Kombinationen.
Wir beabsichtigen, die ursprüngliche Modellmatrix X durch eine Sammlung linearer Kombinationen von Monomen zu ersetzen . Wenn der Grad mindestens eines dieser Monome 1, übersteigt , spricht man von einer polynomialen Regression.
Abstufungen von Polynomen
Der Grad eines Monoms ist die Summe seiner Potenzen, d1+d2+…+dk. Der Grad einer linearen Kombination von Monomen (ein "Polynom") ist der größte Grad unter den Monomialtermen mit Koeffizienten ungleich Null. Der Grad hat eine intrinsische Bedeutung, denn wenn Sie die Basis des ursprünglichen Vektorraums ändern, wird jeder Vektor Xi durch eine lineare Kombination aller Vektoren neu dargestellt. Monome Xd11Xd22⋯Xdkkdadurch werden Polynome des gleichen Grades; und folglich bleibt der Grad eines Polynoms unverändert.
Der Grad liefert eine natürliche "Abstufung" für diese Polynomalgebra: der Vektorraum, der durch alle linearen Kombinationen von Monomen in X mit einem Grad bis einschließlich d+1, die "Polynome mit einem Grad von [oder bis zu] d+1 in" genannt werden X, "erweitert den Vektorraum der Polynome bis zum Grad d in X.
Verwendung der polynomialen Regression
Polynom-Regression ist oft explorativ in dem Sinne, dass wir zu Beginn nicht wissen, welche Monome eingeschlossen werden sollen. Der Prozess des Erstellens neuer Modellmatrizen aus Monomen und des erneuten Anpassens der Regression muss möglicherweise mehrmals wiederholt werden, möglicherweise astronomisch oft in einigen Einstellungen für maschinelles Lernen.
Die Hauptprobleme bei diesem Ansatz sind
Monome führen oft problematische Mengen an "Multikollinearität" in die neue Modellmatrix ein, hauptsächlich weil Potenzen einer einzelnen Variablen dazu neigen, hochkollinear zu sein. (Die Kollinearität zwischen Potenzen zweier verschiedener Variablen ist nicht vorhersehbar, da sie davon abhängt, wie diese Variablen zusammenhängen, und daher weniger vorhersehbar ist.)
Das Ändern nur einer einzelnen Spalte der Modellmatrix oder das Einfügen oder Löschen einer neuen Spalte kann einen "Kaltstart" der Regressionsprozedur erfordern, dessen Berechnung möglicherweise viel Zeit in Anspruch nimmt.
Die Abstufungen von Polynomalgebren bieten eine Möglichkeit, beide Probleme zu überwinden.
Orthogonale Polynome in einer Variablen
Bei einem einzelnen Spaltenvektor X, eine Menge von "orthogonalen Polynomen" für X eine Folge von Spaltenvektoren p0(X),p1(X),p2(X),… die allein in X als lineare Kombinationen von Monomen gebildet werden --das ist als Potenzen von X --mit den folgenden Eigenschaften:
Für jeden Grad d=0,1,2,…, die Vektoren p0(X),p1(X),…,pd(X) erzeugen , um den gleichen Vektorraum als X0,X1,…,Xd. (Beachten Sie, dass X0 der n Vektor von Einsen ist und X1 nur X selbst.)
Das pi(X) sind zueinander orthogonal in dem Sinne , daß für i≠j, pi(X)′pj(X)=0.
Üblicherweise wird die aus diesen Monomen gebildete Ersatzmodellmatrix P=(p0(X)p1(X)⋯pd(X))
orthonormal gewählt, indem ihre Spalten auf Einheitslänge normiert werden: P′P=Id+1.
Da die Inverse von P′P erscheint in den meisten Regressionsgleichungen und die Inverse der Einheitsmatrix Id+1 Dies ist selbst ein riesiger Rechengewinn.
Die Orthonormalität bestimmt fast das pi(X). Sie können dies anhand der Konstruktion sehen:
Das erste Polynom p0(X), muss ein Vielfaches von dem betragen n -Vektor 1=(1,1,…,1)′ der Einheitslänge. Es gibt nur zwei Möglichkeiten, ±1/n−−−√1. Es ist üblich, die positive Quadratwurzel zu wählen.
Das zweite Polynom, p1(X), muss orthogonal zu 1. Es kann durch Regression erhalten werden X gegen 1, deren Lösung der Vektor der Mittelwerte X = ˉ X 1 . Wenn die Residuen ε = X - X ist nicht gleich Null, sie geben den nur zwei möglichen Lösungen p 1 ( X ) = ± ( 1 / | | ε | |X^=X¯1.ϵ=X−X^p1(X)=±(1/||ϵ||)ϵ.
...
- Im Allgemeinen wird pd+1(X) erhalten, indem Xd+1 gegen p0(X),p1(X),…,pd(X) und die Residuen neu skaliert werden, um einen Vektor der Längeneinheit zu ergeben. Es gibt zwei Vorzeichenoptionen, wenn die Residuen nicht alle Null sind. Andernfalls endet der Prozess: Es ist sinnlos, höhere Potenzen von X. (Dies ist ein netter Satz, aber sein Beweis braucht uns hier nicht abzulenken.)
Dies ist der Gram-Schmidt-Prozess , der auf die intrinsische Sequenz der Vektoren X0,X1,…,Xd,…. angewendet wird . Normalerweise wird es mit einer QR-Zerlegung berechnet , die sehr ähnlich ist, aber numerisch stabil berechnet wird.
Diese Konstruktion ergibt eine Folge zusätzlicher Spalten, die in die Modellmatrix aufgenommen werden müssen. Die polynomielle Regression in einer Variablen wird daher gewöhnlich fortgesetzt, indem Elemente dieser Sequenz nacheinander hinzugefügt werden, bis keine weitere Verbesserung der Regression mehr erzielt wird. Da jede neue Spalte zu den vorherigen orthogonal ist und auch keine der vorherigen Koeffizientenschätzungen ändert. Dies führt zu einer effizienten und leicht interpretierbaren Prozedur.
Polynome in mehreren Variablen
Die explorative Regression (sowie die Modellanpassung) erfolgt normalerweise, indem zunächst überlegt wird, welche (ursprünglichen) Variablen in ein Modell einbezogen werden sollen. Anschließend wird bewertet, ob diese Variablen durch Einbeziehen verschiedener Transformationen wie Monome erweitert werden könnten. und dann Einführen von "Wechselwirkungen", die aus Produkten dieser Variablen und ihren erneuten Ausdrücken gebildet werden.
Die Ausführung eines solchen Programms würde dann mit der getrennten Bildung univariater orthogonaler Polynome in den Spalten von X . Nachdem Sie für jede Spalte einen geeigneten Grad ausgewählt haben, führen Sie Interaktionen ein.
An diesem Punkt brechen Teile des univariaten Programms zusammen. Welche Abfolge von Interaktionen würden Sie nacheinander anwenden, bis ein geeignetes Modell gefunden ist? Darüber hinaus deuten die Anzahl der verfügbaren Optionen und ihre zunehmende Komplexität darauf hin, dass die Konstruktion einer Folge multivariater orthogonaler Polynome nachlässt, da wir uns nun wirklich mit der multivariablen Analyse befasst haben . Wenn Sie jedoch an eine solche Sequenz gedacht hätten, könnten Sie sie mithilfe einer QR-Zerlegung berechnen.
Was R
macht
Software für die Polynomregression konzentriert sich daher in der Regel auf die Berechnung univariater orthogonaler Polynomsequenzen. Es ist charakteristisch R
, diese Unterstützung so automatisch wie möglich auf Gruppen univariater Polynome auszudehnen. Das was poly
macht. (Sein Begleiter polym
ist im Wesentlichen derselbe Code mit weniger Schnickschnack. Die beiden Funktionen führen die gleichen Aktionen aus.)
Insbesondere poly
wird eine Sequenz von univariaten orthogonalen Polynomen berechnet, wenn ein einzelner Vektor X, , der bei einem bestimmten Grad d. (Wenn d zu groß ist - und es kann schwierig sein, vorherzusagen, wie groß zu groß ist - wirft dies leider einen Fehler auf.) Wenn eine Menge von Vektoren X1,…,Xk in Form einer Matrix X, es wird zurückkehren
Sequenzen von orthonormalen Polynomen p1(Xj),p2(Xj),…,pd(Xj) für jedes j bis zu einem angeforderten maximalen Grad d. (Da der konstante Vektor p0(Xi) allen Variablen gemeinsam ist und so einfach ist - er wird normalerweise vom Achsenabschnitt in der Regression R
berücksichtigt -, stört es nicht, ihn einzuschließen.)
Alle Wechselwirkungen zwischen diesen orthogonalen Polynomen bis einschließlich derjenigen vom Grad d.
Schritt (2) beinhaltet mehrere Feinheiten. Normalerweise meinen wir mit "Wechselwirkung" zwischen Variablen "alle möglichen Produkte", aber einige dieser möglichen Produkte haben Grade größer als d. Beispielsweise mit 2 - Variablen und d=2, R
berechnet
p1(X1),p2(X1),p1(X2),p1(X1)p1(X2),p2(X2).
R
habe nicht das höheren Grad Wechselwirkungen schließen p2(X1)p1(X2), p1(X1)p2(X2) (Polynome vom Grad 3) oder p1(X2)p2(X2) (ein Polynom 4. Grades). (Dies ist keine ernsthafte Einschränkung, da Sie diese Produkte problemlos selbst berechnen oder in einem Regressionsobjekt angeben können formula
.)
Eine weitere feine Sache ist, dass auf keines der multivariaten Produkte eine Art Normalisierung angewendet wird. In dem Beispiel ist das einzige derartige Produkt p1(X1)p1(X2). Es gibt jedoch keine Garantie dafür, dass sein Mittelwert Null ist und es mit ziemlicher Sicherheit keine Einheitennorm gibt. In diesem Sinne handelt es sich um eine echte "Wechselwirkung" zwischen p1(X1) und p1(X2) als solche interpretiert werden kann, da sich Wechselwirkungen normalerweise in einem Regressionsmodell befinden.
Ein Beispiel
Let's look at an example. I have randomly generated a matrix X=⎛⎝⎜152364⎞⎠⎟.
To make the calculations easier to follow, everything is rounded to two significant figures for display.
The orthonormal polynomial sequence for the first column X1=(1,5,2)′ begins by normalizing X01=(1,1,1)′ to unit length, giving p0(X1)=(1,1,1)′/3–√≈(0.58,0.58,0.58)′. The next step includes X11=X1 itself. To make it orthogonal to p0(X1), regress X1 against p0(X1) and set p1(X1) equal to the residuals of that regression, rescaled to have unit length. The result is the usual standardization of X1 obtained by recentering it and dividing by its standard deviation, p1(X1)=(−0.57,0.79,−0.23)′. Finally, X21=(1,25,4) is regressed against p0(X1) and p1(X1) and those residuals are rescaled to unit length. We cannot go any further because the powers of X1 cannot generate a vector space of more than n=3 dimensions. (We got this far because the minimal polynomial of the coefficients of X1, namely (t−1)(t−5)(t−4), has degree 3, demonstrating that all monomials of degree 3 or larger are linear combinations of lower powers and those lower powers are linearly independent.)
The resulting matrix representing an orthonormal polynomial sequence for X1 is
P1=⎛⎝⎜0.580.580.58−0.570.79−0.230.590.20−0.78⎞⎠⎟
(to two significant figures).
In the same fashion, an orthonormal polynomial matrix for X2 is
P2=⎛⎝⎜0.580.580.58−0.620.77−0.150.530.27−0.80⎞⎠⎟.
The interaction term is the product of the middle columns of these matrices, equal to (0.35,0.61,0.035)′. The full matrix created by poly
or polym
, then, is
P=⎛⎝⎜−0.570.79−0.230.590.20−0.78−0.620.77−0.150.350.610.0350.530.27−0.80⎞⎠⎟.
Notice the sequence in which the columns are laid out: the non-constant orthonormal polynomials for X1 are in columns 1 and 2 while those for X2 are in columns 3 and 5. Thus, the only orthogonality that is guaranteed in this output is between these two pairs of columns. This is reflected in the calculation of P′P, which will have zeros in positions (1,2),(2,1),(3,5), and (5,3) (shown in red below), *but may be nonzero anywhere else, and will have ones in positions (1,1),(2,2),(3,3), and (5,5) (shown in blue below), but is likely not to have a one in the other diagonal positions ((4,4) in this example). Indeed,
P′P=⎛⎝⎜⎜⎜⎜⎜⎜1010.280.09101−0.0910.311−0.09110.2500.280.30.250.50.320.091100.321⎞⎠⎟⎟⎟⎟⎟⎟.
When you inspect the P matrix shown in the question, and recognize that multiples of 10−17 are really zeros, you will observe that this pattern of zeros in the red positions holds. This is the sense in which those bivariate polynomials are "orthogonal."