I am trying to understand and know what to report from my analysis of some data using model averaging in R.

I am using the following script to analyse the effect of method of measurement over a given variable: Here is the dataset: https://www.dropbox.com/s/u9un273gzw9o30u/VMT4.csv?dl=0

Model to be fitted:

LM.1 <- gls(VMTf ~ turn+sex+method, na.action="na.fail", method = "ML",VMT4)

dredge full model


Obtain summary information of all models to get parameter estimates


I know that either all models can be averaged (full model averaging) or just a subset of them (conditional averaging). Now, I would like to know: when is better to use full or conditional averaging to make inferences. What should I report of all this for a scientific article? What means exactly the Z value and associated p for a model averaging situation?

To make it easier to visualize my questions. Here is the result table,

> summary(model.avg(d))# now, there are effects

model.avg(object = d)

Component model call: 
gls(model = VMT ~ <8 unique rhs>, data = VMT4, method = ML, na.action = 

Component models: 
       df  logLik   AICc delta weight
1       4 -247.10 502.52  0.00   0.34
12      5 -246.17 502.83  0.31   0.29
13      5 -246.52 503.52  1.01   0.20
123     6 -245.60 503.88  1.36   0.17
(Null)  2 -258.62 521.33 18.81   0.00
3       3 -258.38 522.95 20.43   0.00
2       3 -258.60 523.39 20.88   0.00
23      4 -258.36 525.05 22.53   0.00

Term codes: 
method    sex   turn 
     1      2      3 

Model-averaged coefficients:  
(full average) 
                       Estimate Std. Error Adjusted SE z value Pr(>|z|)    
(Intercept)            42.63521    0.37170     0.37447 113.856  < 2e-16 ***
methodlight chamber    -1.05276    0.36098     0.36440   2.889  0.00386 ** 
methodthermal gradient -1.80567    0.36103     0.36445   4.955    7e-07 ***
sex2                    0.19023    0.29403     0.29548   0.644  0.51970    
turn                    0.05005    0.10083     0.10141   0.494  0.62165    

(conditional average) 
                       Estimate Std. Error Adjusted SE z value Pr(>|z|)    
(Intercept)             42.6352     0.3717      0.3745 113.856  < 2e-16 ***
methodlight chamber     -1.0528     0.3609      0.3643   2.890  0.00386 ** 
methodthermal gradient  -1.8058     0.3608      0.3642   4.958  7.1e-07 ***
sex2                     0.4144     0.3089      0.3119   1.328  0.18402    
turn                     0.1337     0.1264      0.1276   1.047  0.29492    
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Relative variable importance: 
                     method sex  turn
Importance:          1.00   0.46 0.37
N containing models:    4      4    4

See Grueber et al. 2011, "Multimodel inference in ecology and evolution: challenges and solutions" Evolutionary Biology 24:699-711.

It really depends on goals as to whether you want to use full or conditional data. In my field we would use criteria, such as AICC to determine which models are most supported, then use those as your conditional subset. This information would then be reported. For example, your first four models are all within 2 AIC units of each other, so they all would be included in your subset. The others are way out there (higher AIC) so including information from them would actually reduce the quality of your beta estimates.

  • 3
    $\begingroup$ Even in your suggested example though, there will be some terms that appear in maybe two of the four "best" models. Do you take a mean of those two coefficient values, or of the two values and two zero values for the two models where they do not appear? $\endgroup$ Jun 21 '16 at 17:12

I think the premise about the difference between what exactly the full and conditional averages are is wrong. One is an average that includes zeroes (full) and one does not include zeroes (conditional). from the help file for the model.avg() command:


The ‘subset’ (or ‘conditional’) average only averages over the models where the parameter appears. An alternative, the ‘full’ average assumes that a variable is included in every model, but in some models the corresponding coefficient (and its respective variance) is set to zero. Unlike the ‘subset average’, it does not have a tendency of biasing the value away from zero. The ‘full’ average is a type of shrinkage estimator and for variables with a weak relationship to the response they are smaller than ‘subset’ estimators.

If you want to only use a subset of models (based on delta AIC for example), use the subset argument in model.avg(). You will still get conditional and full estimates, as long as some of the included models are missing some variables that others have.

  • 1
    $\begingroup$ Yes. I agree. That is the proper interpretation. $\endgroup$ Jan 23 '19 at 15:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.