catatan: tanpa jawaban yang benar setelah sebulan, saya telah memposting ulang ke SO
Latar Belakang
Saya punya model, , di mana
adalahmatriks sampel dariparameter dan adalahvektor dari output model.
adalah komputasi yang intensif, jadi saya ingin memperkirakan menggunakan spline kubik multivariat melalui poin, sehingga saya dapat mengevaluasi pada sejumlah besar poin.
Pertanyaan
Apakah ada fungsi R yang akan menghitung hubungan acak antara X dan Y?
Secara khusus, saya mencari versi multivarian dari splinefun
fungsi, yang menghasilkan fungsi spline untuk kasus univariat.
misalnya ini cara splinefun
kerjanya untuk kasus univariat
x <- 1:10
y <- runif(10)
foo <- splinefun(x,y)
foo(1:10) #returns y, as example
all(y == foo(1:10))
## TRUE
Apa yang saya coba
Saya telah meninjau paket mda , dan tampaknya yang berikut ini berfungsi:
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
tapi saya tidak bisa menemukan cara untuk mengimplementasikan kubik-spline di mars
pembaruan sejak menawarkan hadiah, saya mengubah judul - Jika tidak ada fungsi R, saya akan menerima, sesuai pilihan: fungsi R yang menampilkan fungsi proses gaussian, atau fungsi interpolasi multivarian lain yang melewati titik desain, lebih disukai di R, selain Matlab.
sumber
Jawaban:
Makalah ini disajikan pada UseR! 2009 tampaknya mengatasi masalah yang sama
http://www.r-project.org/conferences/useR-2009/slides/Roustant+Ginsbourger+Deville.pdf
Ini menyarankan paket DiceKriging http://cran.r-project.org/web/packages/DiceKriging/index.html
Secara khusus, periksa fungsi km dan prediksi.
Berikut adalah contoh interpolasi tiga dimensi. Tampaknya mudah untuk digeneralisasi.
sumber
Anda membutuhkan lebih banyak data untuk kecocokan spline. mgcv memang merupakan pilihan yang baik. Untuk permintaan spesifik Anda, Anda perlu mengatur spline kubik sebagai fungsi dasar bs = 'cr' dan juga tidak menghukumnya dengan fx = TRUE. Kedua opsi diatur untuk istilah halus yang diatur dengan s (). Prediksi berfungsi seperti yang diharapkan.
sumber
predict(foo,x)
untuk kembaliy
?rpart
earth
sumber