13/01/05 14:02:30.39
>>720
stats:::predict.smooth.spline.fitにざっと目を通した限りは、
できなさそうだけど。
GAMFIT (URLリンク(lib.stat.cmu.edu))の中までは読んでいない。
sp$fitの中身を使って数学的に解くか、xを細かい間隔でpredict()に与えて、
与えられたyに最も近いものを選ぶしかなさそうだが、
ちゃんとした識者に答えてもらった方がよいかも。
後者なら、
predict.y <- function(y){
x0 <- c(1, 2, 3, 4, 5, 6)
y0 <- c(1, 4, 9, 7, 6, 8)
sp <- smooth.spline(x0, y0)
i <- seq(from = min(x0), to = max(x0), by = 0.0001)
Y <- predict(sp, i)
j <- which.min((Y$y - y)^2)
return(list(y = y, x = i[j], fitted = Y$y[j]))
}
こんな感じでよいのでは。
> predict.y(2.345)
$y
[1] 2.345
$x
[1] 1.4487
$fitted
[1] 2.345004