1

我正在使用变量的对数拟合模型,并且我想根据转换后的变量来呈现我的结果。这是一个简单的例子:

library(mgcv)
N = seq(from=1,to=10,by=.01)
a = N^2
b = 1/N
y = log(a*b*runif(length(N)))
mod = gam(y~te(a,b))
vis.gam(mod, plot.type="contour")

我想生成相同的图表,但基于 exp(y) 而不是 y。

任何想法如何做到这一点?提前致谢。

4

1 回答 1

0

正如经常发生的那样,我在提出问题后立即想到了解决方案。

只需键入vis.gam并获取功能。将其复制/粘贴到脚本文件中。这是一个长函数。中途某处:

fv <- predict.gam(x, newdata = newd, se.fit = TRUE, type = type)
fv$fit = exp(fv$fit)   #INSERT THIS LINE HERE WITH WHATEVER FUNCTION YOU WANT TO MODIFY THE FITTED VALUES BY
z <- fv$fit

然后把函数名改成“mod.vis.gam”什么的,像任何函数一样使用。效果很好。请注意,SE 不受影响。

于 2013-03-31T21:58:53.107 回答