nota: senza risposte corrette dopo un mese, ho ripubblicato su SO
sfondo
Ho un modello, , dove Y = f ( X )
è unamatrice n × m di campioni daiparametri m e Y è ilvettore n × 1 delle uscite del modello.
è intensivo dal punto di vista computazionale, quindi vorrei approssimare f usando una spline cubica multivariata attraverso punti ( X , Y ) , in modo da poter valutare Y in un numero maggiore di punti.
Domanda
Esiste una funzione R che calcolerà una relazione arbitraria tra X e Y?
In particolare, sto cercando una versione multivariata della splinefun
funzione, che genera una funzione spline per il caso univariato.
ad esempio, è così che splinefun
funziona per il caso univariato
x <- 1:10
y <- runif(10)
foo <- splinefun(x,y)
foo(1:10) #returns y, as example
all(y == foo(1:10))
## TRUE
Quello che ho provato
Ho esaminato il pacchetto mda e sembra che dovrebbe funzionare quanto segue:
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
ma non sono riuscito a trovare alcun modo per implementare una spline cubica in mars
aggiornamento da quando ho offerto la taglia, ho cambiato il titolo - Se non ci fosse la funzione R, accetterei, in ordine di preferenza: una funzione R che emette una funzione di processo gaussiana o un'altra funzione interpolante multivariata che passa attraverso i punti di progettazione, preferibilmente in R, altrimenti Matlab.