从mg.gv中的vis.gam更改等高线图中的单位

时间:2013-03-31 21:34:08

标签: r graphics mgcv

我正在使用变量的日志来拟合模型,并且我想根据变量变量来表示我的结果。这是一个简单的例子:

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。

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

1 个答案:

答案 0 :(得分: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不会受到影响。