Anmerkung: keine richtigen Antworten nach einem Monat habe ich zu reposted SO
Hintergrund
Ich habe ein Modell, , wobei
ist eine Matrix von Abtastwerten aus Parametern und ist der Vektor von Modellausgaben.m Y n × 1
ist rechenintensiv, daher möchte ich mit einem multivariaten kubischen Spline durch Punkte approximieren , damit ich an einer größeren Anzahl von Punkten auswerten kann .( X , Y ) Y
Frage
Gibt es eine R-Funktion, die eine beliebige Beziehung zwischen X und Y berechnet?
Insbesondere suche ich nach einer multivariaten Version der splinefun
Funktion, die eine Spline-Funktion für den univariaten Fall generiert.
zB splinefun
funktioniert dies für den univariaten Fall
x <- 1:10
y <- runif(10)
foo <- splinefun(x,y)
foo(1:10) #returns y, as example
all(y == foo(1:10))
## TRUE
Was ich probiert habe
Ich habe das mda- Paket überprüft , und es scheint, dass Folgendes funktionieren sollte:
library(mda)
x <- data.frame(a = 1:10, b = 1:10/2, c = 1:10*2)
y <- runif(10)
foo <- mars(x,y)
predict(foo, x) #all the same value
all(y == predict(foo,x))
## FALSE
aber ich konnte keinen Weg finden, einen Cubic-Spline in zu implementieren mars
Update seit dem Angebot der Prämie, änderte ich den Titel - Wenn es keine R-Funktion gibt, würde ich in der Reihenfolge der Präferenz akzeptieren: eine R-Funktion, die eine Gaußsche Prozessfunktion ausgibt, oder eine andere multivariate Interpolationsfunktion, die vorzugsweise durch die Konstruktionspunkte geht in R, sonst Matlab.