尝试绘制回归曲面时发出警告

时间:2013-12-14 21:03:13

标签: r

使用名为seg部分的数据集显示在

下面
       n   position  age   vehicle
1      0 0.61095890   29      1989
2      0 0.66301370   30      1989
3      1 0.99452055   42      1994
4      0 0.87397260   43      1994
5      0 0.04383562   44      1994
6      0 0.07397260   44      1994

gam1= gam(n~s(age)+ s(vehicle) + offset(log(position)),data=seg,family=Poisson)
ag<-seq(min(age),max(age),len=10)
veh<-seq(min(vehicle),max(vehicle),len=10)
data<-expand.grid(age=ag,vehicle=veh)
fit.gam1<-matrix(predict(gam1,data),10,10)
persp(ag,veh,fit.gam1,theta=45,phi=30,ticktype='detailed',xlab='age',ylab='vehicle',
zlab='n',expand=2/3,shade=.5)

我收到了这条消息

Error in model.frame.default(ff, data = newdata, na.action = na.act) : 
  variable lengths differ (found for 'age')
In addition: Warning messages:
  1: In predict.gam(gam1, data) :
     not all required variables have been supplied in  newdata!
  2: 'newdata' had 100 rows but variable(s) found have 39075 rows 

请问我做得对不对?

由于

1 个答案:

答案 0 :(得分:0)

predict调用时更有可能抛出错误。我认为创建'log_pos'变量然后在执行predict之前将该数据帧传递给gam可能更安全。那么你就不需要确定西蒙伍德是否在解释机制中进行了完整的公式解释。鉴于您已经拥有模型,您可以通过运行快速找到:

data<-expand.grid(age=ag,vehicle=veh, position=0.7)
fit.gam1<-matrix(predict(gam1,data),10,10)

此外:

  

1)您的示例太小,无法支持测试。

     

2)你正在使用附加(而不是承认你的罪的性质。)