Skip to content

Unable to standardize glmmADMB global model

10 messages · Aoibheann Gaughran, Ben Bolker

#
Hello Mixed-Modellers,

I have getting the following error message when trying to standardize my
global glmmadmb model for dredging:

Error in (function (classes, fdef, mtable)  : unable to find an inherited
method for function ?standardize? for signature ?"glmmadmb"?

Is it not possible to standardise a glmmadmb model or is the problem with
the structure of the model itself?

globalmod    <- glmmadmb(field_count ~ habitat
#categorical - 7 levels
                     + season_wt
                                         #categorial - 3 levels
                     + sex
                                              #categorial - 2 levels
                     + ageclass
                                           #categorial - 3 levels
                     + slope
                                             #continuous, not scaled nor
centred
                     + NSEW
                                          #catagorical - 4 levels
                     + month_fix
                                          #continuous, not scaled nor
centred,
                     + num_fields
                  #continuous, not scaled nor centred
                     + habitat:ageclass
                     + habitat:sex
                     + offset(log(origarea))
                     + offset(log(PropAvlHab))
                     +(1|individual_id)
                                           #repeated obs from same
individual
                     +(1|field_id)
                                              #repeated obs in same field,
                     family="nbinom",
                     zeroInflation=TRUE,
                     admb.opts=admbControl(shess=FALSE,noinit=FALSE),
                     debug=TRUE,
                     data = dframe1)

no of observations =9220

Many thanks,
#
'standardize' is a function from the arm package.

I've just hacked glmmADMB a little bit so this should work:

library(devtools)
install_github("bbolker/glmmADMB")  ## install latest version
library(arm)
arm:::standardize.default(fitted_model$call)
On Mon, Aug 15, 2016 at 5:06 AM, Aoibheann Gaughran <gaughra at tcd.ie> wrote:
#
Thanks Ben, I ran the code and got the following error and warnings:-

Error in glmmadmb(formula = field_count ~ habitat + season_wt + c.sex +  :
  rank of X = 16 < ncol(X) = 24In addition: Warning messages:1: In
log(z.PropAvlHab) : NaNs produced2: In glmmadmb(formula = field_count
~ habitat + season_wt + c.sex +  :
  NAs removed in constructing fixed-effect model frame: you should
probably remove them manually, e.g. with na.omit()


The original PropAvlHab summary is as follows:-
0.0000123 0.1123000 0.4041000 0.4078000 0.6818000 1.0000000

Aoibheann
On 15 August 2016 at 15:12, Ben Bolker <bbolker at gmail.com> wrote:

            

  
    
#
Hmm.  Surprising/hard to diagnose.

'standardize' doesn't do anything very fancy - it standardizes the
input variables as described by ?arm::standardize and *refits* the
model (I've always been a little disappointed that it doesn't
standardize by figuring out how to transform the *parameters*, which
is straightforward in principle although it can be tricky to figure
out how to deal with input variables that lead to multiple predictor
variables, e.g. polynomials).  I'd be curious to know what's going on,
but in your place I would

(1) try standardizing by hand, e.g.

std_data <- transform(data,
      z.season.wt = scale(season.wt),
     ...)

and refit yourself.

(2) see if it happens to work with glmmTMB (a simple example does).

  Ben Bolker
On Mon, Aug 15, 2016 at 10:37 AM, Aoibheann Gaughran <gaughra at tcd.ie> wrote:
#
Hi Ben,

Im proceeding by standardizing by hand.  However, I need to include offsets
in my model for origarea and PropAvlHab i.e. offset(log(z.origarea)) but
logging the standardized varible produced NaNs due to the presence of
negative numbers, ditto with z.PropAvlHab. Is there a way around this? Do I
need to also standardize the offset terms or can I leave them in their
unstandardized form?

Many thanks,

Aoibheann
On 15 August 2016 at 15:47, Ben Bolker <bbolker at gmail.com> wrote:

            

  
    
#
You can *scale* the offsets if you like, i.e. change them by a
multiplicative factor (thus changing the effective area unit for which
you were modeling counts), but *centering* them doesn't make sense --
as you've noticed.
On Tue, Aug 16, 2016 at 7:40 AM, Aoibheann Gaughran <gaughra at tcd.ie> wrote:
2 days later
#
Hi Ben,

I've manually scaled and centered the continuous variables, and just scaled
the offset terms.  However, I now get the following error message when I
attempt to run the model, which appears to related to a subsetting issue?

Error in `[.data.frame`(cor_dat, start_pos + (1:x$npar), start_pos + 4 +  :
undefined columns selected

The revised global model is specified as follows:

stdmod12d <- glmmadmb(field_count ~ habitat #categorical
                     + season_wt #cat
                     + sex #cat
                     + ageclass #cat
                     + z.slope #continuous, scaled and centred
                     + NSEW #cat
                     + z.month_fix #continuous, scaled and centred
                     + z.num_fields #continuous, scaled and centred
                     + habitat:ageclass
                     + habitat:sex
                     + offset(log(z.origarea)) #scaled
                     + offset(log(z.PropAvlHab)) #scaled
                     +(1|animal) #repeated obs from same individual
                     +(1|field_id) #repeated obs in same field
                     ,
                     family="nbinom",
                     zeroInflation=TRUE,
                     admb.opts=admbControl(shess=FALSE,noinit=FALSE),
                     debug=TRUE,
                     data = std_data)
On 16 August 2016 at 12:55, Ben Bolker <bbolker at gmail.com> wrote:

            

  
    
#
what's the results of names(std_data) ?
On 16-08-18 09:05 AM, Aoibheann Gaughran wrote:
#
[8] "habitat2"        "monyear"         "mon"             "season_wt"
      "season"          "month"           "year"
[15] "sex"             "age"             "ageclass"        "soil"
      "slope"           "elevation"       "aspect"
[22] "NSEW"            "origarea"        "newarea"         "HRNewArea"
      "HabNewArea"      "PropAvlHab"      "origperim"
[29] "newperim"        "propHRfield"     "percentHRfield"
"PropHabfield"    "percentHabfield" "field_use"       "slopescale"
[36] "aspectscale"     "z.month_fix"     "z.num_fields"    "z.slope"
      "z.origarea"      "z.PropAvlHab"
On 18 August 2016 at 14:07, Ben Bolker <bbolker at gmail.com> wrote:

            

  
    
#
Hmm.  Can you send me a reproducible example?
On Thu, Aug 18, 2016 at 9:11 AM, Aoibheann Gaughran <gaughra at tcd.ie> wrote: