Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
sebpardo committed Oct 20, 2017
0 parents commit 7a1f90c
Show file tree
Hide file tree
Showing 6 changed files with 210 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.Rproj.user
.Rhistory
.RData
.Ruserdata
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Data and analysis for "Body mass, temperature, and depth shape productivity in sharks and rays"
===========

This repository contains the data and model-fitting process used for the article
"Body mass, temperature, and depth shape productivity in sharks and rays", which
is currenly under review in *Proceedings of the Royal Society B: Biological Sciences*.
64 changes: 64 additions & 0 deletions data/chond-data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
"","species","maxwt_all","log_wt","rmax","t_median","t_med_corr","invtemp","invtemp_scaled","depth_median","depth_scaled"
"Callorhinchus_milii","Callorhinchus_milii",14480.6594733366,4.16078834080514,0.491788225130671,14.51,14.51,40.3410450118133,0.0668370074034865,109.5,-0.208017021786968
"Callorhinchus_capensis","Callorhinchus_capensis",5250,3.72015930340596,0.604497153084726,11.751,11.751,40.7317103418317,0.280518646138715,183,-0.0880004726314928
"Chimaera_monstrosa","Chimaera_monstrosa",2500,3.39794000867204,0.272023859260666,9.997,9.997,40.9840295256464,0.418529297555634,812.5,0.939896366734108
"Leucoraja_naevus","Leucoraja_naevus",2280.50088113565,3.35803024437888,0.435848861422131,11.774,11.774,40.7284223445487,0.278720215119626,241,0.00670646411704552
"Leucoraja_erinacea","Leucoraja_erinacea",927.697729571869,2.96740649371549,0.655138624353105,11.919,11.919,40.7077058820784,0.267388962230478,45.5,-0.312521227854321
"Leucoraja_ocellata","Leucoraja_ocellata",11557.0936222586,4.06284863144488,0.30472145609237,11.6345,11.6345,40.7483729209216,0.289632552420889,159,-0.12718954990675
"Amblyraja_radiata","Amblyraja_radiata",11400,4.05690485133647,0.28420575219311,4.27,4.27,41.8300951917605,0.881300585717635,692,0.743134541247921
"Raja_miraletus","Raja_miraletus",1287.18826634777,3.10964207220063,1.39513928191132,14.031,14.031,40.4083313593107,0.103640521544548,261,0.0393640285130932
"Raja_montagui","Raja_montagui",12871.6442731279,4.10963402888833,0.686722213476562,11.846,11.846,40.7181329144907,0.273092220753345,252,0.0246681245348717
"Raja_microocellata","Raja_microocellata",4500,3.65321251377534,0.649457033429956,11.9185,11.9185,40.7077772819452,0.267428015710224,50.5,-0.304356836755309
"Raja_brachyura","Raja_brachyura",14280,4.15472820744016,0.652371229025237,13.6175,13.6175,40.466597533187,0.13551028463853,146,-0.148416966764181
"Raja_asterias","Raja_asterias",3346.82706747085,3.5246332726854,0.883849061458888,14.0825,14.0825,40.4010862562496,0.0996776782207416,172,-0.105962133049319
"Raja_clavata","Raja_clavata",18000,4.25527250510331,0.731301311083488,12.289,12.289,40.6549385616479,0.238526898886573,150.5,-0.14106901477507
"Beringraja_binoculata","Beringraja_binoculata",91000,4.95904139232109,0.814461362454508,7.4255,7.4255,41.3596518872753,0.623982906082042,60.5,-0.288028054557285
"Torpedo_californica","Torpedo_californica",41000,4.61278385671974,0.288542609515227,9.978,9.978,40.9867798596331,0.42003364367542,99.5,-0.224345803984992
"Torpedo_marmorata","Torpedo_marmorata",3000,3.47712125471966,0.127615030386353,16.421,16.421,40.0748176029306,-0.0787810053431389,46,-0.311704788744419
"Torpedo_torpedo","Torpedo_torpedo",2747.17948701653,3.43888703498458,0.263838738989442,14.859,14.859,40.2921610369753,0.0400990118644759,150.5,-0.14106901477507
"Rhinobatos_productus","Rhinobatos_productus",18400,4.26481782300954,0.268414462510244,14.2075,14.2075,40.3835118557831,0.0900650343465672,46.25,-0.311296569189469
"Aetobatus_flagellum","Aetobatus_flagellum",13930,4.14395111642396,0.221585281520882,22.451,22.451,39.2573266264262,-0.525922837720386,100.5,-0.22271292576519
"Myliobatis_californicus","Myliobatis_californicus",82100,4.91434315711944,0.296263794656409,13.9705,13.9705,40.4168459169519,0.108297716565676,54.5,-0.297825323876099
"Manta_birostris","Manta_birostris",3e+06,6.47712125471966,0.0673616,26.503,26.503,38.7264769853738,-0.816280882076983,60.5,-0.288028054557285
"Dasyatis_americana","Dasyatis_americana",135630,5.13235576175396,0.269553302859802,27.6,27.6,38.5852203095535,-0.893543837482179,27,-0.342729474920665
"Pteroplatytrygon_violacea","Pteroplatytrygon_violacea",11491.3586599141,4.0603713797431,0.480791564008549,15.754,15.754,40.16733935182,-0.0281745209632473,119.5,-0.191688239588944
"Notorynchus_cepedianus","Notorynchus_cepedianus",107000,5.02938377768521,0.236439882004782,14.546,14.546,40.3359970527856,0.0640759327075273,68.5,-0.274965028798866
"Deania_calcea","Deania_calcea",7598.26251463454,3.8807142940473,0.0765856812520637,7.499,7.499,41.3488200852246,0.618058251307759,691,0.741501663028119
"Centrophorus_squamosus","Centrophorus_squamosus",30945.8128041794,4.49060189409731,0.0541304941602342,2.4915,2.4915,42.0999922293929,1.02892576988318,1886,2.69279113569197
"Squalus_acanthias","Squalus_acanthias",9100,3.95904139232109,0.147143681243064,8.437,8.437,41.2110822165022,0.542719972625305,300.5,0.103862718195287
"Etmopterus_spinax","Etmopterus_spinax",850,2.92941892571429,0.183380910713332,6.875,6.875,41.4409606574349,0.66845624404226,966,1.19054317347377
"Rhincodon_typus","Rhincodon_typus",3.4e+07,7.53147891704226,0.187519427647805,9.804,9.804,41.0119843087506,0.433819683994329,350.5,0.185506629185407
"Alopias_superciliosus","Alopias_superciliosus",363800,5.56086269472747,0.0929035633401792,9.861,9.861,41.0037242654816,0.429301700323604,362,0.204284728713134
"Carcharias_taurus","Carcharias_taurus",158810,5.20087784574903,0.0633356002298385,20.776,20.776,39.4810428750713,-0.403557091520365,96,-0.2300608777543
"Cetorhinus_maximus","Cetorhinus_maximus",4e+06,6.60205999132796,0.146895563335517,3.861,3.861,41.8918563093098,0.915081972992045,1000.5,1.24687747205696
"Lamna_ditropis","Lamna_ditropis",175000,5.24303804868629,0.218735183800611,3.927,7.427,41.3594307733642,0.623861963732569,325.5,0.144684673690347
"Lamna_nasus","Lamna_nasus",230000,5.36172783601759,0.137446621248261,9.191,12.691,40.5977624207101,0.207253349499547,350.5,0.185506629185407
"Carcharodon_carcharias","Carcharodon_carcharias",1208380,6.08220352861588,0.13957122286281,6.317,9.817,41.0101001463005,0.432789106441006,650.5,0.675370095126122
"Isurus_oxyrinchus","Isurus_oxyrinchus",505760,5.7039444784955,0.116395135766456,12.476,15.976,40.1364976103782,-0.045043982741239,250.5,0.0222188072051682
"Scyliorhinus_canicula","Scyliorhinus_canicula",1320,3.12057393120585,0.426272888414465,12.2645,12.2645,40.658428384326,0.240435722044022,146,-0.148416966764181
"Galeorhinus_galeus","Galeorhinus_galeus",44670,4.65001595247184,0.195573648646464,9.4425,9.4425,41.0644479527879,0.46251564590982,400,0.266334101065625
"Triakis_semifasciata","Triakis_semifasciata",18420,4.26528962586083,0.27158618497403,13.252,13.252,40.5182401243644,0.163757156483524,46,-0.311704788744419
"Furgaleus_macki","Furgaleus_macki",12900,4.11058971029925,0.296854277050781,15.382,15.382,40.2191265027734,0.000151420528978099,110.5,-0.206384143567166
"Mustelus_manazo","Mustelus_manazo",5720,3.75739602879302,0.403794186012131,15.173,15.173,40.2482806023044,0.0160977953028641,180.5,-0.0920826681809988
"Mustelus_antarcticus","Mustelus_antarcticus",30800,4.48855071650044,0.387206376382727,13.7655,13.7655,40.4457235949198,0.124092897445284,175.5,-0.100247059280011
"Mustelus_canis","Mustelus_canis",12150,4.08457627793433,0.451684784511028,10.828,10.828,40.8640986558755,0.352930886797293,400,0.266334101065625
"Galeocerdo_cuvier","Galeocerdo_cuvier",807400,5.9070887450743,0.271077722725873,24.223,24.223,39.023398251012,-0.653874295820849,70.5,-0.271699272359261
"Sphyrna_lewini","Sphyrna_lewini",152400,5.18298496700358,0.464941202957723,16.2465,16.2465,40.0989818746882,-0.0655639092988761,138,-0.1614799925226
"Sphyrna_tiburo","Sphyrna_tiburo",10760,4.03181227133037,0.556760817589075,26.016,26.016,38.7895182209817,-0.781799310518139,40.5,-0.320685618953333
"Rhizoprionodon_terraenovae","Rhizoprionodon_terraenovae",7250,3.86033800657099,0.499373447832786,19.41,19.41,39.665384905996,-0.302727803050053,140.5,-0.157397796973094
"Negaprion_brevirostris","Negaprion_brevirostris",183700,5.26410915630581,0.126349183821903,25.91,25.91,38.8032669300415,-0.774279199423935,46.5,-0.310888349634518
"Carcharhinus_limbatus","Carcharhinus_limbatus",122750,5.08902150079501,0.131132696404845,27.463,27.463,38.6028049621879,-0.883925585994782,15.5,-0.361507574448392
"Carcharhinus_tilstoni","Carcharhinus_tilstoni",52000,4.7160033436348,0.292007184151132,25.81,25.81,38.8162463476659,-0.767179866530252,75.5,-0.263534881260249
"Carcharhinus_signatus","Carcharhinus_signatus",76650,4.88451215919039,0.204211290319167,12.901,12.901,40.5679581896173,0.190951373225201,300.5,0.103862718195287
"Carcharhinus_amblyrhynchos","Carcharhinus_amblyrhynchos",33700,4.52762990087134,0.142405570854629,25.43,25.43,38.8656474248048,-0.740159032309279,70.5,-0.271699272359261
"Carcharhinus_falciformis","Carcharhinus_falciformis",346000,5.53907609879278,0.155493630445076,14.5185,14.5185,40.3398530186593,0.0661850246680781,242,0.0083393423368479
"Prionace_glauca","Prionace_glauca",205930,5.31371961949509,0.577147025060673,13.275,13.275,40.5149864994264,0.16197752605524,175.5,-0.100247059280011
"Carcharhinus_plumbeus","Carcharhinus_plumbeus",117930,5.07162429853975,0.147670951201978,18.191,18.191,39.8313488595776,-0.211950744408543,140.5,-0.157397796973094
"Carcharhinus_sorrah","Carcharhinus_sorrah",28000,4.44715803134222,0.319844236907781,25.488,25.488,38.8580991303793,-0.744287711765985,66,-0.279047224348372
"Carcharhinus_longimanus","Carcharhinus_longimanus",167370,5.22367761613003,0.212197673673498,22.872,22.872,39.2014951865003,-0.556460877980409,76.5,-0.261902003040447
"Carcharhinus_obscurus","Carcharhinus_obscurus",346540,5.53975337105938,0.0915137074570559,15.9135,15.9135,40.145175742002,-0.0402973179003745,200.5,-0.0594251037849511
"Carcharhinus_galapagensis","Carcharhinus_galapagensis",85450,4.93171206705676,0.192531300214365,19.631,19.631,39.6354442675522,-0.319104389851737,140.5,-0.157397796973094
"Carcharhinus_leucas","Carcharhinus_leucas",316500,5.50037371435337,0.113908049322114,24.534,24.534,38.9826292582007,-0.676173651622681,76.5,-0.261902003040447
"Carcharhinus_brevipinna","Carcharhinus_brevipinna",89700,4.95279244304409,0.179567468339643,26.864,26.864,38.67987829934,-0.841768896572978,38,-0.324767814502839
"Carcharhinus_brachyurus","Carcharhinus_brachyurus",304600,5.48372989900002,0.123547339377945,23.2105,23.2105,39.1567196306465,-0.580951697653819,50.5,-0.304356836755309
"Carcharhinus_acronotus","Carcharhinus_acronotus",18860,4.27554168840131,0.240679998464736,27.6195,27.6195,38.5827186868955,-0.894912146333732,24,-0.347628109580072
1 change: 1 addition & 0 deletions data/stein-et-al-single.tree
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(((Callorhinchus_milii:4.943837,Callorhinchus_capensis:4.943837):178.056164,Chimaera_monstrosa:183):165.94,((((Leucoraja_naevus:50.31618,((Leucoraja_erinacea:15.365853,Leucoraja_ocellata:15.365853):27.746768,Amblyraja_radiata:43.112621):7.203558):28.262948,((Raja_miraletus:34.62538,((Raja_montagui:18.911694,(Raja_microocellata:13.033042,Raja_brachyura:13.033042):5.878652):8.948014,(Raja_asterias:22.918504,Raja_clavata:22.918503):4.941204):6.765672):24.275687,Beringraja_binoculata:58.901066):19.67806):133.413445,((Torpedo_californica:55.648959,(Torpedo_marmorata:35.044896,Torpedo_torpedo:35.044896):20.604062):153.307624,(Rhinobatos_productus:187.965295,((Aetobatus_flagellum:104.225642,(Myliobatis_californicus:99.628853,Manta_birostris:99.628852):4.59679):4.111106,(Dasyatis_americana:73.312643,Pteroplatytrygon_violacea:73.312644):35.024106):79.628547):20.991287):3.035989):53.128262,((Notorynchus_cepedianus:223.213796,((Deania_calcea:99.376897,Centrophorus_squamosus:99.376898):50.537733,(Squalus_acanthias:142.922816,Etmopterus_spinax:142.922816):6.991816):73.299166):22.756131,(Rhincodon_typus:204.537631,((Alopias_superciliosus:115.995546,(Carcharias_taurus:90.06505,(Cetorhinus_maximus:80.93409,((Lamna_ditropis:36.818037,Lamna_nasus:36.818037):17.362264,(Carcharodon_carcharias:47.203159,Isurus_oxyrinchus:47.203159):6.977142):26.753789):9.13096):25.930496):72.630138,(Scyliorhinus_canicula:159.019082,((Galeorhinus_galeus:96.244289,((Triakis_semifasciata:76.322295,Furgaleus_macki:76.322295):5.413983,((Mustelus_manazo:11.757846,Mustelus_antarcticus:11.757846):52.627596,Mustelus_canis:64.385442):17.350836):14.508011):0.048523,(Galeocerdo_cuvier:76.742101,((Sphyrna_lewini:28.756518,Sphyrna_tiburo:28.756518):41.922029,(Rhizoprionodon_terraenovae:66.992365,(Negaprion_brevirostris:55.383294,((Carcharhinus_limbatus:5.553406,Carcharhinus_tilstoni:5.553406):42.233853,(Carcharhinus_signatus:46.677532,((Carcharhinus_amblyrhynchos:31.887831,(Carcharhinus_falciformis:28.257635,Prionace_glauca:28.257635):3.630196):10.242703,(Carcharhinus_plumbeus:40.465977,((Carcharhinus_sorrah:31.708177,(Carcharhinus_longimanus:13.640498,(Carcharhinus_obscurus:1.42776,Carcharhinus_galapagensis:1.42776):12.212738):18.067679):3.987324,(Carcharhinus_leucas:33.430057,((Carcharhinus_brevipinna:15.612409,Carcharhinus_brachyurus:15.612409):16.140286,Carcharhinus_acronotus:31.752695):1.677362):2.265445):4.770476):1.664557):4.546998):1.109727):7.596035):11.609071):3.686182):6.063554):19.550712):62.726268):29.606602):15.911946):41.432297):19.150906):83.819166);
122 changes: 122 additions & 0 deletions rmax-scaling-analysis.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
library(ape)
library(caper)
library(car)
library(nlme)
library(tidyverse)

phy <- read.tree("data/stein-et-al-single.tree")
dat <- read.csv("data/chond-data.csv",
stringsAsFactors = FALSE,header = TRUE)

# Creating comparative.data object for use in pgls() function
cd <- comparative.data(phy, dat, names.col = "species")

### Fitting models

# mass only
zslope_noutc_phy_2 <- pgls(log(rmax) ~ log_wt, data = cd, lambda = "ML")

# mass + temp
zslope_invtemp_phy_scaled_2 <- pgls(log(rmax) ~ log_wt + invtemp_scaled,
data = cd, lambda = "ML")

# mass + depth
zslope_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt + depth_scaled,
data = cd, lambda = "ML")

# mass + temp + depth
zslope_invtemp_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt + invtemp_scaled
+ depth_scaled,
data = cd, lambda = "ML")

# mass + temp * depth
zslope_invtemp_x_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt +
invtemp_scaled * depth_scaled,
data = cd, lambda = "ML")

#mass * depth + temp
zslope_invtemp_wt_x_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt *
depth_scaled + invtemp_scaled,
data = cd, lambda = "ML")

# mass * depth
zslope_wt_x_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt * depth_scaled,
data = cd, lambda = "ML")

# mass * temp
zslope_wt_x_invtemp_phy_scaled_2 <- pgls(log(rmax) ~ log_wt * invtemp_scaled,
data = cd, lambda = "ML")

# mass * temp + depth
zslope_wt_x_invtemp_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt *
invtemp_scaled + depth_scaled,
data = cd, lambda = "ML")

# testing model with 2 interactions: mass * temp + mass * depth
zslope_wt_x_invtemp_wt_x_depth_phy_scaled_2 <- pgls(log(rmax) ~ log_wt *
invtemp_scaled +
log_wt * depth_scaled,
data = cd, lambda = "ML")

# saving all models in list
capermodels <- list(zslope_noutc_phy_2,
zslope_depth_phy_scaled_2,
zslope_invtemp_phy_scaled_2,
zslope_invtemp_depth_phy_scaled_2,
zslope_invtemp_x_depth_phy_scaled_2,
zslope_wt_x_depth_phy_scaled_2,
zslope_wt_x_invtemp_phy_scaled_2,
zslope_invtemp_wt_x_depth_phy_scaled_2,
zslope_wt_x_invtemp_depth_phy_scaled_2,
zslope_wt_x_invtemp_wt_x_depth_phy_scaled_2)

# manually extracting information from each model object
aics <- sapply(capermodels, function (x) bbmle::AIC(x))
aiccs <- sapply(capermodels, function (x) x$aicc)
formulas <- sapply(capermodels, # tidying formulas for easier reading
function (x) deparse(formula(x), width.cutoff = 90L)) %>%
sub("^log\\(\\w+\\)\\s\\~\\s", "", .) %>%
gsub("_scaled", "", .) %>%
gsub("\\_wt", "(M)", .)
r2s <- sapply(capermodels, function (x) summary(x)$r.squared)
ar2s <- sapply(capermodels, function (x) summary(x)$adj.r.squared)
LL <- sapply(capermodels, function (x) x$model$log.lik)
ks <- sapply(capermodels, function (x) x$k)

models_table <- data.frame(formulas, ks, LL, aics, aiccs, r2s, ar2s) %>%
rename(Model = formulas, n = ks, AIC = aics,
AICc = aiccs, R_sq = r2s, adj_R_sq = ar2s) %>%
mutate(Model = as.character(formulas),
LL = round(LL, 1),
AIC = round(AIC, 1), AICc = round(AICc, 1),
dAIC = round(AIC - min(AIC), 2),
dAICc = round(AICc - min(AICc), 2),
R_sq = round(R_sq, 2), adj_R_sq = round(adj_R_sq, 2),
Weights = round(exp(-dAICc/2)/sum(exp(-dAICc/2)), 3))
models_table

### Top-ranked model diagnostic plots and analyses
topmod <- which(models_table$dAICc == 0)
bestmodel <- capermodels[[topmod]]

# Re-running the model using nlme:gls for diagnostics
# parameter estimates are obtained
# corPagel() is used as it's equivalent to `lambda = "ML"` in pgls
bestmodel_gls <- nlme::gls(formula(bestmodel), data = cd$data,
correlation = corPagel(1, cd$phy))

# almost identical coefficent estimates
rbind(coef(bestmodel), coef(bestmodel_gls))

# residual plots almost identical as well, homoscedastic
plot(resid(bestmodel) ~ fitted(bestmodel)) # pgls
plot(bestmodel_gls) # gls

# Variance inflation factors (on gls model)
vif(bestmodel_gls)

# qqplot (on gls model) looks normal
qqnorm(bestmodel_gls)

# profile plot of lambda
plot(pgls.profile(bestmodel))
13 changes: 13 additions & 0 deletions rmax-scaling.Rproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Version: 1.0

RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default

EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8

RnwWeave: Sweave
LaTeX: pdfLaTeX

0 comments on commit 7a1f90c

Please sign in to comment.