我正在使用变量的日志来拟合模型,并且我想根据变量变量来表示我的结果。这是一个简单的例子:
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。
任何想法如何做到这一点?提前谢谢。
答案 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不会受到影响。