注意:最初于 2011 年 7 月 26 日发布在Cross Validated (stats SE)上,迄今为止没有正确答案。
背景
我有一个模型f,其中Y=f( X )
X是来自m个参数的样本的nxm 矩阵, Y是模型输出的nx 1向量。
f是计算密集型的,所以我想使用通过( X , Y)点的多元三次样条来近似f,这样我就可以在更多的点上评估Y。
问题
是否有一个 R 函数可以计算X和Y之间的任意关系?
具体来说,我正在寻找该splinefun
函数的多变量版本,它为单变量情况生成样条函数。
例如,这就是splinefun
单变量案例的工作方式
x <- 1:100
y <- runif(100)
foo <- splinefun(x,y, method = "monoH.FC")
foo(x) #returns y, as example
函数通过点精确插值的测试是成功的:
all(y == foo(1:100))
## TRUE
我试过的
我已经查看了mda包,似乎以下内容应该有效:
library(mda)
x <- data.frame(a = 1:100, b = 1:100/2, c = 1:100*2)
y <- runif(100)
foo <- mars(x,y)
predict(foo, x) #all the same value
然而,该函数并没有通过设计点完全插值:
all(y == predict(foo,x))
## FALSE
我也找不到在 、 或 包中实现三次样条gam
的marss
方法earth
。