Intuition hinter Tensorproduktwechselwirkungen in GAMs (MGCV-Paket in R)


30

Verallgemeinerte additive Modelle sind solche, bei denen . die funktionen sind flüssig und zu schätzen. In der Regel durch Splines bestraft. MGCV ist ein Paket in R, und der Autor (Simon Wood) schreibt ein Buch über sein Paket mit R-Beispielen. Ruppert et al. (2003) schreiben ein weitaus zugänglicheres Buch über einfachere Versionen derselben Sache.

y=α+f1(x1)+f2(x2)+ei

Meine Frage bezieht sich auf Interaktionen innerhalb dieser Art von Modellen. Was ist, wenn ich etwas wie das Folgende tun möchte: wenn wir im OLS-Land wären (wo das nur eine Beta ist) Ich hätte kein Problem damit, zu interpretieren . Wenn wir über bestrafte Splines schätzen, habe ich auch kein Problem mit der Interpretation im additiven Kontext.

y=α+f1(x1)+f2(x2)+f3(x1×x2)+ei
ff^3

Das MGCV-Paket in GAM hat jedoch diese Eigenschaften, die als "Tensorproduktglättung" bezeichnet werden. Ich google "Tensorprodukt" und meine Augen glänzen sofort, wenn ich versuche, die Erklärungen zu lesen, die ich finde. Entweder bin ich nicht schlau genug oder die Mathematik ist nicht sehr gut erklärt oder beides.

Anstatt zu codieren

normal = gam(y~s(x1)+s(x2)+s(x1*x2))

Ein Tensorprodukt würde dasselbe tun (?)

what = gam(y~te(x1,x2))

wenn ich es tue

plot(what)

oder

vis.gam(what)

Ich bekomme eine wirklich coole Ausgabe. Aber ich habe keine Ahnung, was in der Black Box vor sich geht te()und wie die oben erwähnte coole Ausgabe zu interpretieren ist. Gerade neulich hatte ich einen Albtraum, als ich ein Seminar gab. Ich habe allen eine coole Grafik gezeigt, sie haben mich gefragt, was das bedeutet, und ich wusste es nicht. Dann stellte ich fest, dass ich keine Klamotten anhatte.

Könnte jemand mir und der Nachwelt helfen, indem er ein bisschen Mechanik und Intuition darüber gibt, was hier unter der Haube vor sich geht? Idealerweise, indem Sie etwas über den Unterschied zwischen dem normalen additiven Wechselwirkungsfall und dem Tensorfall sagen? Bonuspunkte, wenn Sie alles in einfachem Englisch sagen, bevor Sie mit der Mathematik fortfahren.


Ein einfaches Beispiel aus dem Buch des Paketautors: Bibliothek (mgcv) Daten (Bäume) ct5 <- gam (Volumen ~ te (Höhe, Umfang, k = 5), Familie = Gamma (Verknüpfung = Protokoll), Daten = Bäume) ct5 vis.gam (ct5) plot (ct5, too.far = 0.15)
generic_user

Antworten:


30

Ich werde versuchen, dies in drei Schritten zu beantworten: Lassen Sie uns zunächst genau herausfinden, was wir unter einem univariaten Smooth verstehen. Als nächstes beschreiben wir eine multivariate Glättung (speziell eine Glättung von zwei Variablen). Schließlich werde ich versuchen, ein Tensorprodukt glatt zu beschreiben.

1) Univariate glatt

Nehmen wir an, wir haben einige Antwortdaten , von denen wir annehmen, dass sie eine unbekannte Funktion einer Prädiktorvariablen und einen Fehler . Das Modell wäre:yfxε

y=f(x)+ε

Um nun zu diesem Modell zu passen, müssen wir die funktionale Form von identifizieren . Dazu identifizieren wir Basisfunktionen, die überlagert werden, um die Funktion in ihrer Gesamtheit darzustellen . Ein sehr einfaches Beispiel ist eine lineare Regression, bei der die Basisfunktionen nur und , der , sind. Mit der Basiserweiterung haben wirffβ2xβ1

y=β1+β2x+ε

In Matrixform hätten wir:

Y=Xβ+ε

Wobei ein n-mal-1-Spaltenvektor ist, eine n-mal-2-Modellmatrix ist, ein 2-mal-1-Spaltenvektor von Modellkoeffizienten ist und ein n-mal-1-Spaltenvektor von Fehlern ist . hat zwei Spalten, weil unsere Basiserweiterung zwei Terme enthält: den linearen Term und den Achsenabschnitt.YXβεX

Dasselbe Prinzip gilt für die Basiserweiterung in MGCV, obwohl die Basisfunktionen viel ausgefeilter sind. Insbesondere müssen einzelne Basisfunktionen nicht über den gesamten Bereich der unabhängigen Variablen . Dies ist häufig der Fall, wenn knotenbasierte Basen verwendet werden (siehe "knotenbasiertes Beispiel").x). Das Modell wird dann als die Summe der Basisfunktionen dargestellt, von denen jede bei jedem Wert der unabhängigen Variablen ausgewertet wird. Wie ich bereits erwähnte, nehmen einige dieser Basisfunktionen außerhalb eines bestimmten Intervalls den Wert Null an und tragen daher nicht zur Basiserweiterung außerhalb dieses Intervalls bei. Stellen Sie sich als Beispiel eine kubische Spline-Basis vor, bei der jede Basisfunktion symmetrisch zu einem anderen Wert (Knoten) der unabhängigen Variablen ist. Mit anderen Worten, jede Basisfunktion sieht gleich aus, ist jedoch nur entlang der Achse der unabhängigen Variablen verschoben (Dies ist eine übermäßige Vereinfachung, da jede praktische Grundlage auch einen Achsenabschnitt und einen linearen Term enthält, aber Sie bekommen hoffentlich die Idee).

Explizit könnte eine Basiserweiterung der Dimension so aussehen:i2

y=β1+β2x+β3f1(x)+β4f2(x)+...+βifi2(x)+ε

wobei jede Funktion möglicherweise eine kubische Funktion der unabhängigen Variablen .fx

Die Matrixgleichung kann weiterhin zur Darstellung unseres Modells verwendet werden. Der einzige Unterschied besteht darin, dass jetzt eine n-mal-i-Matrix ist. Das heißt, es gibt eine Spalte für jeden Term in der Basiserweiterung (einschließlich des Abschnitts und des linearen Terms). Da der Prozess der Basiserweiterung es uns ermöglicht hat, das Modell in Form einer Matrixgleichung darzustellen, können wir lineare kleinste Quadrate verwenden, um das Modell anzupassen und die Koeffizienten .Y=Xβ+εXβ

Dies ist ein Beispiel für eine ungepflegte Regression. Eine der Hauptstärken von MGCV ist die Glättungsschätzung über eine Strafmatrix und einen Glättungsparameter. Mit anderen Worten, anstelle von:

β=(XTX)1XTY

wir haben:

β=(XTX+λS)1XTY

wobei eine quadratische -by- Strafmatrix und ist eine skalare Glättungsparameter. Ich werde hier nicht auf die Spezifikation der Strafmatrix eingehen, aber es sollte genügen zu sagen, dass für jede gegebene Basiserweiterung eine unabhängige Variable und Definition einer quadratischen "Wiggliness" -Strafe (zum Beispiel eine Strafe der zweiten Ableitung) eine ist kann die Strafmatrix berechnen .SiiλS

MGCV kann verschiedene Mittel zum Schätzen des optimalen Glättungsparameters . Ich werde nicht auf dieses Thema eingehen, da mein Ziel hier darin bestand, einen breiten Überblick darüber zu geben, wie ein univariates Glätten aufgebaut ist, was ich glaube, getan zu haben.λ

2) Multivariate glatt

Die obige Erklärung kann auf mehrere Dimensionen verallgemeinert werden. Kehren wir zu unserem Modell zurück, das die Antwort als Funktion der Prädiktoren und liefert . Die Beschränkung auf zwei unabhängige Variablen verhindert, dass die Erklärung mit arkaner Notation überladen wird. Das Modell ist dann:yfxz

y=f(x,z)+ε

Nun sollte es intuitiv offensichtlich sein, dass wir mit einer Basiserweiterung (dh einer Überlagerung von Basisfunktionen) darstellen werden, wie wir es im univariaten Fall von oben getan haben . Es sollte auch offensichtlich sein, dass mindestens eine und höchstwahrscheinlich viele dieser Basisfunktionen Funktionen sowohl von als auch von (wenn dies nicht der Fall wäre, wäre implizit trennbar, so dass ). Eine visuelle Darstellung einer mehrdimensionalen Spline-Basis finden Sie hier . Eine vollständige zweidimensionale Basiserweiterung der Dimension könnte ungefähr so ​​aussehen:f(x,z)f(x)xzff(x,z)=fx(x)+fz(z)i3

y=β1+β2x+β3z+β4f1(x,z)+...+βifi3(x,z)+ε

Ich denke, es ist ziemlich klar, dass wir dies immer noch in Matrixform darstellen können mit:

Y=Xβ+ε

durch einfaches Auswerten jeder Basisfunktion bei jeder eindeutigen Kombination von und . Die Lösung ist immer noch:xz

β=(XTX)1XTY

Die Berechnung der Strafmatrix für die zweite Ableitung ist sehr ähnlich wie im univariaten Fall, außer dass wir, anstatt die zweite Ableitung jeder Basisfunktion in Bezug auf eine einzelne Variable zu integrieren, die Summe aller zweiten Ableitungen (einschließlich Teilableitungen) in Bezug integrieren auf alle unabhängigen Variablen. Die Details des Vorstehenden sind nicht besonders wichtig: Der Punkt ist, dass wir immer noch die Strafmatrix konstruieren und dieselbe Methode verwenden können, um den optimalen Wert des Glättungsparameters , und angesichts dieses Glättungsparameters ist der Koeffizientenvektor immer noch:Sλ

β=(XTX+λS)1XTY

Diese zweidimensionale Glättung hat nun einen isotropen Nachteil: Dies bedeutet, dass ein einzelner Wert von in beide Richtungen gilt. Dies funktioniert einwandfrei, wenn sowohl als auch ungefähr den gleichen Maßstab haben, z. B. bei einer räumlichen Anwendung. Was aber, wenn wir die räumliche Variable durch die zeitliche Variable ersetzen ? Die Einheiten von können viel größer oder kleiner als die Einheiten von , und dies kann die Integration unserer zweiten Derivate beeinträchtigen, da einige dieser Derivate überproportional zur Gesamtintegration beitragen (z. B. wenn wir in Nanosekunden messen undλxzzttxtxin Lichtjahre, das Integral der zweiten Ableitung mit Bezug auf sein kann erheblich größer als das Integral der zweiten Ableitung in Bezug auf , und damit „wiggliness“ entlang der kann Richtung weitgehend unpenalized gehen). Folie 15 der "Smooth Toolbox", die ich verlinkt habe, enthält weitere Details zu diesem Thema.txx

Es ist erwähnenswert, dass wir die Basisfunktionen nicht in marginale Basen von und zerlegt haben . Dies impliziert, dass multivariate Glättungen aus Basen erstellt werden müssen, die mehrere Variablen unterstützen. Tensorproduktglättungen unterstützen die Konstruktion multivariater Basen aus univariaten Randbasen, wie ich unten erläutere.xz

3) Tensorprodukt glättet

Tensor-Produktglättungen behandeln das Problem der Modellierung von Antworten auf Wechselwirkungen mehrerer Eingaben mit verschiedenen Einheiten. Nehmen wir an, wir haben eine Antwort , die eine Funktion der räumlichen Variablen und der zeitlichen Variablen . Unser Modell ist dann:yfxt

y=f(x,t)+ε

Wir möchten eine zweidimensionale Basis für die Variablen und konstruieren . Das wird viel einfacher, wenn wir darstellen kann als:xtf

f(x,t)=fx(x)ft(t)

Im algebraischen / analytischen Sinne ist dies nicht unbedingt möglich. Denken Sie jedoch daran, dass wir die Domänen von und diskretisieren (stellen Sie sich ein zweidimensionales "Gitter" vor, das durch die Positionen der Knoten auf der und der Achse definiert wird), sodass die "wahre" Funktion durch die Überlagerung der Basisfunktionen dargestellt wird . So wie wir angenommen haben, dass eine sehr komplexe univariate Funktion durch eine einfache kubische Funktion in einem bestimmten Intervall ihrer Domäne approximiert werden kann, können wir annehmen, dass die nicht trennbare Funktion durch das Produkt einfacherer Funktionen approximiert werden kann undxtxtff(x,t)fx(x)ft(t) auf ein Intervall - vorausgesetzt, unsere Wahl der Basisdimensionen macht diese Intervalle ausreichend klein!

Unsere Basiserweiterung würde dann bei einer dimensionalen Basis in und einer dimensionalen Basis in wie folgt aussehen:ixjt

y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i3)(x)++βijft(j3)(t)fx(i3)(x)+ε

Was als Tensorprodukt interpretiert werden kann. Stellen Sie sich vor , dass wir jede Basisfunktion in ausgewertet und , wodurch die Konstruktion von n-i-und n-by-j Modell Matrizen und sind. Wir könnten dann das -by- Tensorprodukt dieser beiden Modellmatrizen berechnen und in Spalten reorganisieren, so dass jede Spalte eine eindeutige Kombination . Denken Sie daran, dass die Randmodellmatrizen bzw. Spalten hatten. Diese Werte entsprechen ihren jeweiligen Basisabmessungen. Unsere neue Basis mit zwei Variablen sollte dann die DimensionxtXTn2ij XTijijijund daher die gleiche Anzahl von Spalten in seiner Modellmatrix.

ANMERKUNG: Ich möchte darauf hinweisen, dass, da wir die Tensorproduktbasisfunktionen explizit unter Verwendung von Produkten mit Randbasisfunktionen konstruiert haben, Tensorproduktbasen aus Randbasen eines beliebigen Typs konstruiert werden können. Sie müssen nicht mehr als eine Variable unterstützen, im Gegensatz zu der oben diskutierten multivariaten Glättung.

In der Realität führt dieser Prozess zu einer Gesamtbasiserweiterung der Dimension da die vollständige Multiplikation das Multiplizieren jeder Basisfunktion mit dem x- (also subtrahieren wir ) sowie das Multiplizieren jeder Basisfunktion durch den t- (also subtrahieren wir ), aber wir müssen den von selbst (also addieren wir 1). Dies wird als Anwenden einer Identifizierbarkeitsbeschränkung bezeichnet.ijij+1tβx1jxβt1i

Wir können dies also so darstellen:

y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βijij+1fijij2(x,t)+ε

Wobei jede der multivariaten Basisfunktionen das Produkt eines Paares von marginalen und Basisfunktionen ist. Auch hier ist es ziemlich klar, dass wir diese Basis noch mit der Matrixgleichung darstellen können:fxt

Y=Xβ+ε

Welches hat (noch) die Lösung:

β=(XTX)1XTY

Wobei die Modellmatrix hat Spalten. Die und werden für jede unabhängige Variable wie folgt separat konstruiert:Xijij+1JxJt

Jx=βTIjSxβ

und,

Jt=βTStIiβ

Dies ermöglicht eine insgesamt anisotrope (in jeder Richtung unterschiedliche) Strafe (Hinweis: Die Strafen für die zweite Ableitung von werden bei jedem Knoten auf der Achse addiert und umgekehrt). Die Glättungsparameter und können nun auf die gleiche Weise geschätzt werden, wie der einzelne Glättungsparameter für die univariaten und multivariaten Glättungen war. Das Ergebnis ist, dass die Gesamtform eines Tensorprodukts glatt gegenüber einer Neuskalierung seiner unabhängigen Variablen unveränderlich ist.xtλxλt

Ich empfehle, alle Vignetten auf der MGCV-Website sowie " Generalized Additive Models: und Einführung mit R " zu lesen . Es lebe Simon Wood.


Gute Antwort. Ich habe seitdem viel mehr gelernt, als ich vor drei Jahren wusste. Aber ich bin mir nicht sicher, ob ich vor 3 Jahren verstanden hätte, was Sie heute geschrieben haben. Oder vielleicht hätte ich. Ich denke, der Ausgangspunkt ist, eine Basiserweiterung in vielen Dimensionen als ein "Netz" über den variablen Raum hinweg zu betrachten. Ich nehme an, Tensoren können als ein Netz mit rechteckigen Mustern beschrieben werden ... und vielleicht unterschiedliche "Scherkräfte", die aus jeder Richtung ziehen.
generic_user

In einem weiteren Punkt möchte ich Sie davor warnen, das Tensorprodukt als räumlich darzustellen. Dies liegt daran, dass das tatsächliche Tensorprodukt der marginalen und Basisfunktionen Tonnen von Nullen enthält, die die Bewertung von Basisfunktionen außerhalb ihres definierten Bereichs darstellen. Das tatsächliche Tensorprodukt ist normalerweise sehr dünn. xt
Josh

1
Vielen Dank für diese tolle Zusammenfassung! Nur eine Bemerkung: Die Gleichung nach "Unsere Basiserweiterung" ist nicht ganz richtig. Es gibt die korrekten Basisfunktionen, aber es gibt eine Parametrisierung, bei der die entsprechenden Parameter von Produktform sind ( ). βxiβtj
Jarauh

1
@Josh Ok, ich habe es versucht. Es ist nicht einfach, es richtig und gleichzeitig leicht zu verstehen (und der Notation eines anderen zu folgen). Übrigens scheint der Link zu smooth-toolbox.pdf nicht zu funktionieren.
Jarauh

1
Sieht gut aus. Anscheinend wurde Ihre Änderung abgelehnt, aber ich habe die Ablehnung überschrieben und genehmigt. Als ich anfing, diese Antwort zu schreiben, wusste ich nicht, wie verwirrend die Erweiterungen aussehen würden. Ich sollte wahrscheinlich eines Tages zurückgehen und es mit pi (Produkt) -Notation umschreiben.
Josh
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.