nota: sin respuestas correctas después de un mes, he vuelto a publicar en SO
Antecedentes
Tengo un modelo, , donde Y = f ( X )
es unamatriz de muestras n × m de m parámetros e Y es la n × 1 vector de las salidas del modelo.
es computacionalmente intensivo, por lo que me gustaría aproximar f usando una spline cúbica multivariada a través depuntos ( X , Y ) , para poder evaluar Y en un mayor número de puntos.
Pregunta
¿Existe una función R que calcule una relación arbitraria entre X e Y?
Específicamente, estoy buscando una versión multivariada de la splinefun
función, que genera una función de spline para el caso univariante.
Por ejemplo, así es como splinefun
funciona el caso univariante
x <- 1:10
y <- runif(10)
foo <- splinefun(x,y)
foo(1:10) #returns y, as example
all(y == foo(1:10))
## TRUE
Lo que he intentado
He revisado el paquete mda , y parece que lo siguiente debería funcionar:
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
pero no pude encontrar ninguna manera de implementar una spline cúbica en mars
actualización desde la salida a la recompensa, I cambió el título - Si no hay una función R, aceptaría, en orden de preferencia: una función de R que da salida a una función gaussiana proceso, u otra función de interpolación multivariante que pasa a través de los puntos de diseño, preferiblemente en R, si no Matlab.