[R] Plot with residuals in mgcv

William Dunlap wdunlap at tibco.com
Thu Nov 29 01:12:36 CET 2012


> > fit29<- gam(IV~s(G3)+s(V3)+factor(AAR)+s(D3)+s(RUTE,bs="re"),data=subsf,gamma=1.4,method ="ML")
> > plot(fit29,residuals=T)
> > Error in X[, first:last] %*% object$coefficients[first:last] : non-conformable arguments

Those errors often come from omitting the drop=FALSE argument to [ when subscripting
a matrix.  It looks like that is the problem here (I am still using R 2-2.15.1 and mgcv 1.7.18):

  > fit <- gam(mpg ~ s(wt, bs="re") + am, data=mtcars)
  > plot(fit, residuals=TRUE)
  Error in X[, first:last] %*% object$coefficients[first:last] : 
    non-conformable arguments

  Enter a frame number, or 0 to exit   

  1: plot(fit, residuals = TRUE)
  2: plot.gam(fit, residuals = TRUE)
  3: predict(x, type = "terms")
  4: predict.gam(x, type = "terms")

  Selection: 4
  Called from: predict.gam(x, type = "terms")
  Browse[1]> first:last # length 1 result means first==last
  [1] 3
  Browse[1]> try(X[, first:last] %*% object$coefficients[first:last])
  Error in X[, first:last] %*% object$coefficients[first:last] : 
    non-conformable arguments
  Browse[1]> try(X[, first:last, drop=FALSE] %*% object$coefficients[first:last])
              [,1]
   [1,] -13.720247
   [2,] -15.055614
   [3,] -12.149226
   [4,] -16.836104
   [5,] -18.014370
   ...
   [32,] -14.558125

If this is still the problem in the latest version of mgcv you should write
to mgcv's maintainer about the problem.
  > maintainer("mgcv")
  [1] "Simon Wood <simon.wood at r-project.org>"

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Peter Ehlers
> Sent: Wednesday, November 28, 2012 12:17 PM
> To: silje skår
> Cc: r-help at r-project.org
> Subject: Re: [R] Plot with residuals in mgcv
> 
> On 2012-11-28 05:02, silje skår wrote:
> > Hi,
> >
> > I am using the mgcv package (version 1.7-22.) running the model works fine,
> > but when I want to have a plot with residuals I get an error.
> >
> > fit29<-
> gam(IV~s(G3)+s(V3)+factor(AAR)+s(D3)+s(RUTE,bs="re"),data=subsf,gamma=1.4,method
> ="ML")
> >
> >
> > plot(fit29,residuals=T)
> > Error in X[, first:last] %*% object$coefficients[first:last] :
> >    non-conformable arguments
> >
> > does some one know what this error means? the subsf matrix is 35x27.
> >
> > Silje
> 
> Well, the error means that the matrix X[, first:last] and
> the vector object$coefficients[first:last] don't have
> 'matching' dimensions. I don't see why, but since the
> 'residuals' argument to plot.gam() can be an array
> _of the correct length_ (see ?plot.gam), it just might be
> that you have an object called 'T' hanging around, in which
> case using 'T' in place of 'TRUE' is a bad idea.
> Actually, it's _always_ a bad idea.
> 
> Peter Ehlers
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list