我是R的初学者,所以这可能是一个简单的问题 .
我现在正试图使用薄板回归样条拟合一个四维点 . 一个变量是目标变量,三个变量是解释变量 .
我创建了一个具有三阶交互的模型,并将数据拟合到此 .
library(mgcv)
dat <- read.csv('../data//data.csv')
model <- gam(Y ~ s(x1, x2, x3), data=dat)
通过给出x3,我想要可视化样条曲线或估计等高线图的三维图,但我该如何做?
如果您能回答,将会非常有帮助 . 谢谢 .
这是样本数据 .
n = 100
x1 <- runif(n, min = 0, max = 100)
x2 <- runif(n, min = 0, max = 100)
x3 <- runif(n, min = 0, max = 100)
Y = numeric(n)
for(i in 1:n){
Y[i] <- x1[i]**0.5*x2[i]**2*x3[i]/10000
}
dat = data.frame(Y=Y, x1=x1, x2=x2, x3=x3)
我使用这个数据做薄平面回归样条 .
model <- gam(Y ~ s(x1, x2, x3, k= 50), data=dat)
然后,我想获得例如当x3 = 25时通过回归样条估计的三维薄平面回归样条或等高线图的拟合曲线 .
2 回答
要制作等高线图,可以使用轮廓(x,y,z,...) . z是你的数据矩阵(在你的情况下,Y [x1,x2,],x和y是从0到1的索引向量,长度为nrow(Y [x1,x2,])和ncol(Y [x1,x2] ,]) .
您应该可以使用它类似于:
我找到了一个参考d0d0答案的解决方案 .