2017-05-08 2 views
1

Wahrscheinlich bin ich nicht der Einzige, der die folgende Frage bezüglich der geschätzten Gleichungen in mgcv::gam stellt.mgcv: Wie bekomme ich Spline-Gleichungen?

Nun, was ist Ich habe das Internet umsonst gesurft auf eine explizite Antwort zu bekommen, wie ich die folgende Ausgabe in eine volle Gleichung machen sollte, die ich an andere analytische Software anschließend nehmen, vor allem GIS-Software, um die Gleichung auf einen bestimmten geographischen Raum unter Verwendung von Prädiktoren & X1 X2 abzubilden/Projekt:

family = gaussian(link = "identity") 

smooth class = p-spline 

Das folgende ist ein transponierte Ausgang Splinefunktion Koeffizienten:

**Intercept** 2.121 

**s(X1).1** -1.23E-07 

**s(X1).2** 1.86E-07 

**s(X1).3** -7.33E-08 



**s(X2).1** -2.51E-08 

**s(X2).2** 3.08E-07 

**s(X2).3** -3.00E-08 

Es ist klar, dass das Ausgabemittel: Y = 2.121 + (-1.231e-07 * s (X1) .1) + (1.856e-07 * s (X1) .2) + (-7,331 E-08 * s (X1) 0,3) ... ..

Wie kann ich s mathematisch interpretieren (Xi) .j? Mit anderen Worten, können Sie bitte beraten, wie die genauen vollständigen Gleichungen für p-Spline aus mgcv::gam zu extrahieren?

Antwort

1

Dies gibt einige notwendige Hintergrund von P-Splines in mgcv: mgcv: how to extract knots, basis, coefficients and predictions for P-splines in adaptive smooth?, aber Ihre Frage ist kein Duplikat. Sehr wahrscheinlich haben Sie diesen Thread gesehen.

Genaue mathematische Formel ist hässlich, weil B-Spline-Konstruktion rekursiv ist.

Eine andere Sache ist, dass mgcv numerische Zentrierung auf glatte Funktionen auferlegt. Dies ist eine Reparametrisierung zur Laufzeit. Es wird keine schöne Formel für eine transformierte Basis geben, selbst wenn die ursprüngliche Basis eine hat.

Nun, mgcv ist für R geschrieben, so dass Modellschätzung und Vorhersage erwartet werden, in R behandelt werden. Es gibt handliche generische Funktionen, um dies in meiner verknüpften Antwort zu tun. Sie können nicht in Ihre vorgesehene Software exportiert werden.

Eine mögliche Abhilfe, die ich mir vorstellen konnte, ist, dass Sie diese Basis mit linearer Interpolation approximieren und die Interpolationsfunktion exportieren.

+0

Vielen Dank. Ich denke, ich mache lineare Interpolation. – Lexo

+0

Zheyuan Li, ich frage mich, ob Predicate.gam() verwendet werden kann, geographische Raster von Prädiktoren zu verarbeiten (ein Analogon von 'newdata' Argument), um ein Raster von vorhergesagten Werten auszugeben. – Lexo

+0

Keine Sorge, ich habe herausgefunden, wie man ein Gam-Modell für eine Reihe von Prädiktor-Rastern vorhersagt. – Lexo