note: sans réponse correcte après un mois, j'ai republié sur SO
Contexte
J'ai un modèle, , où Y = f ( X )
est unematrice n × m d'échantillons à partir de m paramètres et Y est levecteur n × 1 des sorties du modèle.
est un calcul intensif, donc je voudrais approximer f à l' aide d'une spline cubique multivariée passant par ( X , Y ) points, afin que je puisse évaluer Y à un plus grand nombre de points.
Question
Existe-t-il une fonction R qui calculera une relation arbitraire entre X et Y?
Plus précisément, je recherche une version multivariée de la splinefun
fonction, qui génère une fonction spline pour le cas univarié.
par exemple, voici comment splinefun
fonctionne le cas univarié
x <- 1:10
y <- runif(10)
foo <- splinefun(x,y)
foo(1:10) #returns y, as example
all(y == foo(1:10))
## TRUE
Ce que j'ai essayé
J'ai examiné le package mda , et il semble que ce qui suit devrait fonctionner:
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
mais je ne pouvais trouver aucun moyen de mettre en œuvre une spline cubique mars
mise à jour depuis l'offre de la prime, j'ai changé le titre - S'il n'y a pas de fonction R, j'accepterais, par ordre de préférence: une fonction R qui génère une fonction de processus gaussienne, ou une autre fonction d'interpolation multivariée qui passe par les points de conception, de préférence dans R, sinon Matlab.