Overview
He we show some simpler examples of using FSSgam for different response distributions and particularly show the use with binomial data, which none of the original case studies were able to do.
R packages and data
The dataset used here is for a large range of coral species identified as points scores on individual images, with a small number of potential predictors.
library(FSSgam)
library(mgcv)
library(MuMIn)
require(car)
require(doBy)
require(gplots)
require(RColorBrewer)
library(tibble)
library(dplyr)
library(tidyr)
dat <- coral_data
str(dat)## 'data.frame': 350 obs. of 73 variables:
## $ Ident : chr "5_2009_11_T1" "5_2009_11_T2" "5_2009_11_T3" "8_2009_11_T1" ...
## $ Site : int 5 5 5 8 8 8 8 11 11 11 ...
## $ Year : int 2009 2009 2009 2009 2009 2009 2009 2009 2009 2009 ...
## $ Month : int 11 11 11 11 11 11 11 11 11 11 ...
## $ Replicate : chr "T1" "T2" "T3" "T1" ...
## $ Survey : int 1 1 1 1 1 1 1 1 1 1 ...
## $ Acropora.spp. : int 25 25 13 65 26 22 23 1 0 0 ...
## $ Alcyoniidae : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Alveopora.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Astreopora.spp. : int 1 1 0 0 0 0 0 0 0 0 ...
## $ Caulastrea.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Coscinarea.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Cyphastrea.spp. : int 2 2 1 3 9 1 2 0 2 0 ...
## $ Dendronephthya.spp.: int 0 0 0 0 0 0 0 0 0 0 ...
## $ Diploastrea.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Echinophyllia.spp. : int 0 0 0 0 2 0 0 0 0 0 ...
## $ Echinopora.spp. : int 0 0 0 7 2 0 0 0 0 0 ...
## $ Euphyllia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Favia.spp. : int 1 2 0 0 0 0 0 0 0 0 ...
## $ Faviidae : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Favites.spp. : int 6 3 3 0 0 0 1 0 0 3 ...
## $ Fungia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Fungiidae : int 3 1 1 0 0 0 1 0 0 0 ...
## $ Galaxea.spp. : int 2 1 0 0 1 0 0 4 9 18 ...
## $ Gardineroseris.spp.: int 0 0 0 0 0 0 0 0 0 0 ...
## $ Goniastrea.spp. : int 5 3 3 7 1 17 8 4 1 0 ...
## $ Goniopora.spp. : int 0 0 0 0 0 0 0 2 0 0 ...
## $ Hard.coral : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hydnophora.spp. : int 0 0 0 0 0 0 0 4 1 4 ...
## $ Isopora.spp. : int 0 0 0 0 0 0 0 4 0 0 ...
## $ Leptastrea.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Leptoria.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Leptoseris.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Lithophyllon.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Lobophyllia.spp. : int 4 7 2 0 1 2 0 0 0 0 ...
## $ Lobophytum.spp. : int 0 0 0 0 0 0 0 3 2 9 ...
## $ Merulina.spp. : int 1 3 1 4 20 1 1 0 0 0 ...
## $ Millepora.spp. : int 0 13 0 0 0 0 0 2 0 2 ...
## $ Montastrea.spp. : int 1 0 0 0 1 1 0 0 0 0 ...
## $ Montipora.spp. : int 1 4 0 7 1 2 2 0 0 0 ...
## $ Mycedium.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Octocorals...Soft : int 36 32 26 0 0 0 0 0 0 0 ...
## $ Oulophyllia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Oxypora.spp. : int 1 1 1 0 0 0 0 0 0 0 ...
## $ Pachyseris.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Pavona.spp. : int 0 2 3 0 0 5 0 0 0 0 ...
## $ Pectinia.spp. : int 0 0 0 3 2 0 0 0 0 0 ...
## $ Platygyra.spp. : int 0 1 0 0 3 0 0 0 1 0 ...
## $ Plerogyra.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Plesiastrea.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Pocillopora.spp. : int 0 0 0 0 4 0 0 1 0 0 ...
## $ Podabacia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Porites.spp. : int 30 22 20 14 15 24 99 120 137 97 ...
## $ Psammocora.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Sarcophyton.spp. : int 0 0 0 0 0 0 0 3 4 0 ...
## $ Scolymia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Seriatopora.spp. : int 0 0 0 0 0 0 0 1 0 0 ...
## $ Sinularia.spp. : int 0 0 0 0 0 0 0 0 3 7 ...
## $ Stylophora.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Symphyllia.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Tubipora.spp. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Turbinaria.spp. : int 0 0 2 0 0 0 0 1 1 0 ...
## $ allcoral : int 119 123 76 110 88 75 137 150 161 140 ...
## $ totalpoints : int 294 300 300 276 276 306 306 300 300 300 ...
## $ av.wave : num 0 0 0 0 0 ...
## $ max.wave : num 0 0 0 0 0 ...
## $ dredge.days : num 0 0 0 0 0 0 0 0 0 0 ...
## $ dredge.pres : int 0 0 0 0 0 0 0 0 0 0 ...
## $ bleach.ind : num 0 0 0 0 0 0 0 0 0 0 ...
## $ bleach.pres : int 0 0 0 0 0 0 0 0 0 0 ...
## $ DHW : num 0 0 0 0 0 0 0 0 0 0 ...
## $ dhw.fact : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Depth : num 3 3 3 4 4 4 4 9 9 9 ...
Example showing use of uGamm to allow fitting with gamm4
We set up the necessaru predictor vectors
cat.preds=c("Survey","bleach.pres","dredge.pres","dhw.fact")
null.vars=c("Site")
cont.preds=c("av.wave","Depth")Now do some basic data manipulation to get rid of NA’s and unused columns
use.dat=na.omit(dat[,c(null.vars,cat.preds,cont.preds,"allcoral","totalpoints")])
use.dat$successes=use.dat$allcoral
use.dat$failures=use.dat$totalpoints-use.dat$allcoral
use.dat$trials=use.dat$totalpointsNow we fit the test.fit model for all coral, with total points as trials, and run the FSSgam approach.
We can examine the output with:
names(out.list)## [1] "mod.data.out" "failed.models" "success.models"
## [4] "variable.importance"
out.list$failed.models## named list()
length(out.list$success.models)## [1] 26
mod.table=out.list$mod.data.outAnd examine the full model table.
mod.table=mod.table[order(mod.table$AICc),]
tab <- mod.table |>
as_tibble() |>
select(modname, AICc, r2.vals, edf, delta.AICc, wi.AICc)
knitr::kable(
tab,
digits = 3,
caption = "Model comparison summary based on AICc"
)| modname | AICc | r2.vals | edf | delta.AICc | wi.AICc |
|---|---|---|---|---|---|
| av.wave.by.Survey+Survey | 5726.072 | 0.002 | 30.43 | 0.000 | 1 |
| Depth.by.Survey+Survey | 5804.053 | 0.121 | 30.00 | 77.981 | 0 |
| av.wave+Survey | 5872.776 | 0.001 | 10.00 | 146.704 | 0 |
| Survey | 5901.816 | 0.021 | 6.00 | 175.744 | 0 |
| Depth+Survey | 5904.288 | 0.103 | 10.00 | 178.216 | 0 |
| av.wave.by.bleach.pres+bleach.pres+dredge.pres | 5937.926 | 0.002 | 11.02 | 211.854 | 0 |
| av.wave.by.dredge.pres+bleach.pres+dredge.pres | 5940.948 | 0.001 | 11.28 | 214.877 | 0 |
| bleach.pres+Depth.by.dredge.pres+dredge.pres | 5943.791 | 0.098 | 11.04 | 217.719 | 0 |
| av.wave.by.bleach.pres+bleach.pres | 5951.533 | 0.004 | 10.03 | 225.461 | 0 |
| av.wave+bleach.pres+dredge.pres | 5952.134 | 0.000 | 7.00 | 226.062 | 0 |
| av.wave+bleach.pres | 5967.230 | 0.001 | 6.00 | 241.158 | 0 |
| bleach.pres+dredge.pres | 5967.610 | 0.024 | 3.00 | 241.538 | 0 |
| bleach.pres+Depth+dredge.pres | 5969.965 | 0.104 | 7.00 | 243.893 | 0 |
| bleach.pres+Depth.by.bleach.pres+dredge.pres | 5972.946 | 0.107 | 11.00 | 246.874 | 0 |
| bleach.pres | 5979.667 | 0.011 | 2.00 | 253.595 | 0 |
| bleach.pres+Depth | 5982.157 | 0.091 | 6.00 | 256.085 | 0 |
| bleach.pres+Depth.by.bleach.pres | 5985.270 | 0.093 | 10.00 | 259.198 | 0 |
| dhw.fact | 5990.095 | 0.000 | 4.00 | 264.023 | 0 |
| av.wave.by.dredge.pres+dredge.pres | 6003.459 | 0.007 | 10.40 | 277.387 | 0 |
| Depth.by.dredge.pres+dredge.pres | 6020.712 | 0.089 | 10.04 | 294.640 | 0 |
| av.wave+dredge.pres | 6022.518 | 0.007 | 6.25 | 296.447 | 0 |
| av.wave | 6023.987 | 0.008 | 5.25 | 297.916 | 0 |
| dredge.pres | 6038.349 | 0.010 | 2.00 | 312.278 | 0 |
| null | 6039.649 | 0.000 | 1.00 | 313.577 | 0 |
| Depth+dredge.pres | 6040.683 | 0.090 | 6.00 | 314.612 | 0 |
| Depth | 6042.038 | 0.084 | 5.00 | 315.966 | 0 |
It is always good to check the predictor correlation matrix:
model.set$predictor.correlations## av.wave Depth Survey bleach.pres dredge.pres dhw.fact
## av.wave 1.000000000 0.66692956 0.1050576 0.03546485 0.003477723 0.4510273
## Depth 0.666929559 1.00000000 0.1280074 0.08540189 0.085632622 0.4483424
## Survey 0.105057639 0.12800735 0.9999999 0.42179124 0.302465738 0.4460807
## bleach.pres 0.035464850 0.08540189 0.9445830 1.00000000 0.275014427 0.2937127
## dredge.pres 0.003477723 0.08563262 0.5198438 0.21105312 1.000000000 0.3239795
## dhw.fact 0.451027270 0.44834237 0.5850417 0.17197695 0.247240075 0.9999999
We can run the same thing using the non.linear correlation matrix, which can be useful if you think there might be strong non-linear dependencies between predictors.
model.set=generate.model.set(use.dat=use.dat,
test.fit=Model1,
pred.vars.cont=cont.preds,
pred.vars.fact=cat.preds,
non.linear.correlations=TRUE)
model.set$predictor.correlations## av.wave Depth Survey bleach.pres dredge.pres dhw.fact
## av.wave 1.000000000 0.69886256 0.1050576 0.03546485 0.003477723 0.4510273
## Depth 0.749133379 1.00000000 0.1280074 0.08540189 0.085632622 0.4483424
## Survey 0.055891213 0.06828347 1.0000000 0.42179124 0.302465738 0.4460807
## bleach.pres 0.042181807 0.10361989 0.9445830 1.00000000 0.275014427 0.2937127
## dredge.pres 0.003165949 0.07859835 0.5198438 0.21105312 1.000000000 0.3239795
## dhw.fact 0.383415381 0.34328105 0.5850417 0.17197695 0.247240075 1.0000000
out.list=fit.model.set(model.set)## | | | 0% | |=== | 4% | |===== | 8% | |======== | 12% | |=========== | 15% | |============= | 19% | |================ | 23% | |=================== | 27% | |====================== | 31% | |======================== | 35% | |=========================== | 38% | |============================== | 42% | |================================ | 46% | |=================================== | 50% | |====================================== | 54% | |======================================== | 58% | |=========================================== | 62% | |============================================== | 65% | |================================================ | 69% | |=================================================== | 73% | |====================================================== | 77% | |========================================================= | 81% | |=========================================================== | 85% | |============================================================== | 88% | |================================================================= | 92% | |=================================================================== | 96% | |======================================================================| 100%
mod.table=out.list$mod.data.out
mod.table=mod.table[order(mod.table$AICc),]
tab <- mod.table |>
as_tibble() |>
select(modname, AICc, r2.vals, edf, delta.AICc, wi.AICc)
knitr::kable(
tab,
digits = 3,
caption = "Model comparison summary based on AICc"
)| modname | AICc | r2.vals | edf | delta.AICc | wi.AICc |
|---|---|---|---|---|---|
| av.wave.by.Survey+Survey | 5726.072 | 0.002 | 30.43 | 0.000 | 1 |
| Depth.by.Survey+Survey | 5804.053 | 0.121 | 30.00 | 77.981 | 0 |
| av.wave+Survey | 5872.776 | 0.001 | 10.00 | 146.704 | 0 |
| Survey | 5901.816 | 0.021 | 6.00 | 175.744 | 0 |
| Depth+Survey | 5904.288 | 0.103 | 10.00 | 178.216 | 0 |
| av.wave.by.bleach.pres+bleach.pres+dredge.pres | 5937.926 | 0.002 | 11.02 | 211.854 | 0 |
| av.wave.by.dredge.pres+bleach.pres+dredge.pres | 5940.948 | 0.001 | 11.28 | 214.877 | 0 |
| bleach.pres+Depth.by.dredge.pres+dredge.pres | 5943.791 | 0.098 | 11.04 | 217.719 | 0 |
| av.wave.by.bleach.pres+bleach.pres | 5951.533 | 0.004 | 10.03 | 225.461 | 0 |
| av.wave+bleach.pres+dredge.pres | 5952.134 | 0.000 | 7.00 | 226.062 | 0 |
| av.wave+bleach.pres | 5967.230 | 0.001 | 6.00 | 241.158 | 0 |
| bleach.pres+dredge.pres | 5967.610 | 0.024 | 3.00 | 241.538 | 0 |
| bleach.pres+Depth+dredge.pres | 5969.965 | 0.104 | 7.00 | 243.893 | 0 |
| bleach.pres+Depth.by.bleach.pres+dredge.pres | 5972.946 | 0.107 | 11.00 | 246.874 | 0 |
| bleach.pres | 5979.667 | 0.011 | 2.00 | 253.595 | 0 |
| bleach.pres+Depth | 5982.157 | 0.091 | 6.00 | 256.085 | 0 |
| bleach.pres+Depth.by.bleach.pres | 5985.270 | 0.093 | 10.00 | 259.198 | 0 |
| dhw.fact | 5990.095 | 0.000 | 4.00 | 264.023 | 0 |
| av.wave.by.dredge.pres+dredge.pres | 6003.459 | 0.007 | 10.40 | 277.387 | 0 |
| Depth.by.dredge.pres+dredge.pres | 6020.712 | 0.089 | 10.04 | 294.640 | 0 |
| av.wave+dredge.pres | 6022.518 | 0.007 | 6.25 | 296.447 | 0 |
| av.wave | 6023.987 | 0.008 | 5.25 | 297.916 | 0 |
| dredge.pres | 6038.349 | 0.010 | 2.00 | 312.278 | 0 |
| null | 6039.649 | 0.000 | 1.00 | 313.577 | 0 |
| Depth+dredge.pres | 6040.683 | 0.090 | 6.00 | 314.612 | 0 |
| Depth | 6042.038 | 0.084 | 5.00 | 315.966 | 0 |
Example running across a range of response variables
Set up a vector of response variables
resp.vars=c("Acropora.spp.","Turbinaria.spp.","Pocillopora.spp.","Porites.spp.")Get rid of NA’s and unused columns
Now set up some objects to store the results and run the analysis looping through the response variables.
Make a heatmap plot of the variable importance scores.
heatmap.2(all.var.imp,notecex=0.4, dendrogram ="none",
col=colorRampPalette(c("yellow","orange","red"))(30),
trace="none",key.title = "",keysize=2,
notecol="black",key=T,
sepcolor = "black",
Rowv=FALSE,Colv=FALSE)
And present all the models, and all the top model tables.
tab <- all.mod.fits |>
rownames_to_column("row_id") |>
separate(
row_id,
into = c("taxon", "model_id"),
sep = "\\.spp\\.\\."
) |>
arrange(AICc) |>
as_tibble() |>
select(taxon, modname, AICc, r2.vals, edf, delta.AICc, wi.AICc)
knitr::kable(
tab,
digits = 3,
caption = "Model comparison summary based on AICc"
)| taxon | modname | AICc | r2.vals | edf | delta.AICc | wi.AICc |
|---|---|---|---|---|---|---|
| Turbinaria | Survey | 559.824 | 0.017 | 6.00 | 0.000 | 0.569 |
| Turbinaria | Depth+Survey | 561.895 | 0.013 | 10.00 | 2.071 | 0.202 |
| Turbinaria | av.wave+Survey | 563.911 | 0.013 | 10.00 | 4.087 | 0.074 |
| Turbinaria | bleach.pres+dredge.pres | 564.723 | 0.017 | 3.00 | 4.899 | 0.049 |
| Turbinaria | bleach.pres+Depth+dredge.pres | 565.142 | 0.010 | 7.00 | 5.318 | 0.040 |
| Turbinaria | bleach.pres | 565.903 | 0.010 | 2.00 | 6.078 | 0.027 |
| Turbinaria | bleach.pres+Depth | 567.612 | 0.009 | 6.00 | 7.788 | 0.012 |
| Turbinaria | av.wave+bleach.pres+dredge.pres | 568.610 | 0.019 | 7.00 | 8.786 | 0.007 |
| Turbinaria | bleach.pres+Depth.by.dredge.pres+dredge.pres | 569.565 | 0.015 | 11.00 | 9.741 | 0.004 |
| Turbinaria | av.wave+bleach.pres | 569.940 | 0.013 | 6.00 | 10.115 | 0.004 |
| Turbinaria | av.wave.by.dredge.pres+bleach.pres+dredge.pres | 570.617 | 0.015 | 11.00 | 10.792 | 0.003 |
| Turbinaria | bleach.pres+Depth.by.bleach.pres+dredge.pres | 570.814 | 0.010 | 11.00 | 10.990 | 0.002 |
| Turbinaria | bleach.pres+Depth.by.bleach.pres | 571.536 | 0.010 | 10.00 | 11.712 | 0.002 |
| Turbinaria | Depth.by.Survey+Survey | 571.688 | 0.025 | 30.00 | 11.864 | 0.002 |
| Turbinaria | av.wave.by.bleach.pres+bleach.pres+dredge.pres | 572.788 | 0.019 | 11.00 | 12.964 | 0.001 |
| Turbinaria | null | 573.482 | 0.000 | 1.00 | 13.658 | 0.001 |
| Turbinaria | av.wave.by.bleach.pres+bleach.pres | 574.085 | 0.012 | 10.00 | 14.261 | 0.000 |
| Turbinaria | av.wave.by.Survey+Survey | 574.418 | 0.024 | 30.00 | 14.593 | 0.000 |
| Turbinaria | dredge.pres | 574.514 | 0.003 | 2.00 | 14.690 | 0.000 |
| Turbinaria | Depth | 574.896 | 0.005 | 5.00 | 15.072 | 0.000 |
| Turbinaria | Depth+dredge.pres | 575.128 | 0.006 | 6.00 | 15.304 | 0.000 |
| Turbinaria | av.wave | 577.559 | 0.004 | 5.00 | 17.735 | 0.000 |
| Turbinaria | dhw.fact | 577.829 | 0.000 | 4.00 | 18.005 | 0.000 |
| Turbinaria | av.wave+dredge.pres | 578.619 | 0.003 | 6.00 | 18.795 | 0.000 |
| Turbinaria | Depth.by.dredge.pres+dredge.pres | 579.606 | 0.006 | 10.00 | 19.781 | 0.000 |
| Turbinaria | av.wave.by.dredge.pres+dredge.pres | 580.239 | 0.017 | 10.00 | 20.415 | 0.000 |
| Pocillopora | dredge.pres | 822.830 | 0.006 | 2.00 | 0.000 | 0.177 |
| Pocillopora | null | 823.039 | 0.000 | 1.00 | 0.209 | 0.160 |
| Pocillopora | dhw.fact | 824.019 | 0.000 | 4.00 | 1.190 | 0.098 |
| Pocillopora | av.wave | 824.301 | 0.036 | 5.00 | 1.472 | 0.085 |
| Pocillopora | av.wave+dredge.pres | 824.438 | 0.001 | 6.00 | 1.608 | 0.079 |
| Pocillopora | bleach.pres+dredge.pres | 824.799 | 0.008 | 3.00 | 1.969 | 0.066 |
| Pocillopora | bleach.pres | 824.990 | 0.002 | 2.00 | 2.160 | 0.060 |
| Pocillopora | Survey | 825.188 | 0.001 | 6.00 | 2.358 | 0.055 |
| Pocillopora | av.wave+bleach.pres | 826.312 | 0.034 | 6.00 | 3.482 | 0.031 |
| Pocillopora | Depth+dredge.pres | 826.443 | 0.002 | 6.00 | 3.614 | 0.029 |
| Pocillopora | av.wave+bleach.pres+dredge.pres | 826.462 | 0.001 | 7.00 | 3.632 | 0.029 |
| Pocillopora | Depth | 826.524 | 0.007 | 5.00 | 3.694 | 0.028 |
| Pocillopora | av.wave+Survey | 827.629 | 0.000 | 10.00 | 4.800 | 0.016 |
| Pocillopora | bleach.pres+Depth.by.bleach.pres | 827.650 | 0.002 | 10.00 | 4.820 | 0.016 |
| Pocillopora | bleach.pres+Depth.by.bleach.pres+dredge.pres | 827.878 | 0.001 | 11.00 | 5.048 | 0.014 |
| Pocillopora | bleach.pres+Depth+dredge.pres | 828.429 | 0.001 | 7.00 | 5.599 | 0.011 |
| Pocillopora | bleach.pres+Depth | 828.489 | 0.007 | 6.00 | 5.660 | 0.010 |
| Pocillopora | av.wave.by.dredge.pres+dredge.pres | 828.597 | 0.008 | 10.00 | 5.768 | 0.010 |
| Pocillopora | Depth+Survey | 828.883 | 0.002 | 10.00 | 6.054 | 0.009 |
| Pocillopora | Depth.by.dredge.pres+dredge.pres | 830.277 | 0.002 | 10.00 | 7.447 | 0.004 |
| Pocillopora | av.wave.by.bleach.pres+bleach.pres | 830.522 | 0.001 | 10.00 | 7.693 | 0.004 |
| Pocillopora | av.wave.by.dredge.pres+bleach.pres+dredge.pres | 830.564 | 0.010 | 11.00 | 7.734 | 0.004 |
| Pocillopora | av.wave.by.bleach.pres+bleach.pres+dredge.pres | 831.352 | 0.006 | 11.00 | 8.522 | 0.003 |
| Pocillopora | bleach.pres+Depth.by.dredge.pres+dredge.pres | 832.313 | 0.002 | 11.00 | 9.483 | 0.002 |
| Pocillopora | Depth.by.Survey+Survey | 836.556 | 0.002 | 30.00 | 13.727 | 0.000 |
| Pocillopora | av.wave.by.Survey+Survey | 842.665 | 0.026 | 30.00 | 19.835 | 0.000 |
| Acropora | av.wave.by.Survey+Survey | 3216.484 | 0.142 | 30.11 | 0.000 | 1.000 |
| Acropora | Depth.by.Survey+Survey | 3234.482 | 0.176 | 30.00 | 17.997 | 0.000 |
| Acropora | Survey | 3273.224 | 0.009 | 6.00 | 56.740 | 0.000 |
| Acropora | Depth+Survey | 3276.126 | 0.251 | 10.00 | 59.642 | 0.000 |
| Acropora | av.wave+Survey | 3277.110 | 0.046 | 10.20 | 60.626 | 0.000 |
| Acropora | av.wave.by.bleach.pres+bleach.pres | 3297.990 | 0.099 | 10.08 | 81.505 | 0.000 |
| Acropora | av.wave.by.bleach.pres+bleach.pres+dredge.pres | 3300.081 | 0.100 | 11.09 | 83.597 | 0.000 |
| Acropora | bleach.pres | 3309.545 | 0.006 | 2.00 | 93.061 | 0.000 |
| Acropora | bleach.pres+dredge.pres | 3310.819 | 0.007 | 3.00 | 94.335 | 0.000 |
| Acropora | bleach.pres+Depth | 3312.365 | 0.245 | 6.00 | 95.881 | 0.000 |
| Acropora | av.wave+bleach.pres | 3312.997 | 0.081 | 6.06 | 96.513 | 0.000 |
| Acropora | bleach.pres+Depth+dredge.pres | 3313.685 | 0.244 | 7.00 | 97.201 | 0.000 |
| Acropora | av.wave+bleach.pres+dredge.pres | 3313.942 | 0.044 | 7.02 | 97.458 | 0.000 |
| Acropora | av.wave.by.dredge.pres+bleach.pres+dredge.pres | 3316.647 | 0.093 | 11.01 | 100.163 | 0.000 |
| Acropora | bleach.pres+Depth.by.bleach.pres | 3317.370 | 0.190 | 10.00 | 100.885 | 0.000 |
| Acropora | bleach.pres+Depth.by.bleach.pres+dredge.pres | 3318.651 | 0.188 | 11.00 | 102.167 | 0.000 |
| Acropora | bleach.pres+Depth.by.dredge.pres+dredge.pres | 3318.979 | 0.182 | 11.00 | 102.495 | 0.000 |
| Acropora | dhw.fact | 3334.531 | 0.005 | 4.00 | 118.047 | 0.000 |
| Acropora | av.wave+dredge.pres | 3341.902 | 0.100 | 6.02 | 125.418 | 0.000 |
| Acropora | dredge.pres | 3341.995 | 0.003 | 2.00 | 125.510 | 0.000 |
| Acropora | Depth+dredge.pres | 3344.778 | 0.246 | 6.00 | 128.293 | 0.000 |
| Acropora | null | 3344.805 | 0.000 | 1.00 | 128.321 | 0.000 |
| Acropora | av.wave | 3346.314 | 0.146 | 5.02 | 129.829 | 0.000 |
| Acropora | Depth | 3347.500 | 0.247 | 5.00 | 131.016 | 0.000 |
| Acropora | av.wave.by.dredge.pres+dredge.pres | 3349.062 | 0.135 | 10.00 | 132.578 | 0.000 |
| Acropora | Depth.by.dredge.pres+dredge.pres | 3350.130 | 0.205 | 10.00 | 133.645 | 0.000 |
| Porites | Depth.by.Survey+Survey | 4746.245 | 0.387 | 30.00 | 0.000 | 0.999 |
| Porites | av.wave.by.Survey+Survey | 4759.394 | 0.355 | 30.23 | 13.150 | 0.001 |
| Porites | Depth+Survey | 4768.854 | 0.380 | 10.00 | 22.609 | 0.000 |
| Porites | av.wave+Survey | 4776.205 | 0.276 | 10.98 | 29.960 | 0.000 |
| Porites | Survey | 4779.562 | 0.000 | 6.00 | 33.318 | 0.000 |
| Porites | bleach.pres+Depth.by.dredge.pres+dredge.pres | 4779.670 | 0.384 | 11.00 | 33.425 | 0.000 |
| Porites | bleach.pres+Depth.by.bleach.pres+dredge.pres | 4782.469 | 0.384 | 11.00 | 36.225 | 0.000 |
| Porites | bleach.pres+Depth+dredge.pres | 4783.759 | 0.383 | 7.00 | 37.514 | 0.000 |
| Porites | bleach.pres+Depth | 4785.050 | 0.382 | 6.00 | 38.805 | 0.000 |
| Porites | bleach.pres+Depth.by.bleach.pres | 4785.144 | 0.383 | 10.00 | 38.899 | 0.000 |
| Porites | av.wave+bleach.pres | 4786.290 | 0.291 | 7.03 | 40.046 | 0.000 |
| Porites | av.wave+bleach.pres+dredge.pres | 4786.730 | 0.293 | 8.05 | 40.486 | 0.000 |
| Porites | av.wave.by.dredge.pres+bleach.pres+dredge.pres | 4787.680 | 0.313 | 11.36 | 41.436 | 0.000 |
| Porites | av.wave | 4788.046 | 0.328 | 5.25 | 41.802 | 0.000 |
| Porites | av.wave.by.bleach.pres+bleach.pres | 4788.993 | 0.314 | 10.50 | 42.749 | 0.000 |
| Porites | av.wave+dredge.pres | 4789.557 | 0.331 | 6.23 | 43.312 | 0.000 |
| Porites | av.wave.by.bleach.pres+bleach.pres+dredge.pres | 4790.172 | 0.286 | 12.12 | 43.927 | 0.000 |
| Porites | av.wave.by.dredge.pres+dredge.pres | 4790.216 | 0.326 | 10.39 | 43.971 | 0.000 |
| Porites | Depth.by.dredge.pres+dredge.pres | 4792.761 | 0.386 | 10.00 | 46.516 | 0.000 |
| Porites | Depth | 4793.113 | 0.383 | 5.00 | 46.869 | 0.000 |
| Porites | Depth+dredge.pres | 4794.107 | 0.383 | 6.00 | 47.863 | 0.000 |
| Porites | bleach.pres+dredge.pres | 4794.599 | 0.001 | 3.00 | 48.354 | 0.000 |
| Porites | bleach.pres | 4795.960 | 0.008 | 2.00 | 49.715 | 0.000 |
| Porites | null | 4804.087 | 0.000 | 1.00 | 57.843 | 0.000 |
| Porites | dhw.fact | 4804.345 | 0.055 | 4.00 | 58.100 | 0.000 |
| Porites | dredge.pres | 4805.036 | 0.014 | 2.00 | 58.791 | 0.000 |