From 74f9a1c3a8f9a98709e97248e21c713d62176773 Mon Sep 17 00:00:00 2001 From: seananderson Date: Fri, 17 May 2024 19:31:24 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20pbs-asse?= =?UTF-8?q?ss/sdmTMB@0e3bb32999bd7eef51a0e2597d9d579f8ff34883=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- articles/web_only/basic-intro.html | 53 +++--------------- .../figure-html/plot-cv-1.png | Bin 47147 -> 44133 bytes .../figure-html/residuals-mcmc-1.png | Bin 42771 -> 44893 bytes .../figure-html/tv-depth-eff-1.png | Bin 156007 -> 155994 bytes articles/web_only/bayesian.html | 2 +- .../figure-html/unnamed-chunk-9-1.png | Bin 236606 -> 239925 bytes articles/web_only/delta-models.html | 4 +- .../delta-models_files/figure-html/cv-1.png | Bin 49037 -> 49375 bytes .../figure-html/unnamed-chunk-19-1.png | Bin 28600 -> 28511 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 52963 -> 52386 bytes articles/web_only/residual-checking.html | 20 +++---- .../figure-html/unnamed-chunk-13-1.png | Bin 56345 -> 57575 bytes pkgdown.yml | 2 +- reference/get_index_sims-1.png | Bin 70094 -> 70245 bytes reference/sdmTMB.html | 4 +- search.json | 2 +- 16 files changed, 24 insertions(+), 63 deletions(-) diff --git a/articles/web_only/basic-intro.html b/articles/web_only/basic-intro.html index 54c40c3b9..ccf19a947 100644 --- a/articles/web_only/basic-intro.html +++ b/articles/web_only/basic-intro.html @@ -409,8 +409,8 @@

Model diagnostics#> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: -#> Chain 1: Gradient evaluation took 0.010134 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 101.34 seconds. +#> Chain 1: Gradient evaluation took 0.009999 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 99.99 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: @@ -435,9 +435,9 @@

Model diagnostics#> Chain 1: Iteration: 100 / 101 [ 99%] (Warmup) #> Chain 1: Iteration: 101 / 101 [100%] (Sampling) #> Chain 1: -#> Chain 1: Elapsed Time: 26.274 seconds (Warm-up) -#> Chain 1: 0.2 seconds (Sampling) -#> Chain 1: 26.474 seconds (Total) +#> Chain 1: Elapsed Time: 26.982 seconds (Warm-up) +#> Chain 1: 0.197 seconds (Sampling) +#> Chain 1: 27.179 seconds (Total) #> Chain 1: +#> `extra_time = c(2006, 2008, 2010, 2012, 2014, 2016)`
 m4
 #> Spatiotemporal model fit by ML ['sdmTMB']
@@ -616,40 +613,6 @@ 

Time-varying effects#> Time column: year #> Data: pcod #> Family: tweedie(link = 'log') -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced -#> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> #> coef.est coef.se #> as.factor(year)2003 3.36 0.30 @@ -710,9 +673,7 @@

Time-varying effectsnd$depth_scaled2 <- nd$depth_scaled^2 p <- predict(m4, newdata = nd, se_fit = TRUE, re_form = NA) -#> Warning in sqrt(diag(cov)): NaNs produced

-
-
+
 ggplot(p, aes(depth_scaled, exp(est),
   ymin = exp(est - 1.96 * est_se),
   ymax = exp(est + 1.96 * est_se),
diff --git a/articles/web_only/basic-intro_files/figure-html/plot-cv-1.png b/articles/web_only/basic-intro_files/figure-html/plot-cv-1.png
index 74d8cb85bdf489308d655b87f0f0beed3d24f2e7..82659d5dc6486986176a241a2656a11190b948f7 100644
GIT binary patch
literal 44133
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

literal 47147
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%0AryI_{s95fGa4vX
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
z
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 diff --git a/articles/web_only/basic-intro_files/figure-html/tv-depth-eff-1.png b/articles/web_only/basic-intro_files/figure-html/tv-depth-eff-1.png index 88ce6f332361b55369f109a9d17b959855c7cf35..c93e843b13e0158bd94ca9e3914984a6086b8a3f 100644 GIT binary patch delta 119613 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

diff --git a/articles/web_only/bayesian_files/figure-html/unnamed-chunk-9-1.png b/articles/web_only/bayesian_files/figure-html/unnamed-chunk-9-1.png index 3e3bd4c2bab420e3715f6ee253ed2a033aa894ca..391203faa34e54a8a8c051262c986b5315089bd8 100644 GIT binary patch literal 239925 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χ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%0D!OhbmnAGCuE6?y{!IW_(q*1n;eSU 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 z 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

#> #> Dispersion parameter: 0.94 #> Matérn range: 0.01 -#> Spatial SD: 727.51 -#> Spatiotemporal IID SD: 2065.54 +#> Spatial SD: 727.73 +#> Spatiotemporal IID SD: 2066.17 #> ML criterion at convergence: 5102.136 #> #> See ?tidy.sdmTMB to extract these values as a data frame. diff --git a/articles/web_only/delta-models_files/figure-html/cv-1.png b/articles/web_only/delta-models_files/figure-html/cv-1.png index fea4e82b8a092ea224e596557b2f2780fd509e42..c270ee8202b275437a6afe113f85c58f2b77c80a 100644 GIT binary patch literal 49375 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 literal 28600 zcmeFYcU05evp$;8Rf;reQVhKd(yL170t$+BkdE{kkS?#1fQa-Slq$XV7G5b*BfUce z>75t|{eJkKbMEin`~Us#xNv1H)?)9S*?VT5=b0JAb6s_c+swB?AP|M722>veB1C~e z1TV-)fZs%AEcO8(B-YyMP~a2zcdF773Vhu1&@lD}fmkDN{)1yz5A8r84v;4F$xHvt zodsAb*Q+M{;l7JS^*`L}F5T(hM5sYy{`Cr_4vs{PLg;&ix+f+)=;tc4Ak_U zCp|f4pT5 z5LHUI0Dmk}U$}kYRjQZsnhE4wyDHq#K_bHT1N#N=)sHz;(?rvh(;%a8$GBj+My5t; zBPoL3OLr^Y9Zh~*q9~yxCgQ($h?F9@dS-@}GIb+8W)8QxmMOXJQ2)Aj>&HE-x?C!w zJE9R05T*d597Wu zUz2c6?|}ULes=!l#Q*)fr0U)#*1eNw$Bot>)^py7gOY(|^48df*rv8UI$AGm=#kMM z`#?rFtEUgNDD6}H^{rf5{69E`4fb3xgr@=1L+v z*$@3CPl4w@*ngARFpfP7%L=y%-$pdGrVC5oy`J&2yO=NaV6y_&iYcH77cA-+4!NId zU;+aJW|!lko~n?<@MBm}e@IsSNZtDS7gQzOUUdhAO?V#@?-ly~nsW&t^XF_^5_bU! z0bh5d`c_<5F^K}GmBEN}rd{d4Gs+5o4_523eApYu7I%vbJcE zpy*S@pW@1O{>E8SrH*ulEU~w0=xuQ>&dHl529WqCZ(Pmuy*iskiH3QHH4t1*AaibR zr~DZwv$;K(f$&UU|Yt<0&Jtn|Cy-VH(}I7W8r0#17k2a_VDAV?u}#@nTlB z@{=7|viR*4g|^RnGg+smKPCC2)VY)qq#e)Yl((y8=4~PQPcYW)movGcMbs< z=JZna-~Bp|RNtFtw=zLEv$E#nN72qaa@0cPU%HhrI$a_F3gHV-N^B8YnaS_N{{HN} zC>LOz(TJN#r6pIz=p)fTUH&?wy`NzX1Vv;pNUD;joh!N zop~@GJIA_(-zY-SYnn$Idimv|#ZbVmv}4VvhHzr?Oo}yQOd#rvo=sFwEs)z&STQvT zfodXYE&CVyJ<2Am<>wu~tHXA`Pw4!)L5?ex^=xz<%8+%kidZa6xxz+lVu_nYnB+ez zqD#UG`N|zCNJ5A*RWE(_%&fAbJ~u%QtPJ;!YboEqCb&w?ob!kj`Ah^D+?(f+G$3`6 zVpy#oN!~i(D}BIZWob>bI}{!hHUww6T|ubJ#j_`}pTWbrE%{&T4`{>1>Lf8R2{-cD z`!dRcHHjM#^AF~H%(>+t3$@FKzlu;`l&f*tOqXPUv^Z!_JR#g0q1<1F!uA~dG!H9v zg|2x$oa?LpG|Y3fr}kfK_C|F*g7299qT&_ zr49FQ5C@e%epS?l9^Nuh3T)%{Abc2!kCf~fdbjw{KMskLhvd$ahUad&2p!O1v}ca| zafLj93*T~~sbu%yICyHMW5p)cGT43a0To4msAktI)55maqMCA@-w;jT2f8=6gY zaI%AH`tvv5;VrfLn}_NfD-0(oF`U}ad-Rv6RNBtBwICwcB6-)FbVR@`U&+eGipokF zBKEqXlDILN5maLSA2TfcCWgiiF^iRLsw33W>BD{DRaG5@jfTqkKh9qF9h*LOppY}* zYv!q#`7PG_2)I4*wj9-!>>EcMoi>fIHrqL^MfU%7g-&6Z#kw6@>W7b;g2~olHud|I zD$}sm|5(o^Y*$bec)hsKdbDM&p`?q@zZ))VywE#)CkR7~H{#xGr_fKfNO6^C?dbQ( z`CLTOcxx4bQ zf@Cp#EU%cflqiT|9V{ZBc6M_5@Zf zOud^X1tE%!07nGbVZj)(S!% z-T^)?`Kkn5q=h)*=en2B$itU@(j&h-?};(&X`J038K`8(D;yAGHf;mh#a2h0pbeWX z;pSnyYWUXi=~x5{k2@OaOdcGaV^LfPQA`{AE+VLs%+D{=}{qU-Uj04+z@AdQ7 zEg`zWC))zaf^l4$%-013&IDuO^l%H0Q`|2bX!MqJSWUQkyek8NVC+GY4uS5o&rNsn zv>rSMq2p)^FN(OIS~k7+Ft=YO5ubJUVLKZ5rqqKuE?BLR6`Eb_N3~JIg&9ITG$v0z zU9##PuStYi$b5PyhkIqElof04W^0+lGPFWJ4kVRvieyrYTRR#=EzSg{G_qcXn*G8Y zGzvq+N}vn)#{0|+^41Tj*T<5mikf%o#lLg29TDwt$JE*A4d$$OaK@TIx!k}@e&4!N z3HMdAaqGE1wsWeSL7#27+XfnbJlvj@D%yVkW>V7dJ|W=KJ<(}h2jvbMrM&Yss5in} z3yl5`1q1*6nfXq|nI?vQpNHTu>w5udZtQkPAa7i0;=`x%pQ*14$@~gh;r1wQcA4QHN-X9f~vtJnG3Dw^5R;%MjXr7(Puru zbd%}tbcg;a%6ARbs!!^rc&1Y?Y!{UNWPWvEY5l(wo5w5tUh8+T5D7v6%8hR)=l+aR z$T-UsJss6ETarpY@dI~1<0q|^8P2W|-)BTfe?!`U%)*PCCCpM3EWg$6R`g*R66^EB zF=g~w+6~5JJ6WxZ;f-%Rq{Sw!Eg_u8YXFwA?^^#Ww_FaOLD%t6zjGSPOu)05gR^;> zNkzeig`T3lO4f~*xyG;UY0NVp^h`-@KfurJc%D4SF3O|!B`(a@6;(hw*wHv-KUK+h4Myqo9iKu?PI!y12~x?NCbCs(w+bxNcZH%6 zEJP)-SNyMsZ?Ly-L?6loB_y{^AHdixIU6%>S(EijpoJB8>d`;IIl$9Bo|E$P2d=3Cxm9Om%Q+%}~ipza|$ehru8<*n%#K zFeYfqCMiO+%QSqTx_2b=m4gk_#As zgf?%2G1=n{s9_Q$U)ecrrCL4uEowbHkZJl|AOo%q_ZD^S?6u<^U%mPF8*r98EIT!j z1Ec!O4=Mpam|-s9y*CCNdSGIOhP+#zfd78m@Iu*T zS2IdvV0E=<=P;3{cS(`ol(Nye%l~)vSdHs7YTKTe(5i@(3CQDl#brdTOn8BVJD5ml z!P+`4h3F}+Hy>Ie0!{f70XO`uWs zl0oAD&Zl**NbExHLea{Ahw1N?{lL3OTrq;2&9*q#h!&~v>;N^?F3zY4DE-fYf2R_a z-f|(n2#0*RAU*KJ2t(sb#=?6Ob}iAzmf0I5S@rW*$katLjM*09xO!N&JsK-Ax;pc$ ze;{|}u%UnW1WotkNGD<^BUW_LdpbL@hlS88M*jSl!mBHn9A~|XM>p7ALmS%d;K%R>A(CE5+`VtpSrnd3wB6^lk~E z17QW1IQgW2tUQnj_UdU42r*%{3kp^rc1~aB%pI15T@$!z_OF^F*$W$!O|mrLbyCzj z?ec*{{?{u+N8YibdoRLP^W*Z&-IH!N5;nS&dU^ih5>`t zb?q9Qig{1&-x{a2vhh&LXhh2=cG7meV3L2C#rWS9ZtkV*v4XX8f zno%5HvXIm=YVYHaUwzk|vD^6Ytp zZ&`8x^scCHKd6x)i^nis&1dsxiv4zE^E0Su;l@)e z0QjUVo;{P7$liDt^txWj{r4q{>eMQLPn(?)vZ2a}Wub{1G;P-PkBRCYRj=!%d=9WY z#zU;cN4CyoJSisCgB#XQXv1-{`EqBbt%ZdM!_9Nk#5jrfJ=*raEsj6_IaP=64aW#^ zH)H-#I_m4*1QmSf%!*UjOSPsTwxwRJRR)?V{nPeX+*) zexa#~YfpAXW>yTKf=6qplp33LW^>E+DOdwxgVeN$=1Py1`PZ>SzEyd+T?x0HXvG$h zdYbuHZcTmpqw?;#j}Cm2V$#}c+$XE8Vh1WkJ~RSl z>i$|Bmf5(7h8h1)>fO?90e66q-;|ujhERow$8}n0;t?7;=b>!QdL{PE5)9e!q4;LNhItfS1N5)){5#s0iDS=6~<#^c_eY zzc%OFL~U&oUR`<WzteH;LNZ9<&6a)SOgQvlX<6+|UYw zco4-oZi)U-uwajSy!CQf{50qoOX!!#g!NWzeGb_Gu6{Q#91| zg_=G?@!RHHgdD}FAG87KbE;MyJn>{JJvp(>{-0r3-VKq_KS{lPfxx?3JSK`_;hrl5 zSMXE|uA4_x5Dt@k2G=wHE2gZnz1?XVhNcGl$E5B#;`CV);LZqU>e3DY(+=-yH}SaB zQ=h24aZyf!9o}kRs^?4ML4wqvYaw~J5^QUv;|%Ly51nwgsAF#H_$OhM4GPrgofTx? zB2mQIV6T5XNG-P%XAekA`X@3U@a9OuO!E7>f1eHXUb&HF>TPeQ)G#T;IqY3?p9^z0 z3uY4q(cndJ-dh%l3fI9A&4!?>FNsZ`QU!`g%rtDBkXdaO&`+yFu1`i{tgWK1Do=U(#&d=!^{C7Lg8 zsddaAD|ahQ?|xo+3XdHXQ=SVzwUYrR@(kiu;I32qeNQ!Rr>Irv0l}|UdLOm}R*16~ z1zz6sk&>Pej-&gcb;w0eto)d5%QW5F0P)p}TJ?@=h;E=XpYjJsL`ZYr`FH9cLw;_R z`x2O7x+$K`BQnpjYUPJDo$dR&{a1;OuXJ@t7j?zl@P<}NBsh(%hk$IbO}nCxmG@W; zn9z4NAo>>@uA_Fb(=*(HXvx|Ya%Tm^B>r}n2FCw6s*mdvqKeoT?0;~)u_*)&wgdTe zn$lRz$#0kIjG7~DxZyIc=19^yXg6JF_>H*g$JKlkb3`WAf=;;l^b-^MuJ@_P>tdLw z^}C-Yev2tI;r|{&_nZBWrb2Bjx)#344i9k0LNhL*&(Aci({o$xe4U&+Vre=}fIfl3H2^qT=0E;gQ#pGLwp3j0+>FHH~RbDBZ4c?LhGZlCYP=fFa@? zewR>}b?&Ce@4$YOWu`R8-ULDwm<*6E8Dt{Ku5>xx4=Q+jS=c{_BbG(Kn|JJs7!0v~ z`%U5tlE^H+O(~r0{lKXX8+QS?x&EakMPp2(RI9S_Nd)EMK6}FDkyDHzDN=9Hv=z)L zuUa^+Lmt+mkgLyMBB+KxpI7hTSi6ictvkeY3q@2UpZk&7l$pti=PauFC9TdLEg@faUL)@q zr90kiBe(bF1Lbi>+)jhz|CltWwZL4=~viee&LnIxW zywcZ|*>RdWFA;r|JF^lpQ&o8P*7s4l6fhdRnB3MbR&?z!6Vl7Giao==LoThID~T4Z zq)MH{^$6Y=^E3TSN5rK?*3OjMQzD!c@a@tYk$OH=!BJ;cTRafsF)bU|Tl0PSS~l+t zKkX2!FV&Y_b#viRj+R7?$wc>Sy<>5I>eP^d5%6QQXGmV3V&W?3!Lp(HOa8|ia9 zUv*rsH#L^J9TKR(HRJbC^_Mwk0a1T1VK!Ci^m1^hi0oRgNyyXDE-TQyYQYPilp<=I z_b2&>J{ksa#Gpe;KbkS=(S#9zJ@XKD;s>Tts7*Sn8ryRTjAR#nT){}*DiK|kQKl74 zP@=+=>TXAJ@Mf!brl71XhG5ByWW&e!=>==@-SEAT{M~&%*6a6wjG~LOv3?1*9SYM| zLL*l34Thm%WJiT}DYz=WI`Wr;uN@DN`G}vO#sQZeRB6}%T(s;FLU!~@_p)p2l;J?i z#-sg4;E0!~%6vRh+^8Mxl@KOsYq$P_olDPl{rQq)Q_=#He^!zx6}16};;e08K%eQS zl!ph+WkNc&z9vp{rM7b^339pw*`$uv@ZMM|yD0w|2zxnWCmww_pHZlLa`w=JNJijn%3%AsEMH*zyom@OL=pJHG{Y z`DO0`9F=~1_FBipJ~3tP>BBnJ@oTB|zP|pcsDv8V(;e0d!uo#Xk``CHmTRJda>@n{ z1`*>u#6daxcu-h)p2?TweKv`ZLfKEi8`)}1OdWNA4Ae*z3Ri8{@?GmNU#}Icl%~A!Q5I>~D;QYp z8j5axHk))tzU-bcJaSHl>vY>o{L@%syS=D!*@{}VV>)mhyepD)BPI%%hIvb3mR(NW ztpXsOPuNGYc(T8mx2;@u8D;j-kNeUb5}tYx1L}SAoM3ftb^(o7-T(9g_*J3_q5AnL zgn{7e*Emhw7Y1&$J4rpSiI?(1-UU);Qjgcf|2jn@vkrt;9Ie>* zreY$K`;Q%Z+Z$>_d@=ByQ%UF-@|YGY&x`6M z|BdTMllc*}s}rTf-d)GbTeluMa+%I5$y?NfVS}Rne02hy8swOI#AxsxACdT?(e>#3 zfamAz7!wG;VF?Omadh?;lC~*bq?a>66;#_9(3)y3@|*cEK$}_VznSl7R~(wE#Xa)e zJazXZ`8L{4m;^1Sz~b-vq4ys~f_gK_Al45Ke zlNYZJlmun&!h(@m9`KMl%vY>6L{eD4__$<7R>Ut$RPB<9`w&XT3N9U3)pB15# zTdyB}o*@kqDRP!l{SwSR)Vm-8dB2EusK_Q@8$_nOvL)*$1+5dw=}1T z?O0Vuz?Vy^<(l1resCQ;kUzsK)NXcOZfBCINpr*m&a6X?o{=!06kkvad zM|*!AUOszzzj+`&cyZ}>00>Y;voBF|aIy9wlOR#vHH~s=?DAf6Yor2V+_lRgdB5gs zcVMZc?4&GR=Y<9ndZ{s!ln1z{Kt*A7broPCiaUuq`p%d z99?|TsQeoQ!LSUzh2|905_|KDu^k(ry8F%~e(Da?-{x_Ka-?OSFG6XG2N0mM+tvzu zPoPJ|5#O`V3P+AU{<%ouH8CE;Hge6?E2;{5#aOeg(ubYUFy-z;2(~g1wuXTQ(PRz) z0s~juxyjYHx6&XBx&MJB3r^xA(c8}0T2xLevp$d`wi9$lkTVlr)((P6(;SD1+#O1^mJ9X6}h^HvkA)(zI06t%yjI# z@{AV8BG7+%`LRMn?C|D z+&5OTD4Si1D*lM;mDAK8WoqF9s^_&HZu0-wxT$!0U)V^nJI|8d{}*E%yMEW3)cwWm z^(25yyIzt?%dGj3_~q-SoWsj!R>cNml10H40!il3xUg-<9A|7V-x>sfOe%w);+A~y zstM>q183SX#RWq-G)p)wTx=q~IRgj@vhSCpYcC>31wdC`)k7_xX(NDB#bhc$P=o95 zE@=+Hm?m;^iIiNtZhJP~qMZ6x?orV#UTOxD0K?zW@W=e@+3y&{kPWo!cIP1-s%i9_ zL4$kxkfN7YN*$?XqP$`Kq8!RIm`3%HtHV7mH##9gr4fwGDt8B4dV-=w+I?x({Xl74 z*^kHueCEfua-LY5EwXW8C!hrd7AN_=gEr%evB2C--)VbaJW5QIc?o#tPPRL0!Om_0 zO$5`N{Mk$Yw9`&!;e{=3w^lw`$S@#>o!zH4TNAE{h8uRfgGJf?+Y4-WWnx%SO~tBXD%a#-a_qD z;nnj5uYu~5+D;Cjx`6lrpwCR`VSccDrEh)veURP*lfW_dx?DBfGs)x|Cw!;={Gwb* z)7DTaeZwMTp`9D*^4wKm(f3=6DYPq~ZTlB#CkCH|))Cjd4}$oKx2eY=>(r841_ ztVWt0v}6lrn&?!>;vHc8xVBh2-J#*t)TY{#z!L5bzq2RNXwA_s8_>L6!NY@L?|{WN zWw8UdJxiu{ekwRNfQl4P&hdvB=za5yEvDyN^B;=%W8XQYVExQ-R?$yDEa|z$nkY(; zuV5yCWkftP)~+pq(c8q&w*HbuXK^5ToD>1*p@qBv2qtmBSD9au=>-v40H^Y|2CQfg11V5VvccD|0QO4tZ%~famkd!8K~~U(Q*+ zYtF6ENKr@uXTPb+b-YVU>dzi>)sw{wqipo#y5>WwpB5E*hl-)Hgbp8N6z2TY60qk4 zxG6HpoNZiv-`NUWWFV{ddwq)ncz(ooE@*3AWmq|(bNJiDF|n~Cm3_sS%b4ifBPM`= z0YQ7Z2j$=t6d9m&m|H)Qnw8ZP51fQz!K>)$kc7MRNm_q$J-z=H8e65d*H^!!W}8_~ zy^wmMGc3D5yzn;Y;CYHF>QJYC!9;FqXs* zY&psu<}sh{w5M{Uz_rwjS5{{inf|^_;34@3<;8 zkAuJuYkXRr=sH*JjZaM(85xIjH?HP%w|BZ-lU-q_GTkz3GhMa1tKv>2rvdpVr~c8+ z*{+qLxvN^%S`fa1H*)Nn%m9AgdIEr>@iaY}rHng>uRi+qO6&}Qg4A5>8gU5xoqV~F z?6OexV>zn7Y^2G&%}=M`VwE-3;s$&sswp&SxmZ+y0nqeS%Cmmi;1VeNz`kZR{m-c< zIeBV|KG#ftN;f&VNu<0;6DYr)d|4TNShWn>)=l(}C^x^66|eV9zGk7qX=XEefA(5<(vaIvk(v)2--<=8?6B zCMkB@ZbU*jT5sVg58iII>=u-bNL?i~$s=!T3uf zqYU#j*))YrGK3>IYBGFfUcYUC`97>N{{_#gY#&ySCM|`b?z@dTB=>l|W-8#$o+eb# zU--OLo?_8mTPasDj6q*{IDj%HA;3KAa+j;OvK*3HOaQoBkrNM3# z6$0hTU-`Oz-;jC;Qx#6c6fVoa`J9Y@E6i zlbo-48GyMSxVMT8NLWI)wI@T!+S^|qFLmKJ{Lpr6Bkz%>ag9!%u!!m@(Eb}tW?%eE z`rUuH(}mVHI7(6o=ftCz}h5-0W5#FuZZLQaDxGnohdDLul<9@TVHnS zFIVY|rsrN!P-ACFnPDzW0~Avy80Yae;of>(;_|!S1ekwz{4;377dufcj@RkdZ!=cq zB-0$lELr_|#U}B``f0pC@%C=^(k2u`IWlzdAm>$Z%V@}>_)89gRZR)0Y)9&An`$@y z5%Jc%+Upc}@>`$>_w-(O)}SDx4D0*Eo4WQ^nQEL>@r)N$CCsVAoIl=lAtOSLc|d7O*eO#1AR|lQNLu0FWhNi8xlKO1i%g^_cO*G7CFl9g5X`F{$^Lx{b*>!$ z1Vmr@`aC>EmbzHouctZmkFr1VQE|lb?OvNj6~)fp;xZ-vrXA*uXmZRJaAkRWkiK^! zljR#~@pPrCJtnz*;Ehw`yMW8pHA;){s@2?ZeMsS zg7FY)uIoe%Bu;#*C1hXEN7Mb)enpsMT;A}FzU$22KAjPRh(iHH!K?5&QSvH>(=CrX zBk5`G*DA;UqH%wUsAMw2JI&cD>$ZC2$5B;kT;u(gOLJD|Rs#)=9TR89QA8H7TD}wL zaR^Yk+$NosDJ((UTU47HWw{kgy;3|U8Q~bGlmS5Xgw(kcI;(Zct++gKz)QUDcT;t5 z*#wDfxdHL?-7EHyx2CFkg}X&m&}$WHOuflbRpox3BdZ&IrPOWab0$V2={w0KMrZs5 z-o+y_v|c5vi+@fdSobnSW8B2&wFiM@Hq3(9OuSzxSY&!*RA2s(hy5!Fd5Pf4Jd0`t zv3hJaUFW(!h6ht4Fb!Ct8p_xlt__lQe~qj{uUi^%5GeN%B<&wRZ2L-mZ;E!;}T zx_)h|63`L*KC(HH@RuR@Xh4(EEJB(Kg8+JAeR|00 ztq}LyBVai)KkGkXH_zfgYO9dUM2jePie~0LRZhrO4w~m&_d$WsnJmtLbcl4%+Nv^@ zbSBn-$R(E6V7K(v#Y0mV>n>@?it8q?$sCnirK?DpX&2U&0ixM9bc2ydLwbINV#c#5 zc?&-Km%iujsJTvg5lk9C-rmO4O7BN~-~^d@an*Kgk4XYpV(0s+psSf$K{vU3I7%ya zD?6)*C&PBNgdRFp^N|qgA-bASuWJ>Jo{zXe5R$O<{TWM}GWhc#68(*A`sgcOAM!PXN^HudeW|0S z*9WW5*E9uD>1DtzKUn;$4bO}_LbIQoD+eBw*qq5}{n z+oQIOye?EIuz| z(>V zkbl>x>eY}oVcfnYEBqk?!#6?g+JV&g5u3pWyvyIF)QpG9y^TbVIo>&W@=9gX0&2oHC9zm(nWq}%MC_H&}pOD?v zgRQ2TTXIx7QN8*qr8eMVVvg^G%kvPXa2Sxh+Qb92-WL~x{IP#dvjvL{;`5Yp)-co}@V?$9WWr|2Fw+hS)^ErJiT4 z&vkiKp!8JDs)SMocy191!#(l|?uCp{>B!zSv! z5X=!cPlbOd))BnNzh#=i&Us`ZQCz5Yo)%f+*tw^sN4wA@-EX1C(+rpP;`R^_D}P4{ z37D?x!ednUX%Ik-o8IE7=ei%dN|D}I7U-#`us4W0HAVAOKa#Fi@GvxV6N$TU{C+&V z)szT9yi!Vfp{)9PoB2Q|r$hv$TRT;}Nn@O$yktAa0>_-lL|NErhr^`LBQ!^eY=J(z zO-_PzW-+^e%#&uP)N9i#)aLmuV-6M920%umR>QpQyu%I$NUdP#7c;^TwdUv%K!o9_a9t$-;$GN#8D{Wm1b>q zwyy2$@U>EW-g~eIadAIEu%F@Us|cI|#y;oHToUGgd+Zc89;TlBJOz~nu78?B%4emg3F}d(m5LG<&`4AEPqFgem43&qxy2t{v{ruT zKhcX3Cih1CBjQcU50h$JV0O7vnP=Fp9i)C=%BV9QrvEpyDS9|05J~)*r{IZPPVH_B z>*T6$J9MvJe>9-#oe@%S!0}0>+!yqI>?jR z>eA)2HSiKih{Qj^4z%9#+VOG#DOW9cUHeIWTmSk;=>4o%*L0%$2E`6PZlgUVfF3Z~ zIRR+cjN|8dhw$^7b!D)h?ZLf&SrK3BU!i<&QBN0Oe~ApTWou5Zg7+38#-~aKTJOyz zgOzy;LernxF1E{_ekvDET9Q4#fDyB~VDVIhq!M@*t@v3RpyR|ts5|!h|1-+blcI?_ zLt(>*9D^Tu^G1OhNai&^;V$ps!X2CE^**(^zTDqtoK6okKe_-%{V~#ZVoO~G`tPGq zjVY#q^2Vbl0k;n3|6t9tG@eg5W^2O((y_h`1P*ss>ao7s2>yKC+|!qa@p;Egpb}m) zT~D#f;fLEMoJHH|H*KusVflw|%rPb74(DamOkrq3Kf$D>kC5I@`kCXtaVlzKGKJ(; z-9pYY2HY*822L8Gf?kVER^`x3NvmspMZFh3q#@~R;U|tHNSihx!Qj0VT4@(O;t-vc z!J*A|7_Cjk*on_=d#~iY;+yUB%!i9LERrlXa1fwQa?%!Y_Sjo$+zFa8 z+bX}?L|4{S_`H@5`M8$m_(iSUG40GgR-~_i5Z%{rrbZp+OS7|}XB)$|{nfiP1?Y`4 zS_g&ZoZ>fvPQeGE(449xhYm74h3bi;rhXlH*aR&yuTdsdZm^k$+jof7-rS}e;E%3O z$$z{N<>*bB1z*Gi=787B+F|Z?X!ZxqnuM)9rVT{?zMG7X5MiZiwZGUj#N5yH!Wrz) z1HvdL=e>yWh6}%HAA@a|ByF}zk!O<&Mgld7jh-!)wIOegrL`3!9s5Fs#qLeJ4aZAV z1IZnT7D-*H(+P;u?2?#GrkKx`FU%hAJREGU*V$^eO7)GQ2aEyR)e=iShTmH)09)n- zZ131Xo!uz#fM9tnwCf${wUfbQw60uZR~j*BVax`m>{r@;4Qi0!Z-8rP)T->#-yQA+m_1MNb7OKdV$`ZMX0)Z)qD(M#&-`nd{o2a-~hj~rNrML=Ie@=yTc#O>D6 zdp`vcU-2yY;t|}&UQX>o1$YX)E$O-Wt(^~CMN>CBy6aywy3OPbaz$}HzkY*BB-_MK zOUDd4`Nae~Rs@=q09DtX5v4<5219$nour%2EtYzWd7%%rpT|uHcAc#Y08@Lk#hv}5 zFD>~!cgBmQ8@A@JqcySBa#jAvH~q_7F)`xt==kc>`jZ#r((m4H6tvUVpJ|QyzX2)q zl;`6|T$4{d6Y>UsQ`C1noVm)Smg#lF-p_djqs}rX7v`afEK@owG?NA1(RpxGc<03P zX(2BN0<=H3jjz5*MIkA8%MaYb% zz>r9jg`wU|2y3QIh0)VzE1p=RY&aM989c+l0KV7DPT2lj;L(SlyB_z3LRFAl1Wt9w z>=0hHM+V`swrB>Lju!WC_+7L3q$29jmNqzl0WeZQn?;1enkHuJt$_S@cRVS@)~z`2 z@QE{vers3#))9eC;G#f>f&*>Q6?~eoa<}nCUdX2Bqa?dr7OC z;n1p%$1MCnHGIOD693SH9#@tQ%)yc(rGH)t(ln9vG;`O!PA)e2yreoHqWs1hcRf&K&MR3JQyEcgXMGG1J?Q&I6{8!p)g1oP(u-5_EAD=>bRgNw+v;>R*K|!Xg7FC5sbv&6(DW z-Tm*`u*v+{)xz;5%!PIR6$JAT;|ndhfN7lz+gLH+LPz{R5^Ij)Z9((I^|?5OxD(p4 zw4t4>MAq0DSu1mye8L&qi?Oi48dp(=uj{mr`0}LXkl>Iz_kZG> z!~`_o#sVC7nyB%8xbok10zr!E{f77>XDa>r6dW~!QklrtHJXKc>y-L?F7M8BfQB(< zBt>{3;#%D@*H>zdf!2U#0&c-8%4I@9;h_#|`p~HPqCNby$mP6)Dai2SCNu?S(Q!*a zlUeRYO1p2}I#b^j>m!dO-ANQ)IaR;3-4gxC#w$3LjEfk`T#b*oEgm~AO|6?uT&jIZJmNVHQ+4U( zvW|+bMN$YV^o{_+H^qVg^m#qq^!LtV`mjfiiW1%VxKTIQ8o)BQ5=<`BHp-Dy#OdJH zs8ps0qS&hNP&LhXW^s_Ao=o!c)Ahe^CVk)Pzb^S>4G?xC=H@Bd>rfG=O4oZHELp@Z zA`?Q|-#a!Bq)CSN&wVy=W|&=ytIvQ)cQbd=*>m3sf2@h5l6F*N!dvO@7k)IhY~i6D zb9pIt-1tggLbJ>@QE~B0X@=_j{lGh_`|*bgdA7B}xp*^Y6r#&$OOc<(M5nLcoIHpP zPbem|L1w+PkA-J4UUvB}Vc}eMF>4oq!)!TiCUU(Z`r`DuWketOIX7xGJJm5P;0BX9BS z7`5e=H?G#7Hh7GiB7x#pMvdIm;1(b}ap?VcL?uHkLxCqh2wC3u5IhV}R=K#eP_3Q3 z;+ugz@NmuOHCD4-xtaAS9RuM%d~%s;KAaZt=dTPs4l>0w15;qWM;Gotz84xO4Aw^DlkShm9O8qZ9GmsGD?a>U01^8>fIhTLRn2K;@2CW<#8;S5HmakLgxF&PK~xE6{ZQp4dJbyyHQ^MHIp~#U&E@} zv(y4F@0)sY5t^lrMLAQde#sn`ZK>1@NckqLclTD26oJy?zf%3zJlL>o>b_zN%2rw# z-qV)($F-E&@e-3aP1sHh8`2}qcmBGKqn+^57->{+7rQedB=FEeGtGc$VXrmU^??}G zAIq94c~ArBwIT70fk*_ItLla(w)rFadHPEcs8=TXWLF0QSZ=+68{aq*1geZoh zYd7=u&XA^8@$0~t>AJ4FnVGB6*j6$vS6~aT&=wDaY zE3K=CeU!(ZPM2+XYRHSFdK7NvtV7&?I7+jNVn&o&+F6ujn8ySmec#p+7&XrTM$&EN z;vPKO7m=!q3FaZZ?mte`-ZqRsT$b&+A0NH3L*OnZMtZQ78`_`r2sG(GqJD{AkU#}1 zi|H!2ZPxu0$F3$mlAMp)M!ezfCDe1+cIT}20IZ4xa{bq0r!W6kdEfoj)Yi4TlTbuD zNbglqib$6x2LX{LASfV3I?|77J+ClVoa?vB3i zH|~FMzcKC@`GG<9UTe*==A3J;IiE04SYq=#p1%Li^9@zCp@4Y?w(i-m<(V|+!gvh~ zo8M8UNd((Cm={t;QVqBqYT+4#Ay}7*dH24fD-vL}<3F5_>%@Ml?_Nqv+TxviVp)VV z1M~YZ#nPy?tEG9Bv!agD3xUtx2p-CoYcsLebC2Z)J1${|4$HSR#Q_>woHF}zYq8Pbv|4c*@>6C zs(hYHmU z`P$`cMb}KC*wUC+-6tw%KO<<8jDy@kUC}9MD=@m*zrO{QN{fE z$LfCce&T*qenE@A9=So7LY5v?cY)WtMswVbEt!(w;rDcd0_QZ}<@Q87EY$mS5(rYDKz()%spXX<%K!7dKo16KXsCZyhrpk3_Oh zv*>Sq?fjNy>ux5X{pLCS#Y3&CY`8U@?nFF9E4 z9DZnEj0K~WK6aph;uN_QGZ}`DVXyu0tLgY}PFb6DQMOM2oWhVPF3(GwBAk{p<+W0f zU?WebSf{Le0}Y`~bjHz|`XhKl?1=_SS%)rI^k+1F4VxF?ls=J)ra0w-Gt7s0XN!7# zr$Z>P^c4r!!`+dAtiwwJdBWD;k(A(@gI^RO#-9PDS{Loaj#{Dom#3tjZ2_#AO1h{7 z2NgzTp%4A|dp zQmKBZYJ+&2OM|EGbgKxfIbqv}EjAY>527x>#r=c{cNTrKndjNQ`6w@`vO1|$iF~=1 zDykp%ke0v{M(0OU?Ta$2)jy5G16XBu#z9-aP;6%6Yw*R3Q`~^TkI3QZj|+n*k70f$ zE+-%<=X3k#H4^t71D>tC0fAqrx&U~$7iHD!)1``^q+!EHMFP05zq~2iGbc}#nu;6b zXd+Z6_T(}(<;-! z6$omMcPcAXI^E8Ktr`0k215^I92*Xdy9ircuV`Ri5#;N`{?DC4zMd1Ct1(K!c91i=XU~?q1LvwIJ zA$t!?<(NE=jwxU*!fqQ?XZP-5Y~uB<^a<9qjmQXWt)`Ot{c1q3(c=itVO$g(_iN+H z*d!$eDO!6{+zriI5h&Z7A5dSCEjX+hrowOsp)56k3Z*agljh#?=!o@Y; zV7)X5VSn-k=liv>@l2Hz7rp_h<5Em^0x(j(DXO2_PKOA%DpwkjpIW6k=)@loaH;F+ zA+7A3!c9+jEx%xXMnp7DEPaP0kGJTYXR=`}lEa;kDA;G&Fvn!nQOcS;WsNff0TDbf zS!SM@?sOGXjX=M?9lEF+`pA78s@CR3`QXMu^_%&ID(cy+w~s-9hz3VmKZcz(Y0{8$ zoBv@Fy?4`;gjI)lDe4w?(myvtmb9_b-JAz(1Y!IziWXEW`DZ)l5z#qS+qloczQ&^+ z1?Ey}XWO zR_Z}F-crrT@!cs|@a=*|_m)eh@6^-yN1eWMkBlgro-^bz?*u|inWWGGF_C4q90HE> zGW4J=mcQu=y=RWAcvt*`gpDs(9qh1$e7p3f^)iTM^T}5ngamP1qkb2#8f|r+*W}wK zIP);Q4dUr{$wD2G^4>+VmT!O;(3UvEWBM>f~8z+&#{JXKwEj?m+M&TC>x1^#$1%V4|xy@oeoi0 zglddE3o*yu>HrP;#n2R6^#M2Xi&zIU?wU7(;+?R@i|NARt6V5BjgcbJ#0@hLTmZmT~Cq z$#JMdNa1JFLwwQr%!hNT%=SyRFtwDN(cUbu{J)qv`yR(i0R$&z{iYrIfI%(Ce0K0X zl9JcfD&Oj{RY_4eB7_+ht6sB1ODlu`}DCVJ=;@|vlLFgLvegc z=B_aVwp?wnOchX0$ocoy2~v1Tqn+_R-@f=ylg@!|knS(HK$gCdk7n?vs=McsHax-K z$#EMUe7o%179`(<&I^2`ST<`+@P7JXJte`(vE3yO7g0rNEKb#MZ67@LnfXXzXdn0J zaVsIAr7%7GFP%_$D!lLbDMl$?r3ZXlRImep2N@sSnqLsXTzq#?m*0mPtg7iC3&(sG zZV;z{%(?8PPLNQeCK6;Y!oQ_495Zx5Kkl7^A7!1*1m#QdQLqGOh?8p{1WuC35QgDj zVv;ee@yIh8d`E)Yj!)OBp8SdT`Br9S=H=YpPZ#|7{22VW>q@5Q$lzvmVuaex-qpK_ zE_?(R2V{Cr+0Fx#2r6kwv>@e6U=L>4foM}z-@L2_G=~~T7 zVe}wwZnuZPQykG&?M3>icZVnUMn4Ux(Uvw(k%x> z(eqGu;2=@Jal-qLGyHG~!j5Qf2eVSMeeXL-vjK5LHnaWgc*dI$^P8zh#`uzSEEy=x z1tqp?%PvFJvdgx89gsS9 zLDJV~G}?H2T-q}uO2zNoz>fKD)2kj~wjUChI1Ec6x*qisdV2ntU6~S2B`Y|tfg$}q z8G=Yx35(iBS{PB}Glsl&u0eLnlI@Qkt5Q8bOSul{HVX#UJP#A7lLA*}s}74>@YG74aMz;$%<@F1D(Mhk3!4E2)5=veT( znM3E3c5q3%kJ8W0F@TI0aTFtnI09$`#M2(BWKida?La+bL^xeur;T?LtIx@b{quNUD-`c*MvEZT9_N2HNZ$0*O478zL-s<4;w z2IJfy%A33wFNJ6Kw?d6`r+N-i8G%F)@P#(2_TMzeE`2Kq!E5d%5e579@PRZn`)-sw zIJP_h26Nq&w7=$V+l^>dFG1WavNQoD)=bb3JAG=ZjHz{lr+j)WQU0a($9P-&%clrd zgfG)_8A!AI<{}#)aJvCeB6ju+_9O;e{#2F=EV0;ge-muK36IaQbgk%o{JiBTMlaho zUPzAem|_2%A0(=s{H`l#*fM7*2!Rfog%;r{iXPEA6qh-`25ZF&b}a+Vxhq>$eqtcl znZC=aYcARU=^K6H!d&CyJ$IZin?H0cM>sEx;CInchaJ<*(Z-?*O8K%D)ll@hV26G2 z0A3Em&Bcm&*}!<8U(|YqeEL2cu5n_`@{t-5J1-z#7Tfpzi|et(tdKS z!7{@^yt|o%G!&0b(8bHq_7ts1_YtM1Mg>m><|+5igizNt2D4cR!Mca>X5xcU7&gHTIR+&GIB0%B*GIAq z?!F3)-rDDEbXXeJARhjeK3014tx__S8skD;rX#tIASR@JtQ6-wS?&O3G^`54^Cs=o z7Z*96Ik(|n@5)K-jJVq{PD3O3;q0={b{}>I-nSURg9r*>9oZ|Ya=3}{=-Hr~oq^4Q zO~VNyB)y+QT-73~uUDwnwCTw{`}Tc&%%3g$9BeP0s}`bah=uPp7kr2q0)C}w?5vJ@ zCI~8{1uOpqKytVL_B`Fc$&ho4lPXLhJ0MGYk1>L5~z z(D>lC(qYf};!?ymtB8UL)AC?4=P?gaNR%;Ma*!tT zcprr#jNgEwRSz(E)J?pxrgx6tO$nArMbN;;D8X<=&Fm3medFdiVkM&YR;CV);eRCn*nrn!N9>)A7`K?}7!W0>X4OIb zB&AGEhi*^7)XEiD-hEjLs(!JMBge`|Ye+=WxmXTpv`G?O8*81qtkRYUMjhjgk;0f< z*4zx9nx&iL?CnWyI-DlxW2iH5WIJHw#OlIv!)e(WuZ}Upx5v&p3H636Reg2{xp3D8 zKjswqJok|=-ST^WsfL$SR zyHCyWGzvv$mNoj2o>5?c(`a;RCD%3>GR)flVL+j116p>G)*$MP9#bur{SfT)ue!Ez z!%*OEgD*@Kwk@hVGwQAkg-g|OmL747rNB;~!~dQyxGkO7LKMR%z^i!`YK5(1`Y8LP zKS=iY*x<34w$2R}ZoX0`b31b##dq=TQFzdi)_Y@RuVNJw~vSyP^Tc#iv zj>6ffd%;@6jXVi0Q}r9MWmmeGcZ2^TlNBt!w%J5}dgjLPjGYU|&69UiNg!`UJtWE4 z9^hYJV!`sk|2O|Aseg;P;Ac->XO`meu={<87Y3}%w!5O2G1fEC0KK2GtN5%UsHtk$ z?3NkN6woh;W?Gx{!vBMLMJ7p|Z@g*auQJb+&z_5ycC1xe@~OP;1q%%~R>!nqrT-=q z^}pp~hFgOA0@4&&kSj5sF)6UA?E5vVbEX)6jAx7tR0-;t?tf?oYtb#s|pKt{V;B3FjwV zy*lE0!0Z3;E{WmI$-6u#|Cn~W&M>mzA3x>1^{SRC;r8(r-Px{*u*wjriS=!6hxMcb zYu`ncf1alpjRNDIF7J}Xj}8t~0%LxYw#(`If=65Cvcz!m=UiuX17M>O1=pd( z_6hnhCKyla(H4##jA6S ztF%*EhM<8iptSKTHY`K_m&WbQSbx^)f^}tSeUjT;VbST#4d4F|u7os0s}u<5)B0T8 zp7(0oEq&+mX5?r6Y>)X#;hYkNu7wuSX33z-4Q!{G=YxdHB3B^hGt27;%E$$`Hhu0# za^=zag|^rcQNNJ%;O&16l=#DF5Q$|Th}D zI4n=I6o5Tz6=l$8lKE-;=;-h&VMPNJ&=&+w(tUW-(EHb=#|wKtpyje9uN4v@d2k}qX-M5h9u-ojI}?z; zTkCe~?343J-79S2#-H)@OSKNYk%45%Vr+OmTSf9HmZ zQuVVhII!{sQBv*~`II`J%+jq2`0T5%YhGKdB&*SP^al*bmG$+QXpam<@=Pv7YsU)% zYqtv5iw4mzWy&v ze{UQmR*X`4kWjdKU8~XIZ$bBp`kO0Ne)TM67SY1ZxQ4HL*CkWs>rTU?>rx_GEg1?z zJJqU718*&Z+*B1`?+`ChZ{gc#oNG}o*cYDvjL~Er`zpf}XRhG%9}fTe@VROR%YS>+ z#ul)s`pscq4THe`zu%XumTLc=bhHD+AF7?;E{|Rl{Io^bWhRo{RY7Ot^8l z?;P#NHQws__%8ZniqrJsXzGF6)6bTt9lrVA??{6mzs@5;IR;zVaQ~syGkw=pN~E`# zqbNwqy!_U0%d-`kWxYNe4fPdlkNmS)T!;#DuHLcxxHg(PTEd5(^?F1t^bGxZZ*1_g?WNjeI@S@62Yq z2kRHyi%!o82?=>5g3?Z^i-2bwS2fEz09B^h!3WrD+fx(+Y$a=NENLvte)A!i74sEy zR&jhPHK*$k`NW&3(Kl*CDgo~vZ4wY6CXOKHVE^}HE~Rzvs|?h8Le{LfEbS<}D^Ic9 zj?S}>suvWi0Dw`R{2Kvxi1!_Hk*=T?h}!-zH>B&5OI&L|9*+A`-}61&L><(cFnWTNP&(wec}h) z#~Q5iUwDy97q)#Lbq{$i`W@P$+CvlN!R_U5gKE#}6OjTt?8-K#6kC1%qiCSi$6Rln zr8}S4sATI*u#u;mM8b}llpA)A?jgnoZ2u4@B_L;Ab$6Gc`G$odUtu+l^(RL>AL@xmf1?ylwCnctd%j5pTmO8r>l)8>e+i|^TvjQ zv!lY#L1(w(ZS36=D^d7%{p;|lgtz_)rSEz8E;CI9%6(3NR zr{P^s}o2npP>X4moXOwy} zmnYr7nd(cnfkN_Bm>J1Ds6+RevW>3-*gtQHowyl7lB{ap3E~0b#(IPs&x1|WR}vr; zXqr1@LmR$k6Kf;Ym9{y4pDZ=Cxi3G%F>#&$EK%WyFswaSMjP(j1?WDL1D-k9pK%|u z+`l#L9-X;zt@)LET3Alb5sBCF?m%@|H!keTJsHSVkb^y=lM$P2Xr zy_GJn%K(ht&Fa{GJoPdYJm&6_u}F$Pz64w?vJ%pcUIX<3G#I=_obrKi*hNT(PzzlxWJzh_R2DN8;|nvm?BQGfVp%1S z6#ZDy?}8sQL9nhceVYgI!FD0Qc&EJ?a%9nS8ic<#hh5iWwk=En+9|!db3*Kn&|(Az zyd%CJ^T;vU7wCf~Q#5&uyK0y+dS-N}gGEJev2#g_D>}7Z4swnHV|SY-+CLq6=|?b( zG8L>>^VrGEMSyo*>GGnk=Ie)te2#*}i5|E{QkgXI70rWj;aa1NO|Y1Bg)nQ53G(87 zFJCY6lh>y*A`7Pa{R8cSRFtueAV@HLo-9^X3VC)MYvC4Zz% z5A1joWYVHv7#^aq`Os+ag1-hiH^|MhN`JN(*gjD!?Ykn}pE$Wt{~Fb6h_6W6R;N_E z(XiBrQXha$N)%*b+|qGKN=#z<7;cPUT?_HcKMIF)9MG8qua;%^9n-gp**!E~6|0o$ z zQoI)T*GX$f8wDnGYkPX3(GKnS39lE^hwg*$Ggj3WTj{F_&<*so$xlR?B1xD3D^YIW zecZUv$&&tLkbLwkO13{zbsWn&cg>$zyJLS|t7 ziWHehH?i8hQ5O}nI0giEm+rQe=(nRrGwZ2ha|(T?@u#`XqXsBM0+FPI2^eZY%ZN1zj=QL1U)olC7G z(z9YUnIhs(AJ^{?zu7LqOsdwgi|h9WK14lJ79bzc=@WiEIWysE4mC&hM)B>mmTTJu zlrbt>T4X)Ff?adgFI^}viGD5A5qPJxsvpIV^cuPhJX!IHi1>7*Bz*-z8am_}Y9(4YWHwXL^_u%|7F`Cf&PrWaycYtr_ zIO=I@Q(>s!%OI%F>x#?{+|u+q(= zw4i8INu@RYF<7g;5AjowT_#M$Xj%@cJ%L-kf2aD`^avg6{xzR*gN7ION>A$kbhBCC z=NHihrp|fVbjBn5uLxJdx=Z7UTA*Oe5(e38(bs&4U!0M!>k9{Y454prvsBfmUh3r9 zk7j)%iBCCuK#Ua_V!;A(x4+Kb7#-}4EFsv^ZC$_)=Xg5&ZBdWH4RSezs zWha*LWxqADGXWEp-(U}hW#R0NC-38OSU+69G|63f6r@U4rDBGjtz6I^*vo7a4qb;^ zGJF6Z><{(+s^eD_b}zM~mc?SJjNnn+M(QBI$2rl1^QJG7;8$4%xlbt_M#( z56OVMD2;cj1KwXcI1$5CcgoE&#q2SzY-v;`{b7n0w@s@hi`GNA=K&S@6T-I5QW({X zt7DL8Zm)opFur#3f=jNJERFV?+%%O*nk{)lHwax$Lvz1+e#`poUR1S6LY zA;K%ZuGyk9*K##+HvePps4D9d(n64st zO}(u@OdVwf!y9WYA*mWVSUc-$nw`7n?eJgudIExwn>LNSq#~Tt)kN@aAh%@ZLD${c z%G|xb6gBeyhuQTGLFp^kBE*^Ht3_JA=L23-PWdzAFE}|@y@cOe=}}bPgB6JA9`+t4 zt?|xrO&BDM&SrMXfpzYq&~XVMU$8|(fFhyv=5ej~+e%F~r`@8RC>EmzUAK;DGU_;=AMulC<$8!Ax4djnV@iN~L^@<<6|MfzJ zIESF=$hha!9|u=amOeK<&z~=R zTqh_&@BC6eSy(M^)9_p5bjnP;1X5K0@a#7xIau#ONsd0^P)~Arz`98CCjI~A<57IV a$g1)%UP_6j@MJNLey`?>Dxx}F`Wud8{S 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%0AmUk!(mkC;iy*9mYy$Ckujf$H>O>?{qu@W3k2J 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 z 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 randomized-quantile #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: -#> Chain 1: Gradient evaluation took 0.000962 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.62 seconds. +#> Chain 1: Gradient evaluation took 0.000973 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.73 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: @@ -254,9 +254,9 @@

MCMC-based randomized-quantile #> Chain 1: Iteration: 720 / 800 [ 90%] (Sampling) #> Chain 1: Iteration: 800 / 800 [100%] (Sampling) #> Chain 1: -#> Chain 1: Elapsed Time: 6.724 seconds (Warm-up) -#> Chain 1: 4.763 seconds (Sampling) -#> Chain 1: 11.487 seconds (Total) +#> Chain 1: Elapsed Time: 6.762 seconds (Warm-up) +#> Chain 1: 4.824 seconds (Sampling) +#> Chain 1: 11.586 seconds (Total) #> Chain 1:
 mcmc_res <- residuals(fit_nb2, type = "mle-mcmc", mcmc_samples = samps)
@@ -518,8 +518,8 @@ 

The need for one-sample residuals#> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: -#> Chain 1: Gradient evaluation took 0.002192 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 21.92 seconds. +#> Chain 1: Gradient evaluation took 0.002087 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 20.87 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: @@ -536,9 +536,9 @@

The need for one-sample residuals#> Chain 1: Iteration: 360 / 400 [ 90%] (Sampling) #> Chain 1: Iteration: 400 / 400 [100%] (Sampling) #> Chain 1: -#> Chain 1: Elapsed Time: 31.226 seconds (Warm-up) -#> Chain 1: 30.704 seconds (Sampling) -#> Chain 1: 61.93 seconds (Total) +#> Chain 1: Elapsed Time: 31.436 seconds (Warm-up) +#> Chain 1: 30.667 seconds (Sampling) +#> Chain 1: 62.103 seconds (Total) #> Chain 1: #> Warning: The largest R-hat is 1.08, indicating chains have not mixed. #> Running the chains for more iterations may help. See diff --git a/articles/web_only/spatial-trend-models_files/figure-html/unnamed-chunk-13-1.png b/articles/web_only/spatial-trend-models_files/figure-html/unnamed-chunk-13-1.png index a6be39ecfa8efd51180209f68c82c90b3eeefab5..757e2e5f705a1698958c22936cb0e475c546286d 100644 GIT binary patch literal 57575 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 Q4muxo#`w?tQ@8H_A4YMdmH+?% literal 56345 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 z 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%0A60t6CMG%;PV2_U0U!(G3r##{tBufq(V>-E zK7zR8+WT&>CaOX%8|8d(e98(CjoeIUB)3$iFTBBQqnO4Su$4;iHl*V~?C(>TvhnJ~+>5c@8bb?iKi~k{~0Q0&dq-P_FoMX|Nn>Mv-4z5yI3CG+n0wNZP){5`_uQHzwti+ Dp>bp~ diff --git a/pkgdown.yml b/pkgdown.yml index a53c35c79..f61171f90 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -15,7 +15,7 @@ articles: spatial-trend-models: web_only/spatial-trend-models.html threshold-models: web_only/threshold-models.html visreg: web_only/visreg.html -last_built: 2024-05-17T18:56Z +last_built: 2024-05-17T19:15Z urls: reference: https://pbs-assess.github.io/sdmTMB/reference article: https://pbs-assess.github.io/sdmTMB/articles diff --git a/reference/get_index_sims-1.png b/reference/get_index_sims-1.png index adb162a104034f962da746b5fe42e8bb9a1b76bb..db691293d840d74a9e63c5aa5dc6c9b93e323ab6 100644 GIT binary patch literal 70245 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 d*Go5ayxbusExamples#> Dispersion parameter: 12.80 #> Tweedie p: 1.56 #> Matérn range: 0.01 -#> Spatial SD: 2572.51 -#> Spatiotemporal IID SD: 2087.60 +#> Spatial SD: 2573.85 +#> Spatiotemporal IID SD: 2088.69 #> ML criterion at convergence: 2911.371 #> #> See ?tidy.sdmTMB to extract these values as a data frame. diff --git a/search.json b/search.json index 07c528b25..04208359c 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"other-vignettes-available","dir":"Articles","previous_headings":"","what":"Other vignettes available","title":"sdmTMB model description","text":"vignette viewed CRAN, note many vignettes describing use sdmTMB available documentation site Articles.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"notation-conventions","dir":"Articles","previous_headings":"","what":"Notation conventions","title":"sdmTMB model description","text":"appendix uses following notation conventions, generally follow guidance Edwards & Auger-Méthé (2019): Greek symbols parameters, Latin/Roman alphabet data (except \\(\\boldsymbol{Q}\\) \\(\\boldsymbol{H}\\), used convention), bold symbols vectors matrices (e.g., \\(\\boldsymbol{\\omega}\\) vector \\(\\omega_{\\boldsymbol{s}}\\) value \\(\\boldsymbol{\\omega}\\) point space \\(\\boldsymbol{s}\\)), \\(\\phi\\) distribution dispersion parameters consistency code, \\(\\mathbb{E}[y]\\) define expected value (mean) variable \\(y\\), \\(\\mathrm{Var}[y]\\) define expected variance variable \\(y\\), \\(^*\\) superscript represents interpolated projected values opposed values knot locations (e.g., \\(\\boldsymbol{\\omega}\\) vs. \\(\\boldsymbol{\\omega}^*\\)), possible, notation chosen match VAST (Thorson 2019) maintain consistency (e.g., \\(\\boldsymbol{\\omega}\\) spatial fields \\(\\boldsymbol{\\epsilon}_t\\) spatiotemporal fields). include tables major indices (Table 1) symbols (Table 2). Table 1: Subscript notation Table 2: Symbol notation, code representation (model output model template code), descriptions.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"sdmtmb-model-structure","dir":"Articles","previous_headings":"","what":"sdmTMB model structure","title":"sdmTMB model description","text":"complete sdmTMB model can written \\[ \\begin{aligned} \\mathbb{E}[y_{\\boldsymbol{s},t}] &= \\mu_{\\boldsymbol{s},t},\\\\ \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta} + O_{\\boldsymbol{s},t} + \\alpha_g + \\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t} \\boldsymbol{\\gamma_t} + \\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s},t} \\zeta_{\\boldsymbol{s}} + \\omega_{\\boldsymbol{s}} + \\epsilon_{\\boldsymbol{s},t} \\right), \\end{aligned} \\] \\(y_{\\boldsymbol{s},t}\\) represents response data point \\(\\boldsymbol{s}\\) time \\(t\\); \\(\\mu\\) represents mean; \\(f\\) represents link function (e.g., log logit) \\(f^{-1}\\) represents inverse; \\(\\boldsymbol{X}^{\\mathrm{main}}\\), \\(\\boldsymbol{X}^{\\mathrm{tvc}}\\), \\(\\boldsymbol{X}^{\\mathrm{svc}}\\) represent design matrices (superscript identifiers ‘main’ = main effects, ‘tvc’ = time varying coefficients, ‘svc’ = spatially varying coefficients); \\(\\boldsymbol{\\beta}\\) represents vector fixed-effect coefficients; \\(O_{\\boldsymbol{s},t}\\) represents offset: covariate (usually log transformed) coefficient fixed one; \\(\\alpha_{g}\\) represents random intercepts group \\(g\\), \\(\\alpha_{g}\\sim \\mathrm{N}(0,\\sigma^2_\\alpha)\\); \\(\\gamma_{t}\\) represents time-varying coefficients (random walk), \\(\\gamma_{t} \\sim \\mathrm{N}(\\gamma_{t-1},\\sigma^2_\\gamma)\\); \\(\\zeta_{\\boldsymbol{s}}\\) represents spatially varying coefficients (random field), \\(\\zeta_{\\boldsymbol{s}} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_\\zeta)\\); \\(\\omega_{\\boldsymbol{s}}\\) represents spatial component (random field), \\(\\omega_{\\boldsymbol{s}} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_\\omega)\\); \\(\\epsilon_{\\boldsymbol{s},t}\\) represents spatiotemporal component (random field), \\(\\epsilon_{\\boldsymbol{s},t} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_{\\epsilon})\\). single sdmTMB model rarely, ever, contain components. Next, split model describe various parts detail using ‘\\(\\ldots\\)’ represent optional components.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"main-effects","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Main effects","title":"sdmTMB model description","text":"\\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta} \\ldots \\right) \\end{aligned} \\] Within sdmTMB(), \\(\\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta}\\) defined formula argument represents main-effect model matrix corresponding vector coefficients. main effect formula can contain optional penalized smoothers non-linear functions defined .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"smoothers","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Smoothers","title":"sdmTMB model description","text":"Smoothers sdmTMB implemented formula syntax familiar mgcv (Wood 2017) users fitting GAMs (generalized additive models). Smooths implemented formula using + s(x), implements smooth mgcv::s(). Within smooths, syntax commonly used mgcv::s() can applied, e.g. 2-dimensional smooths may constructed + s(x, y); smooths can specific various factor levels, + s(x, = group); smooths can vary according continuous variable, + s(x, = x2); basis function dimensions may specified, e.g. + s(x, k = 4) (see ?mgcv::choose.k); various types splines may constructed cyclic splines model seasonality, e.g. + s(month, bs = \"cc\", k = 12). mgcv can fit unpenalized (e.g., B-splines) penalized splines (P-splines), sdmTMB implements penalized splines. penalized splines constructed sdmTMB using function mgcv::smooth2random(), transforms splines random effects (associated design matrices) estimable mixed-effects modelling framework. approach implemented R packages gamm4 (Wood & Scheipl 2020) brms (Bürkner 2017).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"linear-break-point-threshold-models","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Linear break-point threshold models","title":"sdmTMB model description","text":"linear break-point “hockey stick” model can used describe threshold asymptotic responses. function consists two pieces, \\(x < b_{1}\\), \\(s(x) = x \\cdot b_{0}\\), \\(x > b_{1}\\), \\(s(x) = b_{1} \\cdot b_{0}\\). cases, \\(b_{0}\\) represents slope function threshold, product \\(b_{1} \\cdot b_{0}\\) represents value asymptote. constraints placed parameters \\(b_{0}\\) \\(b_{1}\\). models can fit including + breakpt(x) model formula, x covariate. formula can contain single break-point covariate.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"logistic-threshold-models","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Logistic threshold models","title":"sdmTMB model description","text":"Models logistic threshold relationships predictor response can fit form \\[ s(x)=\\tau + \\psi\\ { \\left[ 1+{ e }^{ -\\ln \\left(19\\right) \\cdot \\left( x-s50 \\right) / \\left(s95 - s50 \\right) } \\right] }^{-1}, \\] \\(s\\) represents logistic function, \\(\\psi\\) scaling parameter (controlling height y-axis response; unconstrained), \\(\\tau\\) intercept, \\(s50\\) parameter controlling point function reaches 50% maximum (\\(\\psi\\)), \\(s95\\) parameter controlling point function reaches 95% maximum. parameter \\(s50\\) unconstrained \\(s95\\) constrained larger \\(s50\\). models can fit including + logistic(x) model formula, x covariate. formula can contain single logistic covariate.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatial-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatial random fields","title":"sdmTMB model description","text":"Spatial random fields, \\(\\omega_{\\boldsymbol{s}}\\), included spatial = '' (TRUE) omitted spatial = '' (FALSE). \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\omega_{\\boldsymbol{s}} + \\ldots \\right),\\\\ \\boldsymbol{\\omega} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_\\omega \\right),\\\\ \\end{aligned} \\] marginal standard deviation \\(\\boldsymbol{\\omega}\\) indicated Spatial SD printed model output sigma_O output sdmTMB::tidy(fit, \"ran_pars\"). ‘O’ ‘omega’ (\\(\\omega\\)). Internally, random fields follow Gaussian Markov random field (GMRF) \\[ \\boldsymbol{\\omega} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\omega^2 \\boldsymbol{Q}^{-1}_\\omega\\right), \\] \\(\\boldsymbol{Q}_\\omega\\) sparse precision matrix \\(\\sigma_\\omega^2\\) marginal variance.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatiotemporal random fields","title":"sdmTMB model description","text":"Spatiotemporal random fields included default multiple time elements (time argument NULL) can set IID (independent identically distributed, 'iid'; default), AR(1) ('ar1'), random walk ('rw'), ('') via spatiotemporal argument. text values case insensitive. Spatiotemporal random fields represented \\(\\boldsymbol{\\epsilon}_t\\) within sdmTMB. chosen match representation VAST (Thorson 2019). marginal standard deviation \\(\\boldsymbol{\\epsilon}_t\\) indicated Spatiotemporal SD printed model output sigma_E output sdmTMB::tidy(fit, \"ran_pars\"). ‘E’ ‘epsilon’ (\\(\\epsilon\\)).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"iid-spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"IID spatiotemporal random fields","title":"sdmTMB model description","text":"IID spatiotemporal random fields (spatiotemporal = 'iid') can represented \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\epsilon_{\\boldsymbol{s},t} + \\ldots \\right),\\\\ \\boldsymbol{\\epsilon_{t}} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right). \\end{aligned} \\] \\(\\epsilon_{\\boldsymbol{s},t}\\) represent random field deviations point \\(\\boldsymbol{s}\\) time \\(t\\). random fields assumed independent across time steps. Similarly spatial random fields, spatiotemporal random fields (including versions described ) parameterized internally sparse precision matrix (\\(\\boldsymbol{Q}_\\epsilon\\)) \\[ \\boldsymbol{\\epsilon_{t}} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\epsilon^2 \\boldsymbol{Q}^{-1}_\\epsilon\\right). \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"ar1-spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"AR(1) spatiotemporal random fields","title":"sdmTMB model description","text":"First-order auto regressive, AR(1), spatiotemporal random fields (spatiotemporal = 'ar1') add parameter defining correlation random field deviations one time step next. defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\delta_{\\boldsymbol{s},t} \\ldots \\right),\\\\ \\boldsymbol{\\delta}_{t=1} &\\sim \\operatorname{MVNormal} (\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon}),\\\\ \\boldsymbol{\\delta}_{t>1} &= \\rho \\boldsymbol{\\delta}_{t-1} + \\sqrt{1 - \\rho^2} \\boldsymbol{\\epsilon_{t}}, \\: \\boldsymbol{\\epsilon_{t}} \\sim \\operatorname{MVNormal} \\left(\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right), \\end{aligned} \\] \\(\\rho\\) correlation subsequent spatiotemporal random fields. \\(\\rho \\boldsymbol{\\delta}_{t-1} + \\sqrt{1 - \\rho^2}\\) term scales spatiotemporal variance correlation represents steady-state marginal variance. correlation \\(\\rho\\) allows mean-reverting spatiotemporal fields, constrained \\(-1 < \\rho < 1\\). Internally, parameter estimated ar1_phi, unconstrained. parameter ar1_phi transformed \\(\\rho\\) \\(\\rho = 2 \\left( \\mathrm{logit}^{-1}(\\texttt{ar1\\_phi}) - 1 \\right)\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"random-walk-spatiotemporal-random-fields-rw","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"Random walk spatiotemporal random fields (RW)","title":"sdmTMB model description","text":"Random walk spatiotemporal random fields (spatiotemporal = 'rw') represent model difference spatiotemporal deviations one time step next IID. defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\delta_{\\boldsymbol{s},t} + \\ldots \\right),\\\\ \\boldsymbol{\\delta}_{t=1} &\\sim \\operatorname{MVNormal} (\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon}),\\\\ \\boldsymbol{\\delta}_{t>1} &= \\boldsymbol{\\delta}_{t-1} + \\boldsymbol{\\epsilon_{t-1}}, \\: \\boldsymbol{\\epsilon_{t-1}} \\sim \\operatorname{MVNormal} \\left(\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right), \\end{aligned} \\] distribution spatiotemporal field initial time step AR(1) model, absence \\(\\rho\\) parameter allows spatiotemporal field non-stationary time. Note , contrast AR(1) parametrization, variance longer steady-state marginal variance.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"time-varying-regression-parameters","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Time-varying regression parameters","title":"sdmTMB model description","text":"Parameters can modelled time-varying according random walk first-order autoregressive, AR(1), process. time-series model defined time_varying_type. types: \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t} \\boldsymbol{\\gamma_{t}} + \\ldots \\right), \\end{aligned} \\] \\(\\boldsymbol{\\gamma_t}\\) optional vector time-varying regression parameters \\(\\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t}\\) corresponding model matrix covariate values. defined via time_varying argument, assuming time argument also supplied column name. time_varying takes one-sided formula. ~ 1 implies time-varying intercept. time_varying_type = 'rw', first time step estimated independently: \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Uniform} \\left(-\\infty, \\infty \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\gamma_{t-1}, \\sigma^2_{\\gamma} \\right). \\end{aligned} \\] case, first time-step value given implicit uniform prior. .e., variable appear fixed effect formula since initial value estimated part time-varying formula. formula time_varying = ~ 1 implicitly represents time-varying intercept (assuming time argument supplied) , case, intercept omitted main effects (formula ~ + 0 + ... formula ~ -1 + ...). time_varying_type = 'rw0', first time step estimated mean-zero prior: \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Normal} \\left(0, \\sigma^2_{\\gamma} \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\gamma_{t-1}, \\sigma^2_{\\gamma} \\right). \\end{aligned} \\] case, time-varying variable (including intercept) included main effects. suggest using formulation, leave 'rw' option legacy code works. time_varying_type = 'ar1': \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Normal} \\left(0, \\sigma^2_{\\gamma} \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\rho_\\gamma\\gamma_{t-1}, \\sqrt{1 - \\rho_\\gamma^2} \\sigma^2_{\\gamma} \\right), \\end{aligned} \\] \\(\\rho_{\\gamma}\\) correlation subsequent time steps. first time step given mean-zero prior.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatially-varying-coefficients-svc","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatially varying coefficients (SVC)","title":"sdmTMB model description","text":"Spatially varying coefficient models defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s}, t} \\zeta_{\\boldsymbol{s}} + \\ldots \\right),\\\\ \\boldsymbol{\\zeta} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_\\zeta \\right), \\end{aligned} \\] \\(\\boldsymbol{\\zeta}\\) random field representing spatially varying coefficient. Usually, \\(\\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s}, t}\\) represent prediction matrix constant spatially given time \\(t\\) defined one-sided formula supplied spatial_varying. example spatial_varying = ~ 0 + x, 0 omits intercept. random fields parameterized internally sparse precision matrix (\\(\\boldsymbol{Q}_\\zeta\\)) \\[ \\boldsymbol{\\zeta} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\zeta^2 \\boldsymbol{Q}^{-1}_\\zeta\\right). \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"iid-random-or-multi-level-intercepts","dir":"Articles","previous_headings":"sdmTMB model structure","what":"IID random or multi-level intercepts","title":"sdmTMB model description","text":"Multilevel/hierarchical intercepts defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\alpha_{g} + \\ldots \\right),\\\\ \\alpha_g &\\sim \\operatorname{Normal} \\left(0, \\sigma_\\alpha^2 \\right),\\\\ \\end{aligned} \\] \\(\\alpha_g\\) example optional “random” intercept—intercept mean zero varies level \\(g\\) constrained \\(\\sigma_\\alpha\\). defined formula argument via (1 | g) syntax lme4 glmmTMB. can multiple random intercepts, despite showing one . E.g., (1 | g1) + (1 | g2), case assumed independent uncorrelated .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"offset-terms","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Offset terms","title":"sdmTMB model description","text":"Offset terms can included offset argument sdmTMB(). included linear predictor \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + O_{\\boldsymbol{s},t} + \\ldots \\right), \\end{aligned} \\] \\(O_{\\boldsymbol{s},t}\\) offset term—log transformed variable without coefficient (assuming log link). offset included prediction. Therefore, offset represents measure effort, example, prediction one unit effort (log(1) = 0).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"observation-model-families","dir":"Articles","previous_headings":"","what":"Observation model families","title":"sdmTMB model description","text":"describe main observation families available sdmTMB comment parametrization, statistical properties, utility, code representation sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"binomial","dir":"Articles","previous_headings":"Observation model families","what":"Binomial","title":"sdmTMB model description","text":"\\[ \\operatorname{Binomial} \\left(N, \\mu \\right) \\] \\(N\\) size number trials, \\(\\mu\\) probability success trial. \\(N = 1\\), distribution becomes Bernoulli distribution. Internally, distribution parameterized robust version TMB, numerically stable probabilities approach 0 1. Following structure stats::glm(), lme4, glmmTMB, binomial family can specified one 4 ways: response may factor (model classifies first level versus others) response may binomial (0/1) response can matrix form cbind(success, failure), response may observed proportions, weights argument used specify Binomial size (\\(N\\)) parameter (probabilty ~ ..., weights = N). Code defined within TMB. Example: family = binomial(link = \"logit\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"beta","dir":"Articles","previous_headings":"Observation model families","what":"Beta","title":"sdmTMB model description","text":"\\[ \\operatorname{Beta} \\left(\\mu \\phi, (1 - \\mu) \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) precision parameter. parametrization follows Ferrari & Cribari-Neto (2004) betareg R package (Cribari-Neto & Zeileis 2010). variance \\(\\mu (1 - \\mu) / (\\phi + 1)\\). Code defined within TMB. Example: family = Beta(link = \"logit\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gamma","dir":"Articles","previous_headings":"Observation model families","what":"Gamma","title":"sdmTMB model description","text":"\\[ \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu}{\\phi} \\right) \\] \\(\\phi\\) represents Gamma shape \\(\\mu / \\phi\\) represents scale. mean \\(\\mu\\) variance \\(\\mu \\cdot \\phi^2\\). Code defined within TMB. Example: family = Gamma(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gaussian","dir":"Articles","previous_headings":"Observation model families","what":"Gaussian","title":"sdmTMB model description","text":"\\[ \\operatorname{Normal} \\left( \\mu, \\phi^2 \\right) \\] \\(\\mu\\) mean \\(\\phi\\) standard deviation. variance \\(\\phi^2\\). Example: family = Gaussian(link = \"identity\") Code defined within TMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"lognormal","dir":"Articles","previous_headings":"Observation model families","what":"Lognormal","title":"sdmTMB model description","text":"sdmTMB uses bias-corrected lognormal distribution \\(\\phi\\) represents standard deviation log-space: \\[ \\operatorname{Lognormal} \\left( \\log \\mu - \\frac{\\phi^2}{2}, \\phi^2 \\right). \\] bias correction, \\(\\mathbb{E}[y] = \\mu\\) \\(\\mathrm{Var}[\\log y] = \\phi^2\\). Code defined within sdmTMB based TMB dnorm() normal density. Example: family = lognormal(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-1-nb1","dir":"Articles","previous_headings":"Observation model families","what":"Negative Binomial 1 (NB1)","title":"sdmTMB model description","text":"\\[ \\operatorname{NB1} \\left( \\mu, \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) dispersion parameter. variance scales linearly mean \\(\\mathrm{Var}[y] = \\mu + \\mu / \\phi\\) (Hilbe 2011). Internally, distribution parameterized robust version TMB. Code defined within sdmTMB based NB2 borrowed glmmTMB. Example: family = nbinom1(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-2-nb2","dir":"Articles","previous_headings":"Observation model families","what":"Negative Binomial 2 (NB2)","title":"sdmTMB model description","text":"\\[ \\operatorname{NB2} \\left( \\mu, \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) dispersion parameter. variance scales quadratically mean \\(\\mathrm{Var}[y] = \\mu + \\mu^2 / \\phi\\) (Hilbe 2011). NB2 parametrization commonly seen ecology NB1. Internally, distribution parameterized robust version TMB. Code defined within TMB. Example: family = nbinom2(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"poisson","dir":"Articles","previous_headings":"Observation model families","what":"Poisson","title":"sdmTMB model description","text":"\\[ \\operatorname{Poisson} \\left( \\mu \\right) \\] \\(\\mu\\) represents mean \\(\\mathrm{Var}[y] = \\mu\\). Code defined within TMB. Example: family = poisson(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"student-t","dir":"Articles","previous_headings":"Observation model families","what":"Student-t","title":"sdmTMB model description","text":"\\[ \\operatorname{Student-t} \\left( \\mu, \\phi, \\nu \\right) \\] \\(\\nu\\), degrees freedom (df), user-supplied fixed parameter. Lower values \\(\\nu\\) result heavier tails compared Gaussian distribution. approximately df = 20, distribution becomes similar Gaussian. Student-t distribution low degrees freedom (e.g., \\(\\nu \\le 7\\)) can helpful modelling data otherwise suitable Gaussian needs approach robust outliers (e.g., Anderson et al. 2017). Code defined within sdmTMB based dt() distribution TMB. Example: family = student(link = \"log\", df = 7)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"tweedie","dir":"Articles","previous_headings":"Observation model families","what":"Tweedie","title":"sdmTMB model description","text":"\\[ \\operatorname{Tweedie} \\left(\\mu, p, \\phi \\right), \\: 1 < p < 2 \\] \\(\\mu\\) mean, \\(p\\) power parameter constrained 1 2, \\(\\phi\\) dispersion parameter. Tweedie distribution can helpful modelling data positive continuous also contain zeros. Internally, \\(p\\) transformed \\(\\mathrm{logit}^{-1} (\\texttt{thetaf}) + 1\\) constrain 1 2 estimated unconstrained variable. source code implemented cplm package (Zhang 2013) based Dunn & Smyth (2005). TMB version defined . Example: family = tweedie(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gamma-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Gamma mixture","title":"sdmTMB model description","text":"2 component mixture extends Gamma distribution, \\[ (1 - p) \\cdot \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu_{1}}{\\phi} \\right) + p \\cdot \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu_{2}}{\\phi} \\right), \\] \\(\\phi\\) represents Gamma shape, \\(\\mu_{1} / \\phi\\) represents scale first (smaller component) distribution, \\(\\mu_{2} / \\phi\\) represents scale second (larger component) distribution, \\(p\\) controls contribution component mixture (also interpreted probability larger events). mean \\((1-p) \\cdot \\mu_{1} + p \\cdot \\mu_{2}\\) variance \\((1-p) ^ 2 \\cdot \\mu_{1} \\cdot \\phi^2 + (p) ^ 2 \\cdot \\mu_{2} \\cdot \\phi^2\\). , mixture distributions, probability larger mean can obtained plogis(fit$model$par[[\"logit_p_mix\"]]) ratio larger mean smaller mean can obtained 1 + exp(fit$model$par[[\"log_ratio_mix\"]]). standard errors available TMB sdreport: fit$sd_report. wish fix probability large (.e., extreme) mean, can hard estimate, can use map list. E.g.: Example: family = gamma_mix(link = \"log\"). See also family = delta_gamma_mix() extension incorporating distribution delta models.","code":"sdmTMB(..., control = sdmTMBcontrol( start = list(logit_p_mix = qlogis(0.05)), # 5% probability of 'mu2' map = list(logit_p_mix = factor(NA)) # don't estimate ) )"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"lognormal-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Lognormal mixture","title":"sdmTMB model description","text":"2 component mixture extends lognormal distribution, \\[ (1 - p) \\cdot \\operatorname{Lognormal} \\left( \\log \\mu_{1} - \\frac{\\phi^2}{2}, \\phi^2 \\right) + p \\cdot \\operatorname{Lognormal} \\left( \\log \\mu_{2} - \\frac{\\phi^2}{2}, \\phi^2 \\right). \\] bias correction, \\(\\mathbb{E}[y] = (1-p) \\cdot \\mu_{1} + p \\cdot \\mu_{2}\\) \\(\\mathrm{Var}[\\log y] = (1-p)^2 \\cdot \\phi^2 + p^2 \\cdot \\phi^2\\). Gamma mixture, \\(p\\) controls contribution component mixture (also interpreted probability larger events). Example: family = lognormal_mix(link = \"log\"). See also family = delta_lognormal_mix() extension incorporating distribution delta models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-2-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Negative binomial 2 mixture","title":"sdmTMB model description","text":"2 component mixture extends NB2 distribution, \\[ (1 - p) \\cdot \\operatorname{NB2} \\left( \\mu_1, \\phi \\right) + p \\cdot \\operatorname{NB2} \\left( \\mu_2, \\phi \\right) \\] \\(\\mu_1\\) mean first (smaller component) distribution, \\(\\mu_2\\) mean larger component, \\(p\\) controls contribution component mixture. Example: family = nbinom2_mix(link = \"log\")","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"matérn-parameterization","dir":"Articles","previous_headings":"Gaussian random fields","what":"Matérn parameterization","title":"sdmTMB model description","text":"Matérn defines covariance \\(\\Phi \\left( s_j, s_k \\right)\\) spatial locations \\(s_j\\) \\(s_k\\) \\[ \\Phi\\left( s_j,s_k \\right) = \\tau^2/\\Gamma(\\nu)2^{\\nu - 1} (\\kappa d_{jk})^\\nu K_\\nu \\left( \\kappa d_{jk} \\right), \\] \\(\\tau^2\\) controls spatial variance, \\(\\nu\\) controls smoothness, \\(\\Gamma\\) represents Gamma function, \\(d_{jk}\\) represents distance locations \\(s_j\\) \\(s_k\\), \\(K_\\nu\\) represents modified Bessel function second kind, \\(\\kappa\\) represents decorrelation rate. parameter \\(\\nu\\) set 1 take advantage Stochastic Partial Differential Equation (SPDE) approximation GRF greatly increase computational efficiency (Lindgren et al. 2011). Internally, parameters \\(\\kappa\\) \\(\\tau\\) converted range marginal standard deviation \\(\\sigma\\) \\(\\textrm{range} = \\sqrt{8} / \\kappa\\) \\(\\sigma = 1 / \\sqrt{4 \\pi \\exp \\left(2 \\log(\\tau) + 2 \\log(\\kappa) \\right) }\\). case spatiotemporal model spatial spatiotemporal fields, share_range = TRUE sdmTMB() (default), single \\(\\kappa\\) range estimated separate \\(\\sigma_\\omega\\) \\(\\sigma_\\epsilon\\). often makes sense since data often weakly informative \\(\\kappa\\). share_range = FALSE, separate \\(\\kappa_\\omega\\) \\(\\kappa_\\epsilon\\) estimated. spatially varying coefficient field always shares \\(\\kappa\\) spatial random field.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"projection-boldsymbola-matrix","dir":"Articles","previous_headings":"Gaussian random fields","what":"Projection \\(\\boldsymbol{A}\\) matrix","title":"sdmTMB model description","text":"values spatial variables knots multiplied projection matrix \\(\\boldsymbol{}\\) bilinearly interpolates knot locations values locations observed predicted data (Lindgren & Rue 2015) \\[ \\boldsymbol{\\omega}^* = \\boldsymbol{} \\boldsymbol{\\omega}, \\] \\(\\boldsymbol{\\omega}^*\\) represents values spatial random fields observed locations predicted data locations. matrix \\(\\boldsymbol{}\\) row data point prediction point column knot. Three non-zero elements row define weight neighbouring 3 knot locations location \\(\\boldsymbol{s}\\). bilinear interpolation happens spatiotemporal random fields \\[ \\boldsymbol{\\epsilon}_t^* = \\boldsymbol{} \\boldsymbol{\\epsilon}_t. \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"anisotropy","dir":"Articles","previous_headings":"Gaussian random fields","what":"Anisotropy","title":"sdmTMB model description","text":"TMB allows anisotropy, spatial covariance may asymmetric respect latitude longitude (full details). Anisotropy can turned logical anisotropy argument sdmTMB(). number ways implement anisotropic covariance (Fuglstad et al. 2015), adopt 2-parameter rotation matrix \\(\\textbf{H}\\). elements \\(\\textbf{H}\\) defined parameter vector \\(\\boldsymbol{x}\\) \\(H_{1,1} = x_{1}\\), \\(H_{1,2} = H_{2,1} = x_{2}\\) \\(H_{2,2} = (1 + x_{2}^2) / x_{1}\\). model fitted sdmTMB(), anisotropy relationships may plotted using plot_anisotropy() function, takes fitted object argument. barrier mesh used, anisotropy disabled.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"incorporating-physical-barriers-into-the-spde","dir":"Articles","previous_headings":"Gaussian random fields","what":"Incorporating physical barriers into the SPDE","title":"sdmTMB model description","text":"cases spatial domain interest may complex bounded barrier land water (e.g., coastlines, islands, lakes). SPDE models allow physical barriers incorporated modelling (Bakka et al. 2019). sdmTMB() models, mesh construction occurs two steps: user (1) constructs mesh call sdmTMB::make_mesh(), (2) passes mesh sdmTMB::add_barrier_mesh(). barriers must constructed sf objects (Pebesma 2018) polygons defining barriers. See ?sdmTMB::add_barrier_mesh example. barrier implementation requires user select fraction value (range_fraction argument) defines fraction usual spatial range crossing barrier (Bakka et al. 2019). example, range estimated 10 km, range_fraction = 0.2 assume range 2 km across barrier. let spatial correlation decay 5 times faster distance. experimentation, values around 0.1 0.2 seem work well values much lower 0.1 can result convergence issues. website Francesco Serafini Haakon Bakka provides illustration INLA. implementation within TMB borrowed code written Olav Nikolai Breivik Hans Skaug TMB Case Studies Github site.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"optimization-details","dir":"Articles","previous_headings":"Optimization","what":"Optimization details","title":"sdmTMB model description","text":"sdmTMB model fit maximum marginal likelihood. Internally, TMB (Kristensen et al. 2016) model template calculates marginal log likelihood gradient, negative log likelihood minimized via non-linear optimization routine stats::nlminb() R (Gay 1990; R Core Team 2021). Random effects estimated values maximize log likelihood conditional estimated fixed effects integrated via Laplace approximation (Kristensen et al. 2016). Like AD Model Builder (Fournier et al. 2012), TMB allows parameters fit phases include multiphase argument sdmTMB::sdmTMBcontrol() allow . high-dimensional models (many fixed random effects), phased estimation may faster result stable convergence. sdmTMB, phased estimation proceeds first estimating fixed-effect parameters contributing likelihood (holding random effects constant initial values). second phase, random-effect parameters (variances) also estimated. Fixed-effect parameters also estimated second phase initialized estimates first phase. cases, single call stats::nlminb() may result convergence (e.g., maximum gradient marginal likelihood respect fixed-effect parameters small enough yet), algorithm may need run multiple times. sdmTMB::sdmTMBcontrol() function, include argument nlminb_loops restart optimization previous best values. number nlminb_loops generally small (e.g., 2 3 initially), defaults 1. sdmTMB models, Hessian may also unstable need re-evaluated. optionally stats::optimHess() routine call stats::nlminb(). stats::optimHess() function implements Newton optimization routine find Hessian, include argument newton_loops sdmTMB::sdmTMBcontrol() allow multiple function evaluations (starting previous best value). default, included newton_loops set 0. model already fit, function sdmTMB::run_extra_optimization() can run additional optimization loops either routine reduce maximum gradient.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"assessing-convergence","dir":"Articles","previous_headings":"Optimization","what":"Assessing convergence","title":"sdmTMB model description","text":"Much guidance around diagnostics glmmTMB also applies sdmTMB, e.g. glmmTMB vignette troubleshooting. Optimization stats::nlminb() involves specifying number iterations evaluations (eval.max iter.max) tolerances (abs.tol, rel.tol, x.tol, xf.tol)—greater number iterations smaller tolerance thresholds increase chance optimal solution found, evaluations translates longer computation time. Warnings non-positive-definite Hessian matrices (accompanied parameters NAs standard errors) often mean models improperly specified given data. Standard errors can observed output print.sdmTMB() checking fit$sd_report. maximum gradient marginal likelihood respect fixed-effect parameters can checked inspecting (fit$gradients). Guidance varies, maximum gradient likely least \\(< 0.001\\) assuming fitting routine consistent convergence. maximum gradients already relatively small, can often reduced additional optimization calls beginning previous best parameter vector described sdmTMB::run_extra_optimization().","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"parameter-estimates","dir":"Articles > Web_only","previous_headings":"","what":"Parameter estimates","title":"Introduction to modelling with sdmTMB","text":"can view confidence intervals fixed effects using tidy function: similarly random effect variance parameters: Note standard errors reported coefficients log space, confidence intervals reported. parameters defined follows: range: derived parameter defines distance 2 points effectively independent (actually 13% correlated). share_range argument changed FALSE spatial spatiotemporal ranges unique, otherwise default share range. phi: Observation error scale parameter (e.g., SD Gaussian). sigma_O: SD spatial process (“Omega”). sigma_E: SD spatiotemporal process (“Epsilon”). tweedie_p: Tweedie p (power) parameter; 1 2. model used AR1 spatiotemporal fields : rho: Spatiotemporal correlation years; -1 1. model includes spatial_varying predictor : sigma_Z: SD spatially varying coefficient field (“Zeta”).","code":"tidy(m3, conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 1.86 0.208 1.45 2.26 #> 2 poly(log(depth), 2)1 -65.1 6.32 -77.5 -52.8 #> 3 poly(log(depth), 2)2 -96.5 5.98 -108. -84.8 tidy(m3, \"ran_pars\", conf.int = TRUE) #> # A tibble: 5 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 19.8 3.03 14.6 26.7 #> 2 phi 11.0 0.377 10.3 11.8 #> 3 sigma_O 1.40 0.162 1.12 1.76 #> 4 sigma_E 1.55 0.129 1.32 1.83 #> 5 tweedie_p 1.50 0.0119 1.48 1.52"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"model-diagnostics","dir":"Articles > Web_only","previous_headings":"","what":"Model diagnostics","title":"Introduction to modelling with sdmTMB","text":"can inspect randomized quantile residuals: fast calculate can look ‘’ even model consistent data. MCMC-based residuals reliable slow. can calculate help sdmTMBextra package. https://github.com/pbs-assess/sdmTMBextra. practice like want mcmc_iter mcmc_warmup. Total samples mcmc_iter - mcmc_warmup. also just use spatial model vignette builds quickly. See ?residuals.sdmTMB().","code":"pcod$resids <- residuals(m3) # randomized quantile residuals #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. qqnorm(pcod$resids) qqline(pcod$resids) ggplot(pcod, aes(X, Y, col = resids)) + scale_colour_gradient2() + geom_point() + facet_wrap(~year) + coord_fixed() set.seed(123) samps <- sdmTMBextra::predict_mle_mcmc(m3, mcmc_warmup = 100, mcmc_iter = 101) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.010134 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 101.34 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: WARNING: There aren't enough warmup iterations to fit the #> Chain 1: three stages of adaptation as currently configured. #> Chain 1: Reducing each adaptation stage to 15%/75%/10% of #> Chain 1: the given number of warmup iterations: #> Chain 1: init_buffer = 15 #> Chain 1: adapt_window = 75 #> Chain 1: term_buffer = 10 #> Chain 1: #> Chain 1: Iteration: 1 / 101 [ 0%] (Warmup) #> Chain 1: Iteration: 10 / 101 [ 9%] (Warmup) #> Chain 1: Iteration: 20 / 101 [ 19%] (Warmup) #> Chain 1: Iteration: 30 / 101 [ 29%] (Warmup) #> Chain 1: Iteration: 40 / 101 [ 39%] (Warmup) #> Chain 1: Iteration: 50 / 101 [ 49%] (Warmup) #> Chain 1: Iteration: 60 / 101 [ 59%] (Warmup) #> Chain 1: Iteration: 70 / 101 [ 69%] (Warmup) #> Chain 1: Iteration: 80 / 101 [ 79%] (Warmup) #> Chain 1: Iteration: 90 / 101 [ 89%] (Warmup) #> Chain 1: Iteration: 100 / 101 [ 99%] (Warmup) #> Chain 1: Iteration: 101 / 101 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 26.274 seconds (Warm-up) #> Chain 1: 0.2 seconds (Sampling) #> Chain 1: 26.474 seconds (Total) #> Chain 1: r <- residuals(m3, \"mle-mcmc\", mcmc_samples = samps) qqnorm(r) qqline(r)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"spatial-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Spatial predictions","title":"Introduction to modelling with sdmTMB","text":"Now, purposes example (e.g., visualization), want predict fine-scale grid entire survey domain. grid built package Queen Charlotte Sound named qcs_grid. prediction grid also needs covariates used model . can replicate grid across necessary years: Now make predictions new data: Let’s make small function help make maps. four kinds predictions get model. First, show predictions incorporate fixed effects random effects: can also look just fixed effects, quadratic effect depth: can look spatial random effects represent consistent deviations space time accounted fixed effects. words, deviations represent consistent biotic abiotic factors affecting biomass density accounted model. finally can look spatiotemporal random effects represent deviation fixed effect predictions spatial random effect deviations. represent biotic abiotic factors changing time accounted model. can also estimate uncertainty spatiotemporal density predictions using simulations joint precision matrix setting nsim > 0 predict function. generate 100 estimates use apply() calculate upper lower confidence intervals, standard deviation, coefficient variation (CV). Plot CV estimates:","code":"glimpse(qcs_grid) #> Rows: 7,314 #> Columns: 5 #> $ X 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 4… #> $ Y 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 56… #> $ depth 347.08345, 223.33479, 203.74085, 183.29868, 182.99983, 1… #> $ depth_scaled 1.56081222, 0.56976988, 0.36336929, 0.12570465, 0.122036… #> $ depth_scaled2 2.436134794, 0.324637712, 0.132037240, 0.015801659, 0.01… grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) predictions <- predict(m3, newdata = grid_yrs) plot_map <- function(dat, column) { ggplot(dat, aes(X, Y, fill = {{ column }})) + geom_raster() + coord_fixed() } plot_map(predictions, exp(est)) + scale_fill_viridis_c( trans = \"sqrt\", # trim extreme high values to make spatial variation more visible na.value = \"yellow\", limits = c(0, quantile(exp(predictions$est), 0.995)) ) + facet_wrap(~year) + ggtitle(\"Prediction (fixed effects + all random effects)\", subtitle = paste(\"maximum estimated biomass density =\", round(max(exp(predictions$est)))) ) plot_map(predictions, exp(est_non_rf)) + scale_fill_viridis_c(trans = \"sqrt\") + ggtitle(\"Prediction (fixed effects only)\") plot_map(predictions, omega_s) + scale_fill_gradient2() + ggtitle(\"Spatial random effects only\") plot_map(predictions, epsilon_st) + scale_fill_gradient2() + facet_wrap(~year) + ggtitle(\"Spatiotemporal random effects only\") sim <- predict(m3, newdata = grid_yrs, nsim = 100) sim_last <- sim[grid_yrs$year == max(grid_yrs$year), ] # just plot last year pred_last <- predictions[predictions$year == max(grid_yrs$year), ] pred_last$lwr <- apply(exp(sim_last), 1, quantile, probs = 0.025) pred_last$upr <- apply(exp(sim_last), 1, quantile, probs = 0.975) pred_last$sd <- round(apply(exp(sim_last), 1, function(x) sd(x)), 2) pred_last$cv <- round(apply(exp(sim_last), 1, function(x) sd(x) / mean(x)), 2) ggplot(pred_last, aes(X, Y, fill = cv)) + geom_raster() + scale_fill_viridis_c()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"conditional-effects","dir":"Articles > Web_only","previous_headings":"","what":"Conditional effects","title":"Introduction to modelling with sdmTMB","text":"can visualize conditional effect covariates feeding simplified data frames predict function fix covariate values want fixed (e.g., means) vary parameters want visualize (across range values): also visreg package. version link space residuals partial randomized quantile residuals. See scale argument visreg response scale plots. ggeffects package marginal effects plot. also faster since relies already estimated coefficients variance-covariance matrix.","code":"nd <- data.frame( depth = seq(min(pcod$depth), max(pcod$depth), length.out = 100 ), year = 2015L # a chosen year ) p <- predict(m3, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se) )) + geom_line() + geom_ribbon(alpha = 0.4) + scale_x_continuous() + coord_cartesian(expand = F) + labs(x = \"Depth (m)\", y = \"Biomass density (kg/km2)\") visreg::visreg(m3, \"depth\") ggeffects::ggeffect(m3, \"depth [0:500 by=1]\") %>% plot() #> Warning: Removed 1 row containing missing values or values outside the scale range #> (`geom_line()`)."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"time-varying-effects","dir":"Articles > Web_only","previous_headings":"Conditional effects","what":"Time-varying effects","title":"Introduction to modelling with sdmTMB","text":"also let effect depth vary time. example, helps give year separate mean effect (.factor(year)). ~ 0 part formula omits intercept. models like take longer fit, might want set silent = FALSE can monitor progress. plot , make data frame contains combinations time-varying covariate time. easily created using expand.grid() tidyr::expand_grid().","code":"m4 <- sdmTMB( density ~ 0 + as.factor(year), data = pcod, time_varying = ~ 0 + depth_scaled + depth_scaled2, mesh = mesh, family = tweedie(link = \"log\"), spatial = \"on\", time = \"year\", spatiotemporal = \"IID\" ) #> Detected irregular time spacing with an AR(1) or random walk process. #> Consider filling in the missing time slices with `extra_time`. #> `extra_time = c(2006, 2008, 2010, 2012, 2014, 2016)` #> Warning in sqrt(diag(cov)): NaNs produced #> Warning: The model may not have converged: non-positive-definite Hessian #> matrix. m4 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod #> Family: tweedie(link = 'log') #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> Warning in sqrt(diag(object$cov.fixed)): NaNs produced #> #> coef.est coef.se #> as.factor(year)2003 3.36 0.30 #> as.factor(year)2004 4.04 0.28 #> as.factor(year)2005 3.77 0.28 #> as.factor(year)2007 2.64 0.30 #> as.factor(year)2009 2.65 0.29 #> as.factor(year)2011 3.72 0.29 #> as.factor(year)2013 3.51 0.27 #> as.factor(year)2015 3.76 0.28 #> as.factor(year)2017 3.21 0.30 #> #> Time-varying parameters: #> coef.est coef.se #> depth_scaled-2003 -0.96 0.08 #> depth_scaled-2004 -0.96 0.08 #> depth_scaled-2005 -0.96 0.08 #> depth_scaled-2007 -0.96 0.08 #> depth_scaled-2009 -0.96 0.08 #> depth_scaled-2011 -0.96 0.08 #> depth_scaled-2013 -0.96 0.08 #> depth_scaled-2015 -0.96 0.08 #> depth_scaled-2017 -0.96 0.08 #> depth_scaled2-2003 -1.50 0.23 #> depth_scaled2-2004 -1.70 0.17 #> depth_scaled2-2005 -1.68 0.22 #> depth_scaled2-2007 -1.82 0.28 #> depth_scaled2-2009 -0.99 0.17 #> depth_scaled2-2011 -2.02 0.25 #> depth_scaled2-2013 -1.09 0.12 #> depth_scaled2-2015 -1.80 0.22 #> depth_scaled2-2017 -2.10 0.26 #> #> Dispersion parameter: 10.86 #> Tweedie p: 1.50 #> Matérn range: 13.58 #> Spatial SD: 1.63 #> Spatiotemporal IID SD: 1.66 #> ML criterion at convergence: 6251.146 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** AIC(m4) #> [1] 12534.29 nd <- expand.grid( depth_scaled = seq(min(pcod$depth_scaled) + 0.2, max(pcod$depth_scaled) - 0.2, length.out = 50 ), year = unique(pcod$year) # all years ) nd$depth_scaled2 <- nd$depth_scaled^2 p <- predict(m4, newdata = nd, se_fit = TRUE, re_form = NA) #> Warning in sqrt(diag(cov)): NaNs produced ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se), group = as.factor(year) )) + geom_line(aes(colour = year), lwd = 1) + geom_ribbon(aes(fill = year), alpha = 0.1) + scale_colour_viridis_c() + scale_fill_viridis_c() + scale_x_continuous(labels = function(x) round(exp(x * pcod$depth_sd[1] + pcod$depth_mean[1]))) + coord_cartesian(expand = F) + labs(x = \"Depth (m)\", y = \"Biomass density (kg/km2)\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"simulating-data","dir":"Articles > Web_only","previous_headings":"","what":"Simulating data","title":"Bayesian estimation with sdmTMB","text":"demonstrate using simulated dataset. Visualize simulated data:","code":"set.seed(123) predictor_dat <- data.frame( X = runif(500), Y = runif(500), a1 = rnorm(500) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) # plot(mesh) # mesh$mesh$n sim_dat <- sdmTMB_simulate( formula = ~a1, data = predictor_dat, mesh = mesh, family = gaussian(), range = 0.3, phi = 0.2, sigma_O = 0.2, seed = 123, B = c(0.8, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. ggplot(sim_dat, aes(X, Y, colour = observed)) + geom_point() + scale_color_viridis_c()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"fitting-the-model-with-marginal-likelihood","dir":"Articles > Web_only","previous_headings":"","what":"Fitting the model with marginal likelihood","title":"Bayesian estimation with sdmTMB","text":"First, fit spatial random field GLMM maximum likelihood:","code":"fit <- sdmTMB( observed ~ a1, data = sim_dat, mesh = mesh, family = gaussian(), spatial = \"on\" ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.8 0.06 #> a1 -0.4 0.01 #> #> Dispersion parameter: 0.20 #> Matérn range: 0.32 #> Spatial SD: 0.17 #> ML criterion at convergence: -65.939 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"adding-priors","dir":"Articles > Web_only","previous_headings":"","what":"Adding priors","title":"Bayesian estimation with sdmTMB","text":"first model fit use priors. case, priors implied uniform internal parameter space. However, sdmTMB provides option applying priors. show example applying Normal(0, 5) (mean, SD) prior intercept Normal(0, 1) prior slope parameter. guess model matrix structure based formula, can verify looking internal model matrix previous fit (using do_fit = FALSE save time didn’t want fit first time). column corresponds order b priors:","code":"head(fit$tmb_data$X_ij[[1]]) #> (Intercept) a1 #> 1 1 -0.60189285 #> 2 1 -0.99369859 #> 3 1 1.02678506 #> 4 1 0.75106130 #> 5 1 -1.50916654 #> 6 1 -0.09514745 fit <- sdmTMB( observed ~ a1, data = sim_dat, mesh = mesh, family = gaussian(), spatial = \"on\", priors = sdmTMBpriors( # location = vector of means; scale = vector of standard deviations: b = normal(location = c(0, 0), scale = c(5, 2)), ) ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.8 0.06 #> a1 -0.4 0.01 #> #> Dispersion parameter: 0.20 #> Matérn range: 0.32 #> Spatial SD: 0.17 #> ML criterion at convergence: -62.846 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"fixing-a-spatial-correlation-parameter-to-improve-convergence","dir":"Articles > Web_only","previous_headings":"","what":"Fixing a spatial correlation parameter to improve convergence","title":"Bayesian estimation with sdmTMB","text":"Sometimes spatial correlation parameters can challenging estimate Stan. One option apply penalized complexity (PC) priors sdmTMBpriors() Matérn parameters. Another option, can also used conjunction priors, fix one parameters maximum likelihood estimate (MLE) values. Frequently, fixing parameter ln_kappa can help convergence (e.g., Monnahan et al. 2021). estimated parameter transformed range estimate, controls rate spatial correlation decay. Now rebuild fitted object fixed (‘mapped’) ln_kappa parameters using update() function. ’ll use do_fit = FALSE avoid actually fitting updated model since ’s necessary.","code":"# grab the internal parameter list at estimated values: pars <- sdmTMB::get_pars(fit) # create a 'map' vector for TMB # factor NA values cause TMB to fix or map the parameter at the starting value: kappa_map <- factor(rep(NA, length(pars$ln_kappa))) # rebuild model updating some elements: fit_mle <- update( fit, control = sdmTMBcontrol( start = list( ln_kappa = pars$ln_kappa #< ), map = list( ln_kappa = kappa_map #< ) ), do_fit = FALSE #< ) #> ℹ Initiating `ln_kappa` at specified starting value(s) of: #> 2.173, 2.173 #> ℹ Fixing or mirroring `ln_kappa`"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"passing-the-model-to-tmbstan","dir":"Articles > Web_only","previous_headings":"","what":"Passing the model to tmbstan","title":"Bayesian estimation with sdmTMB","text":"Now can pass $tmb_obj element model tmbstan::tmbstan(). using 1000 iterations 2 chains vignette builds quickly. practice, likely want use (e.g., 2000 iterations, 4 chains). Sometimes may need adjust sampler settings : See Details section ?rstan::stan. can also ‘thin’ samples via thin argument working model predictions becomes cumbersome given large number required samples. can look model: Rhat values look reasonable (< 1.05). n_eff (number effective samples) values mostly look reasonable (> 100) inference mean parameters except intercept (b_j[1]). Furthermore, can see correlation MCMC samples b_j[1]. try running iterations chains /placing priors parameters described (highly recommended). Now can use various functions visualize posterior:","code":"fit_stan <- tmbstan::tmbstan( fit_mle$tmb_obj, iter = 1000, chains = 2, seed = 8217 # ensures repeatability ) tmbstan::tmbstan( ..., control = list(adapt_delta = 0.9, max_treedepth = 12) ) fit_stan #> Inference for Stan model: sdmTMB. #> 2 chains, each with iter=1000; warmup=500; thin=1; #> post-warmup draws per chain=500, total post-warmup draws=1000. #> #> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat #> b_j[1] 0.80 0.01 0.06 0.68 0.76 0.80 0.84 0.92 82 1.02 #> b_j[2] -0.40 0.00 0.01 -0.41 -0.40 -0.40 -0.39 -0.38 1747 1.00 #> ln_tau_O -1.67 0.01 0.14 -1.93 -1.76 -1.67 -1.57 -1.42 169 1.01 #> ln_phi -1.63 0.00 0.03 -1.69 -1.65 -1.63 -1.61 -1.56 1360 1.00 #> omega_s[1] -0.09 0.01 0.09 -0.26 -0.14 -0.09 -0.03 0.09 162 1.01 #> omega_s[2] -0.06 0.01 0.09 -0.25 -0.12 -0.06 0.01 0.11 196 1.01 #> omega_s[3] 0.01 0.01 0.10 -0.17 -0.05 0.01 0.08 0.20 196 1.01 #> omega_s[4] -0.21 0.01 0.09 -0.40 -0.27 -0.21 -0.15 -0.02 206 1.01 #> omega_s[5] -0.34 0.01 0.10 -0.53 -0.41 -0.33 -0.27 -0.13 247 1.00 #> omega_s[6] -0.08 0.01 0.10 -0.27 -0.15 -0.08 0.00 0.13 268 1.01 #> omega_s[7] -0.02 0.01 0.09 -0.19 -0.08 -0.02 0.04 0.15 172 1.01 #> omega_s[8] -0.23 0.01 0.10 -0.42 -0.29 -0.23 -0.16 -0.05 219 1.01 #> omega_s[9] -0.32 0.01 0.09 -0.50 -0.38 -0.32 -0.26 -0.13 166 1.02 #> omega_s[10] 0.29 0.01 0.09 0.11 0.23 0.28 0.35 0.46 147 1.01 #> omega_s[11] -0.16 0.01 0.09 -0.34 -0.22 -0.16 -0.09 0.02 208 1.01 #> omega_s[12] 0.00 0.01 0.10 -0.19 -0.07 0.01 0.07 0.21 205 1.01 #> omega_s[13] 0.19 0.01 0.09 0.02 0.13 0.19 0.25 0.36 166 1.01 #> omega_s[14] -0.09 0.01 0.10 -0.29 -0.16 -0.09 -0.03 0.11 253 1.01 #> omega_s[15] 0.22 0.01 0.09 0.06 0.16 0.22 0.28 0.40 152 1.01 #> omega_s[16] -0.02 0.01 0.10 -0.21 -0.08 -0.02 0.05 0.16 198 1.01 #> omega_s[17] -0.15 0.01 0.09 -0.34 -0.21 -0.14 -0.08 0.04 198 1.01 #> omega_s[18] -0.28 0.01 0.11 -0.50 -0.35 -0.28 -0.21 -0.09 270 1.00 #> omega_s[19] 0.00 0.01 0.10 -0.18 -0.06 0.00 0.07 0.19 211 1.01 #> omega_s[20] 0.03 0.01 0.08 -0.14 -0.03 0.02 0.09 0.19 180 1.01 #> omega_s[21] 0.08 0.01 0.10 -0.11 0.02 0.08 0.15 0.26 191 1.01 #> omega_s[22] -0.01 0.01 0.10 -0.21 -0.08 -0.01 0.05 0.17 212 1.00 #> omega_s[23] 0.12 0.01 0.09 -0.04 0.06 0.12 0.18 0.30 156 1.01 #> omega_s[24] 0.20 0.01 0.10 0.00 0.13 0.19 0.26 0.40 256 1.00 #> omega_s[25] 0.08 0.01 0.09 -0.09 0.01 0.07 0.14 0.26 167 1.01 #> omega_s[26] -0.01 0.01 0.10 -0.21 -0.08 -0.01 0.06 0.20 215 1.01 #> omega_s[27] -0.11 0.01 0.09 -0.30 -0.18 -0.10 -0.05 0.06 216 1.00 #> omega_s[28] 0.12 0.01 0.10 -0.08 0.05 0.11 0.18 0.32 229 1.00 #> omega_s[29] 0.30 0.01 0.09 0.12 0.23 0.30 0.36 0.47 212 1.01 #> omega_s[30] -0.04 0.01 0.09 -0.22 -0.10 -0.04 0.02 0.14 193 1.01 #> omega_s[31] 0.09 0.01 0.09 -0.08 0.04 0.09 0.15 0.26 154 1.01 #> omega_s[32] 0.05 0.01 0.12 -0.18 -0.02 0.05 0.14 0.28 244 1.01 #> omega_s[33] 0.08 0.01 0.09 -0.10 0.01 0.07 0.14 0.26 219 1.01 #> omega_s[34] 0.04 0.01 0.09 -0.13 -0.03 0.04 0.10 0.20 163 1.01 #> omega_s[35] 0.07 0.01 0.10 -0.10 0.00 0.07 0.14 0.26 230 1.01 #> omega_s[36] 0.14 0.01 0.09 -0.04 0.08 0.15 0.20 0.33 197 1.01 #> omega_s[37] 0.16 0.01 0.11 -0.06 0.09 0.16 0.24 0.39 275 1.00 #> omega_s[38] 0.12 0.01 0.10 -0.09 0.05 0.11 0.19 0.31 217 1.01 #> omega_s[39] -0.22 0.01 0.10 -0.40 -0.28 -0.22 -0.15 -0.04 186 1.01 #> omega_s[40] -0.03 0.01 0.09 -0.21 -0.09 -0.03 0.03 0.17 197 1.01 #> omega_s[41] 0.19 0.01 0.08 0.03 0.13 0.19 0.24 0.35 143 1.01 #> omega_s[42] 0.21 0.01 0.09 0.01 0.14 0.21 0.27 0.38 173 1.01 #> omega_s[43] 0.15 0.01 0.10 -0.04 0.07 0.15 0.21 0.35 221 1.01 #> omega_s[44] 0.14 0.01 0.10 -0.07 0.08 0.14 0.20 0.32 194 1.01 #> omega_s[45] 0.10 0.01 0.10 -0.10 0.02 0.10 0.16 0.30 248 1.00 #> omega_s[46] 0.06 0.01 0.10 -0.14 -0.01 0.06 0.12 0.26 187 1.01 #> omega_s[47] 0.31 0.01 0.09 0.13 0.24 0.31 0.37 0.50 166 1.01 #> omega_s[48] -0.24 0.01 0.10 -0.44 -0.31 -0.24 -0.18 -0.06 196 1.01 #> omega_s[49] 0.10 0.01 0.10 -0.10 0.04 0.10 0.17 0.32 255 1.01 #> omega_s[50] -0.09 0.01 0.09 -0.26 -0.14 -0.09 -0.03 0.08 178 1.01 #> omega_s[51] 0.25 0.01 0.11 0.04 0.17 0.25 0.32 0.48 247 1.01 #> omega_s[52] -0.21 0.01 0.11 -0.43 -0.29 -0.21 -0.14 -0.01 251 1.01 #> omega_s[53] 0.04 0.01 0.10 -0.16 -0.03 0.04 0.10 0.22 213 1.00 #> omega_s[54] 0.03 0.01 0.10 -0.16 -0.04 0.03 0.10 0.22 214 1.00 #> omega_s[55] -0.09 0.01 0.11 -0.30 -0.16 -0.09 -0.01 0.15 311 1.01 #> omega_s[56] -0.42 0.01 0.10 -0.62 -0.48 -0.41 -0.35 -0.24 229 1.01 #> omega_s[57] 0.01 0.01 0.11 -0.20 -0.07 0.00 0.08 0.24 274 1.00 #> omega_s[58] -0.21 0.01 0.10 -0.40 -0.28 -0.21 -0.14 -0.01 201 1.01 #> omega_s[59] 0.04 0.01 0.24 -0.43 -0.11 0.05 0.20 0.47 992 1.00 #> omega_s[60] -0.23 0.01 0.28 -0.78 -0.41 -0.23 -0.03 0.27 1087 1.00 #> omega_s[61] -0.26 0.01 0.24 -0.69 -0.41 -0.27 -0.10 0.20 662 1.00 #> omega_s[62] -0.26 0.01 0.23 -0.72 -0.42 -0.26 -0.11 0.19 693 1.00 #> omega_s[63] -0.27 0.01 0.23 -0.72 -0.43 -0.28 -0.12 0.18 807 1.00 #> omega_s[64] 0.08 0.01 0.22 -0.37 -0.07 0.09 0.23 0.51 866 1.00 #> omega_s[65] 0.17 0.01 0.22 -0.29 0.02 0.17 0.32 0.57 693 1.00 #> omega_s[66] 0.16 0.01 0.22 -0.27 0.02 0.16 0.31 0.60 525 1.00 #> omega_s[67] -0.03 0.01 0.22 -0.49 -0.17 -0.01 0.13 0.42 1154 1.00 #> omega_s[68] -0.02 0.01 0.25 -0.50 -0.17 -0.02 0.15 0.47 1152 1.00 #> omega_s[69] 0.00 0.01 0.22 -0.46 -0.15 0.00 0.15 0.43 458 1.01 #> omega_s[70] 0.01 0.01 0.21 -0.42 -0.13 0.01 0.15 0.40 431 1.00 #> omega_s[71] 0.17 0.01 0.24 -0.30 0.01 0.17 0.33 0.67 884 1.00 #> omega_s[72] -0.12 0.01 0.24 -0.62 -0.29 -0.11 0.04 0.35 1064 1.00 #> omega_s[73] -0.14 0.01 0.22 -0.58 -0.28 -0.15 0.01 0.30 600 1.00 #> omega_s[74] -0.14 0.01 0.22 -0.56 -0.29 -0.14 0.01 0.26 624 1.00 #> omega_s[75] -0.38 0.01 0.20 -0.76 -0.51 -0.38 -0.25 0.00 654 1.00 #> omega_s[76] 0.10 0.01 0.21 -0.31 -0.04 0.10 0.23 0.51 848 1.00 #> omega_s[77] 0.09 0.01 0.22 -0.34 -0.04 0.09 0.23 0.52 1053 1.00 #> omega_s[78] -0.06 0.01 0.21 -0.47 -0.19 -0.06 0.08 0.35 1693 1.00 #> omega_s[79] 0.06 0.01 0.16 -0.27 -0.05 0.06 0.17 0.37 622 1.00 #> omega_s[80] -0.18 0.01 0.23 -0.65 -0.33 -0.18 -0.02 0.27 632 1.00 #> omega_s[81] -0.07 0.01 0.20 -0.45 -0.20 -0.07 0.05 0.33 1165 1.00 #> omega_s[82] -0.14 0.01 0.21 -0.55 -0.28 -0.14 0.00 0.29 810 1.00 #> omega_s[83] -0.02 0.01 0.23 -0.47 -0.18 -0.01 0.14 0.44 1096 1.00 #> omega_s[84] 0.12 0.01 0.20 -0.26 -0.02 0.12 0.25 0.53 952 1.00 #> omega_s[85] -0.29 0.01 0.21 -0.68 -0.44 -0.30 -0.15 0.11 1111 1.00 #> lp__ 136.06 0.93 9.26 118.11 129.87 136.38 142.46 152.88 100 1.02 #> #> Samples were drawn using NUTS(diag_e) at Fri May 17 19:00:37 2024. #> For each parameter, n_eff is a crude measure of effective sample size, #> and Rhat is the potential scale reduction factor on split chains (at #> convergence, Rhat=1). plot(fit_stan) #> 'pars' not specified. Showing first 10 parameters by default. #> ci_level: 0.8 (80% intervals) #> outer_level: 0.95 (95% intervals) pars_plot <- c(\"b_j[1]\", \"b_j[2]\", \"ln_tau_O\", \"omega_s[1]\") bayesplot::mcmc_trace(fit_stan, pars = pars_plot) bayesplot::mcmc_pairs(fit_stan, pars = pars_plot)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"posterior-predictive-checks","dir":"Articles > Web_only","previous_headings":"","what":"Posterior predictive checks","title":"Bayesian estimation with sdmTMB","text":"can perform posterior predictive checks assess whether model can generate predictive data consistent observations. , can make use simulate.sdmTMB() passing Stan model. simulate.sdmTMB() take draws joint parameter posterior add observation error. need ensure nsim less equal total number post-warmup samples. See ?bayesplot::pp_check. solid line represents density observed data light blue lines represent density 50 posterior predictive simulations. case, simulated data seem consistent observed data.","code":"set.seed(19292) samps <- sdmTMBextra::extract_mcmc(fit_stan) s <- simulate(fit_mle, mcmc_samples = samps, nsim = 50) bayesplot::pp_check( sim_dat$observed, yrep = t(s), fun = bayesplot::ppc_dens_overlay )"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"plotting-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Plotting predictions","title":"Bayesian estimation with sdmTMB","text":"can make predictions Bayesian model supplying posterior samples mcmc_samples argument predict.sdmTMB(). output matrix row corresponds row predicted data column corresponds sample. can summarize draws various ways visualize : predict grid given value a1:","code":"pred <- predict(fit_mle, mcmc_samples = samps) dim(pred) #> [1] 500 1000 sim_dat$post_mean <- apply(pred, 1, mean) sim_dat$post_sd <- apply(pred, 1, sd) ggplot(sim_dat, aes(X, Y, colour = post_mean)) + geom_point() + scale_color_viridis_c() ggplot(sim_dat, aes(X, Y, colour = post_sd)) + geom_point() + scale_color_viridis_c() nd <- expand.grid( X = seq(0, 1, length.out = 70), Y = seq(0, 1, length.out = 70), a1 = 0 ) pred <- predict(fit_mle, newdata = nd, mcmc_samples = samps) nd$post_mean <- apply(pred, 1, mean) nd$post_sd <- apply(pred, 1, sd) ggplot(nd, aes(X, Y, fill = post_mean)) + geom_raster() + scale_fill_viridis_c() + coord_fixed() ggplot(nd, aes(X, Y, fill = post_sd)) + geom_raster() + scale_fill_viridis_c() + coord_fixed()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"extracting-parameter-posterior-samples","dir":"Articles > Web_only","previous_headings":"","what":"Extracting parameter posterior samples","title":"Bayesian estimation with sdmTMB","text":"can extract posterior samples rstan::extract(), result list element corresponds parameter set parameters: example calculating derived parameter, calculate marginal spatial random field standard deviation:","code":"post <- rstan::extract(fit_stan) names(post) #> [1] \"b_j\" \"ln_tau_O\" \"ln_phi\" \"omega_s\" \"lp__\" hist(post$b_j[, 1]) ln_kappa <- get_pars(fit_mle)$ln_kappa[1] # 2 elements since 2nd would be for spatiotemporal ln_tau_O <- post$ln_tau_O sigma_O <- 1 / sqrt(4 * pi * exp(2 * ln_tau_O + 2 * ln_kappa)) hist(sigma_O)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"extracting-the-posterior-of-other-predicted-elements","dir":"Articles > Web_only","previous_headings":"","what":"Extracting the posterior of other predicted elements","title":"Bayesian estimation with sdmTMB","text":"default predict.sdmTMB() returns overall prediction link space tmbstan model passed . instead want element might find usual data frame returned predict.sdmTMB() applied regular sdmTMB model, can specify sims_var argument. example, let’s extract spatial random field values \"omega_s\". options documented ?predict.sdmTMB().","code":"fit_pred <- predict( fit_mle, newdata = nd, mcmc_samples = samps, sims_var = \"omega_s\" #< ) nd$spatial_rf_mean <- apply(fit_pred, 1, mean) nd$spatial_rf_sd <- apply(fit_pred, 1, sd) ggplot(nd, aes(X, Y, fill = spatial_rf_mean)) + geom_raster() + scale_fill_gradient2() + coord_fixed() ggplot(nd, aes(X, Y, fill = spatial_rf_sd)) + geom_raster() + scale_fill_viridis_c() + coord_fixed()"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"overview","dir":"Articles > Web_only","previous_headings":"","what":"Overview","title":"Cross-validation for model evaluation and comparison","text":"Cross-validation one best approaches can used quantify model performance compare sdmTMB models different structures (unlike AIC, approach also factor uncertainty random effects). Arguably challenging decision implementing cross-validation specify folds (fold representing subset data turn held used test set). Folds may vary number data partitioned, likely slightly different application. goals sdmTMB applications may focused spatial prediction; include making prediction new spatial regions (e.g. unsampled areas areas sampled every year). types models recommend exploring folds using blockCV spatialsample packages (Valavi et al. 2019; Silge 2021). general, spatial sampling approaches assign observations spatially autocorrelated fold. Accounting spatial correlation can lead better estimates covariate effects, well prediction errors. Alternatively, goals analysis sdmTMB may evaluate predictive accuracy model time (e.g. missing survey year, prediction future years). retrospective analyses, points within year may assigned fold (groups years fold). contrast, models forward looking use Leave Future Cross-Validation (LFOCV). LFOCV, data year \\(t\\) used predict observations \\(t+1\\), etc.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"cross-validation-in-sdmtmb","dir":"Articles > Web_only","previous_headings":"","what":"Cross validation in sdmTMB","title":"Cross-validation for model evaluation and comparison","text":"Cross validation sdmTMB implemented using sdmTMB_cv() function, k_folds argument specifying number folds (defaults 8). function uses parallelization default future::plan() set, can turned parallel argument. example, folds assigned randomly—can modified specific spatial temporal applications. Without getting complexities blockCV spatialsample packages, simply use kmeans generate spatial clusters, e.g. similarly, clusters assigned time—, year unique fold. Note year included factor spatiotemporal fields turned estimated missing years.","code":"data(pcod) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) pcod$fyear <- as.factor(pcod$year) # Set parallel processing if desired: library(future) plan(multisession, workers = 2) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 4 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. clust <- kmeans(pcod[, c(\"X\", \"Y\")], 20)$cluster m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. clust <- as.numeric(as.factor(pcod$year)) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled), data = pcod, mesh = mesh, fold_ids = clust, spatiotemporal = \"off\", family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"measuring-model-performance","dir":"Articles > Web_only","previous_headings":"","what":"Measuring model performance","title":"Cross-validation for model evaluation and comparison","text":"Lots measures predictive accuracy can used evaluate model performance. default, sdmTMB_cv() returns list contains sum log likelihoods left-fold total summed across left-folds. roughly equivalent expected log predictive density (ELPD) Bayesian literature can interpreted predictive ability model new observations. can accessed , inspecting quantities across folds may help elucidate whether particular folds difficult predict.","code":"m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 4 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m_cv$fold_loglik # fold log-likelihood #> [1] -1720.122 -1756.138 -1502.946 -1661.257 m_cv$sum_loglik # total log-likelihood #> [1] -6640.463"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"single-splits","dir":"Articles > Web_only","previous_headings":"","what":"Single splits","title":"Cross-validation for model evaluation and comparison","text":"cases single test set evaluated (e.g., 10% data), using sdmTMB_cv() function may overkill two sdmTMB() models fit, using function may worthwhile reduce coding errors (log-likelihood calculations). example, assign two folds, randomly holding 10% observations test set (test set given ID = 1, training set given ID = 2). can ignore total log-likelihood, just focus first element list list:","code":"clust <- sample(1:2, size = nrow(pcod), replace = TRUE, prob = c(0.1, 0.9)) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\"), k_folds = length(unique(clust)) ) m_cv$fold_loglik[[1]] #> [1] -608.5838"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"comparing-two-or-more-models","dir":"Articles > Web_only","previous_headings":"","what":"Comparing two or more models","title":"Cross-validation for model evaluation and comparison","text":"can use output sdmTMB_cv() compare two models. example, wanted evaluate support depth effect , 10-fold cross validation (’s important folds across two models). example, using either predictive log-likelihood ELPD lead one conclude including depth improves predictive accuracy model.","code":"clust <- sample(seq_len(10), size = nrow(pcod), replace = TRUE) m1 <- sdmTMB_cv( density ~ 0 + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m2 <- sdmTMB_cv( density ~ 0 + fyear + s(depth_scaled), data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Compare log-likelihoods -- higher is better! m1$sum_loglik #> [1] -6748.929 m2$sum_loglik #> [1] -6596.481"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"model-ensembling","dir":"Articles > Web_only","previous_headings":"","what":"Model ensembling","title":"Cross-validation for model evaluation and comparison","text":"Finally, instead identifying single “best” models, may interested model averaging. sdmTMB package, ’ve implemented model stacking procedure described (Yao et al. 2018) sdmTMB_stacking() function. procedure uses optimization find normalized weights maximize total log-likelihood across models (metrics may also used). Inputs function list models (fictitious model_list), list element output call sdmTMB_cv(): default calculation uses data fold. instead, split data 10/90 split (example ), wouldn’t want use 2nd model fit generate weights. just wanted use predictions first fold onto 10% test set, specify using include_folds argument.","code":"weights <- sdmTMB_stacking(model_list) weights <- sdmTMB_stacking(model_list, include_folds = 1)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/delta-models.html","id":"example-with-built-in-delta-model","dir":"Articles > Web_only","previous_headings":"","what":"Example with built-in delta model","title":"Fitting delta (hurdle) models with sdmTMB","text":", show example fitting using built-delta functionality, well build model component separately combine. built-approach convenient, allows parameters shared across components, allows calculation derived quantities standardized indexes (get_index()) internally calculated standard errors. use dataset built sdmTMB package: trawl survey data Pacific Cod Queen Charlotte Sound, British Columbia, Canada. density units kg/km2. , X Y coordinates UTM zone 9. first create mesh use models. can fit model Pacific cod density using delta-gamma model, including smoothed effect depth. default built-delta models formula, spatial spatiotemporal structure, anisotropy shared two model components. However, elements (formula, spatial, spatiotemporal, share_range) can also specified independently model using list format within function argument (see examples ). first element list binomial component second element positive component (e.g., Gamma). elements must shared now (e.g., smoothers, spatially varying coefficients, time-varying coefficients). specify settings spatial spatiotemporal effects model component, create list settings within spatial spatiotemporal arguments. example, spatial = list(\"\", \"\"), spatiotemporal = list(\"\", \"rw\"). similarly specify different formula component model, using list(y ~ x1, y ~ x2) instance, include effect depth positive model, remove presence-absence model. However, currently limitations specifying separate formulas model component. two formulas : smoothers threshold effects random intercepts now, must specified single formula shared across two models. model component can similarly separate settings share_range, determines whether shared spatial spatiotemporal range parameter (TRUE) independent range parameters (FALSE), using list. Lastly, whether anisotropy included model determined logical argument anisotropy (.e., TRUE FALSE), separately specified model. anisotropy included, default shared across two model components. However can made unique model component using sdmTMBcontrol(map = ...) adding argument control fitting model. ‘maps’ anisotropy parameters unique across model components. fit delta model, can evaluate plot output, diagnostics, predictions similar sdmTMB models. printed model output show estimates standard errors parameters model separately. Using tidy() function turn sdmTMB model output data frame, argument model=1 model=2 specify model component extract dataframe. See tidy.sdmTMB() additional arguments options. built-delta models, default function return estimated response parameters grid cell model separately, notated 1 (presence/absence model) 2 (positive catch model) column name. See predict.sdmTMB() description values data frame. can use predictions built-delta model (making sure return_tmb_object=TRUE) get index values using get_index() function. can used predictions include first second models (.e., using default specifying model argument) predictions generated using model=NA. get_index() function automatically combine predictions first second model calculating index values. modelling purposes creating index see vignette Index standardization sdmTMB. can plot conditional effects covariates (depth example model) using package visreg specifying model component model=1 presence-absence model model=2 positive catch model. Currently, plotting effects built-delta models ggeffects supported. See vignette using visreg sdmTMB information. built-delta models can also evaluated residuals() functions sdmTMB. Similarly generating predictions, can specify model components want return residuals using model argument specifying =1 =2. See residuals.sdmTMB() additional options evaluating residuals sdmTMB models. can also simulate new observations fitted delta model. functions, can specify model simulate using argument model=1 presence/absence, model=2 positive catches, model=NA combined predictions. See simulate.sdmTMB() details simulation options.","code":"pcod_mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 15) fit_dg <- sdmTMB(density ~ 1 + s(depth), data = pcod, mesh = pcod_mesh, time = \"year\", family = delta_gamma() ) print(fit_dg) #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 1 + s(depth) #> Mesh: pcod_mesh (isotropic covariance) #> Time column: year #> Data: pcod #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.34 0.61 #> sdepth 1.28 2.91 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 14.38 #> #> Matérn range: 61.41 #> Spatial SD: 1.71 #> Spatiotemporal IID SD: 0.81 #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 3.67 0.12 #> sdepth 0.31 1.29 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 5.41 #> #> Dispersion parameter: 1.03 #> Matérn range: 14.80 #> Spatial SD: 0.69 #> Spatiotemporal IID SD: 1.45 #> #> ML criterion at convergence: 6126.400 #> #> See ?tidy.sdmTMB to extract these values as a data frame. tidy(fit_dg) # model = 1 is default #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.343 0.614 tidy(fit_dg, model = 1) #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.343 0.614 tidy(fit_dg, model = 1, \"ran_pars\", conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 61.4 14.1 39.2 96.3 #> 2 sigma_O 1.71 0.265 1.26 2.32 #> 3 sigma_E 0.806 0.142 0.570 1.14 tidy(fit_dg, model = 2) #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) 3.67 0.120 tidy(fit_dg, model = 2, \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 14.8 5.02 7.62 28.8 #> 2 phi 1.03 0.0502 0.939 1.14 #> 3 sigma_O 0.691 0.228 0.361 1.32 #> 4 sigma_E 1.45 0.336 0.919 2.28 grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) p <- predict(fit_dg, newdata = grid_yrs) str(p) #> 'data.frame': 65826 obs. of 16 variables: #> $ X : num 456 458 460 462 464 466 468 470 472 474 ... #> $ Y : num 5636 5636 5636 5636 5636 ... #> $ depth : num 347 223 204 183 183 ... #> $ depth_scaled : num 1.561 0.57 0.363 0.126 0.122 ... #> $ depth_scaled2: num 2.4361 0.3246 0.132 0.0158 0.0149 ... #> $ year : int 2003 2003 2003 2003 2003 2003 2003 2003 2003 2003 ... #> $ est1 : num -5.804 -0.796 0.021 0.87 0.98 ... #> $ est2 : num 3.2 3.71 4.02 4.39 4.43 ... #> $ est_non_rf1 : num -5.508 -0.598 0.12 0.871 0.882 ... #> $ est_non_rf2 : num 2.83 3.31 3.59 3.94 3.94 ... #> $ est_rf1 : num -0.296138 -0.197484 -0.09883 -0.000177 0.098477 ... #> $ est_rf2 : num 0.368 0.398 0.428 0.459 0.489 ... #> $ omega_s1 : num -0.00543 0.09317 0.19178 0.29039 0.38899 ... #> $ omega_s2 : num 0.108 0.119 0.129 0.139 0.15 ... #> $ epsilon_st1 : num -0.291 -0.291 -0.291 -0.291 -0.291 ... #> $ epsilon_st2 : num 0.26 0.28 0.299 0.319 0.339 ... p2 <- predict(fit_dg, newdata = grid_yrs, return_tmb_object = TRUE) ind_dg <- get_index(p2, bias_correct = FALSE) visreg_delta(fit_dg, xvar = \"depth\", model = 1, gg = TRUE) #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. visreg_delta(fit_dg, xvar = \"depth\", model = 2, gg = TRUE) simulations <- simulate(fit_dg, nsim = 5, seed = 5090, model = NA)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/delta-models.html","id":"delta-models-by-fitting-two-components-separately-and-combining-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Delta models by fitting two components separately and combining predictions","title":"Fitting delta (hurdle) models with sdmTMB","text":"Next, show example implement delta-gamma model sdmTMB, component fit separately combined. approach gives maximum flexibility model lets develop time. limitations calculating index abundance want share parameters. necessary use mesh models, one can updating first mesh match reduced data frame shown : delta-gamma model similar Tweedie model Intro modelling sdmTMB vignette, except use s() depth effect. One can use different covariates model, case just let depth effect wiggly specifying k = 3. Next, need way combining predictions across two models. need point predictions, can just multiply predictions two models applying inverse link: measure uncertainty required, can simulate joint parameter precision matrix using predict() function number simulations selected (e.g., sims = 500). predictions come simulated draws parameter covariance matrix, predictions become consistent larger number draws. However, greater number draws takes longer calculate use memory (larger matrix), fewer draws (~100) may fine experimentation. larger number (say ~1000) may appropriate final model runs. p_combined_sim matrix row row data predicted width nsim. can process matrix however like. can save median predictions upper lower 95% confidence intervals: can calculate spatial uncertainty:","code":"glimpse(pcod) #> Rows: 2,143 #> Columns: 12 #> $ year 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 20… #> $ X 446.4752, 446.4594, 448.5987, 436.9157, 420.6101, 417.71… #> $ Y 5793.426, 5800.136, 5801.687, 5802.305, 5771.055, 5772.2… #> $ depth 201, 212, 220, 197, 256, 293, 410, 387, 285, 270, 381, 1… #> $ density 113.138476, 41.704922, 0.000000, 15.706138, 0.000000, 0.… #> $ present 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,… #> $ lat 52.28858, 52.34890, 52.36305, 52.36738, 52.08437, 52.094… #> $ lon -129.7847, -129.7860, -129.7549, -129.9265, -130.1586, -… #> $ depth_mean 5.155194, 5.155194, 5.155194, 5.155194, 5.155194, 5.1551… #> $ depth_sd 0.4448783, 0.4448783, 0.4448783, 0.4448783, 0.4448783, 0… #> $ depth_scaled 0.3329252, 0.4526914, 0.5359529, 0.2877417, 0.8766077, 1… #> $ depth_scaled2 0.11083919, 0.20492947, 0.28724555, 0.08279527, 0.768440… mesh1 <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 20) # coarse for vignette speed dat2 <- subset(pcod, density > 0) mesh2 <- make_mesh(dat2, xy_cols = c(\"X\", \"Y\"), mesh = mesh1$mesh ) m1 <- sdmTMB( formula = present ~ 0 + as.factor(year) + s(depth, k = 3), data = pcod, mesh = mesh1, time = \"year\", family = binomial(link = \"logit\"), spatiotemporal = \"iid\", spatial = \"on\" ) m1 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: present ~ 0 + as.factor(year) + s(depth, k = 3) #> Mesh: mesh1 (isotropic covariance) #> Time column: year #> Data: pcod #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> as.factor(year)2003 -0.76 0.42 #> as.factor(year)2004 -0.40 0.42 #> as.factor(year)2005 -0.42 0.42 #> as.factor(year)2007 -1.40 0.42 #> as.factor(year)2009 -1.16 0.42 #> as.factor(year)2011 -1.56 0.42 #> as.factor(year)2013 -0.38 0.42 #> as.factor(year)2015 -0.65 0.42 #> as.factor(year)2017 -1.56 0.42 #> sdepth -5.66 0.50 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 85.9 #> #> Matérn range: 28.70 #> Spatial SD: 1.89 #> Spatiotemporal IID SD: 0.90 #> ML criterion at convergence: 1054.414 #> #> See ?tidy.sdmTMB to extract these values as a data frame. m2 <- sdmTMB( formula = density ~ 0 + as.factor(year) + s(depth), data = dat2, mesh = mesh2, time = \"year\", family = Gamma(link = \"log\"), spatiotemporal = \"iid\", spatial = \"on\" ) m2 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) + s(depth) #> Mesh: mesh2 (isotropic covariance) #> Time column: year #> Data: dat2 #> Family: Gamma(link = 'log') #> #> coef.est coef.se #> as.factor(year)2003 4.06 0.20 #> as.factor(year)2004 4.22 0.20 #> as.factor(year)2005 4.19 0.20 #> as.factor(year)2007 3.38 0.20 #> as.factor(year)2009 3.71 0.21 #> as.factor(year)2011 4.51 0.21 #> as.factor(year)2013 4.02 0.19 #> as.factor(year)2015 4.13 0.20 #> as.factor(year)2017 3.84 0.22 #> sdepth -0.28 0.36 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 1.89 #> #> Dispersion parameter: 0.94 #> Matérn range: 0.01 #> Spatial SD: 727.51 #> Spatiotemporal IID SD: 2065.54 #> ML criterion at convergence: 5102.136 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** pred <- grid_yrs # use the grid as template for saving our predictions p_bin <- predict(m1, newdata = grid_yrs) p_pos <- predict(m2, newdata = grid_yrs) p_bin_prob <- m1$family$linkinv(p_bin$est) p_pos_exp <- m2$family$linkinv(p_pos$est) pred$est_exp <- p_bin_prob * p_pos_exp set.seed(28239) p_bin_sim <- predict(m1, newdata = grid_yrs, nsim = 100) p_pos_sim <- predict(m2, newdata = grid_yrs, nsim = 100) p_bin_prob_sim <- m1$family$linkinv(p_bin_sim) p_pos_exp_sim <- m2$family$linkinv(p_pos_sim) p_combined_sim <- p_bin_prob_sim * p_pos_exp_sim pred$median <- apply(p_combined_sim, 1, median) plot(pred$est_exp, pred$median) ggplot(subset(pred, year == 2017), aes(X, Y, fill = median)) + geom_raster() + coord_fixed() + scale_fill_viridis_c(trans = \"sqrt\") pred$cv <- apply(p_combined_sim, 1, function(x) sd(x) / mean(x)) ggplot(subset(pred, year == 2017), aes(X, Y, fill = cv)) + # 2017 as an example geom_raster() + coord_fixed() + scale_fill_viridis_c(trans = \"log10\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/ggeffects.html","id":"example-with-pacific-cod-presence","dir":"Articles > Web_only","previous_headings":"","what":"Example with Pacific cod presence","title":"Visualizing marginal effects in sdmTMB models with ggeffects","text":"start, use Pacific cod example data. fit model fish presence/absence covariates depth fixed effect year using Tweedie distribution. can use ggeffects::ggeffect() see effect depth probability Pacific cod present. can control range interval depths predicted within function (e.g. [0:500 =1]). can also plot effects year. can add data points can also use ggeffect plot multiple variables listing terms = c(), first term listed indicating variable plotted x-axis, remaining listed terms (four total) indicating groups. Adding facet = TRUE show year separate plot, instead overlain one plot. Adding facet = TRUE show year separate plot, instead overlain one plot. can also use make ggplot plot calling ggeffects object dat data frame. Plotting using continuous response (density) rather presence-similar. instance: can fit model interaction two continuous variables: plotting two continuous variables, ggeffect() make non-target (2nd) variable discrete selecting different levels. specify levels rather letting ggeffect() choose , use brackets selected values within term list, instance","code":"pcod$fyear <- as.factor(pcod$year) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 20) fit <- sdmTMB(present ~ poly(depth, 2) + fyear, data = pcod, mesh = mesh, spatial = \"on\", family = binomial() ) g <- ggeffect(fit, \"depth [0:500 by=1]\") plot(g) g2 <- ggeffect(fit, \"fyear\") plot(g2) plot(g, add.data = TRUE) #> Data points may overlap. Use the `jitter` argument to add some amount of #> random variation to the location of data points and avoid overplotting. dat <- ggeffect(fit, terms = c(\"depth [0:350 by=5]\", \"fyear\")) plot(dat) plot(dat, facet = TRUE) ggplot(dat, aes(x, predicted, colour = group)) + geom_line() g5 <- ggeffect(fit3, terms = c(\"depth_scaled [-3:2.7 by=0.01]\", \"numeric_year\")) plot(g5) plot(g5, facet = TRUE) g6 <- ggeffect(fit3, terms = c(\"depth_scaled [-3:2.7 by=0.01]\", \"numeric_year [1,7,15]\")) plot(g6)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"introduction","dir":"Articles > Web_only","previous_headings":"","what":"Introduction","title":"Poisson-link delta models","text":"Jim Thorson introduced Poisson-link delta model CJFAS paper (Thorson 2018). ’s useful model family dealing positive continuous data zeroes. can used circumstances use Tweedie traditional delta-gamma delta-lognormal model logit log links. Poisson-link delta formulation describes go linear predictors link space expected values entered data likelihood. likelihood first component Bernoulli (.e., binomial single trials) likelihood second component can gamma lognormal. sdmTMB, families specified delta_gamma(type = \"poisson-link\") delta_lognormal(type = \"poisson-link\").","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"the-model","dir":"Articles > Web_only","previous_headings":"","what":"The model","title":"Poisson-link delta models","text":"Thorson (2018) describes process model : \\[ \\begin{aligned} p &= 1 - \\exp(-n),\\\\ r &= \\frac{n w}{p}, \\end{aligned} \\] \\(p\\) represents encounter probability, \\(n\\) represents group numbers density, \\(r\\) represents positive catch rate (.e., catch rate given encounter), \\(w\\) represents weight per group. linear predictors represent log group numbers density (\\(\\log (n)\\)) log weight per group (\\(\\log (w)\\)): \\[ \\begin{aligned} \\log (n) &= \\boldsymbol{X_1} \\boldsymbol{\\beta_1} + \\ldots,\\\\ \\log (w) &= \\boldsymbol{X_2} \\boldsymbol{\\beta_2} + \\ldots, \\end{aligned} \\] \\(\\boldsymbol{X}\\)s represent design matrices, \\(\\boldsymbol{\\beta}\\)s represent coefficient vectors, \\(\\ldots\\) represents possible model components linear link space including random fields. transformed process equations generate \\(p\\) \\(r\\). model evaluates following likelihood components. encounter probability \\(p\\) \\[ \\operatorname{Bernoulli} (p), \\] equivalently \\[ \\operatorname{Binomial} (1, p), \\] positive rate \\(r\\), either gamma lognormal likelihood \\[ \\operatorname{Gamma} \\left( \\phi, \\frac{r}{\\phi} \\right), \\] \\(\\phi\\) represents gamma shape \\(r / \\phi\\) represents scale, \\[ \\operatorname{Lognormal} \\left( \\log (r) - \\frac{\\phi^2}{2}, \\phi^2 \\right), \\] \\(\\log (r) - \\frac{\\phi^2}{2}\\) represents bias-corrected log mean \\(\\phi\\) represents standard deviation log-space.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"data","dir":"Articles > Web_only","previous_headings":"An example","what":"Data","title":"Poisson-link delta models","text":"work Pacific Spiny Dogfish observations trawl survey west coast Vancouver Island, Canada. dataset dogfish contained within sdmTMB package.","code":"library(ggplot2) theme_set(theme_light()) library(dplyr) library(sdmTMB) dogfish$log_depth <- log(dogfish$depth) head(dogfish) #> # A tibble: 6 × 10 #> year longitude latitude X Y present catch_weight area_swept depth #> #> 1 2004 -125. 48.7 780. 5399. 1 22.7 0.103 73 #> 2 2004 -126. 48.2 735. 5346. 0 0 0.103 455 #> 3 2004 -126. 48.3 738. 5355. 0 0 0.116 171 #> 4 2004 -126. 48.3 749. 5354. 1 221. 0.122 137 #> 5 2004 -126. 48.4 744. 5362. 1 440. 0.0964 140 #> 6 2004 -126. 48.4 737. 5362. 1 48.2 0.122 145 #> # ℹ 1 more variable: log_depth mesh <- make_mesh(dogfish, c(\"X\", \"Y\"), cutoff = 10)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"a-conventional-delta-gamma-model","dir":"Articles > Web_only","previous_headings":"An example","what":"A conventional delta-gamma model:","title":"Poisson-link delta models","text":"First, lets fit conventional delta-gamma model logit log links illustrate limitation. can show effect depth catch weight? one curve, two components use different links (logit + log), different catch-weight depth relationship depending expected catch weight coefficients (year also given point space spatial random field). example, curves look different years: one curve! depends value year every point space different random field value.","code":"fit_dg <- sdmTMB(catch_weight ~ 0 + as.factor(year) + s(log_depth), family = delta_gamma(), spatial = \"on\", mesh = mesh, data = dogfish, anisotropy = FALSE, reml = TRUE, offset = log(dogfish$area_swept), silent = FALSE ) sanity(fit_dg) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameters don't look unreasonably large nd <- expand.grid( log_depth = seq(min(dogfish$log_depth), max(dogfish$log_depth), length.out = 200), year = as.factor(unique(dogfish$year)) ) p <- predict(fit_dg, newdata = nd, re_form = NA) ggplot(p, aes(log_depth, log(plogis(est1) * exp(est2)), colour = year)) + geom_line() + ylab(\"log expected catch weight\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"a-poisson-link-delta-gamma-alternative","dir":"Articles > Web_only","previous_headings":"An example","what":"A Poisson-link-delta-gamma alternative","title":"Poisson-link delta models","text":"Instead, let’s fit Poisson-link delta-gamma model: make plot: Note lines now parallel. predictors shift curve affect shape combined prediction use log link.","code":"fit_dpg <- sdmTMB(catch_weight ~ 0 + as.factor(year) + s(log_depth), family = delta_gamma(type = \"poisson-link\"), spatial = \"on\", mesh = mesh, data = dogfish, anisotropy = TRUE, reml = TRUE, offset = log(dogfish$area_swept), silent = FALSE ) sanity(fit_dpg) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameters don't look unreasonably large summary(fit_dpg) #> Spatial model fit by REML ['sdmTMB'] #> Formula: catch_weight ~ 0 + as.factor(year) + s(log_depth) #> Mesh: mesh (anisotropic covariance) #> Data: dogfish #> Family: delta_gamma(link1 = 'log', link2 = 'log', type = 'poisson-link') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'log') #> coef.est coef.se #> as.factor(year)2004 1.96 0.77 #> as.factor(year)2006 2.89 0.77 #> as.factor(year)2008 2.57 0.76 #> as.factor(year)2010 2.43 0.77 #> as.factor(year)2012 1.94 0.76 #> as.factor(year)2014 1.93 0.76 #> as.factor(year)2016 2.20 0.76 #> as.factor(year)2018 2.03 0.76 #> as.factor(year)2021 1.18 0.76 #> as.factor(year)2022 1.75 0.76 #> slog_depth 0.15 0.54 #> #> Smooth terms: #> Std. Dev. #> sds(log_depth) 2.38 #> #> Matérn anisotropic range (spatial): 26.1 to 381.1 at 142 deg. #> Spatial SD: 1.18 #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> as.factor(year)2004 3.59 0.37 #> as.factor(year)2006 2.78 0.33 #> as.factor(year)2008 2.47 0.32 #> as.factor(year)2010 3.50 0.34 #> as.factor(year)2012 2.77 0.33 #> as.factor(year)2014 2.45 0.33 #> as.factor(year)2016 2.09 0.32 #> as.factor(year)2018 2.60 0.32 #> as.factor(year)2021 1.69 0.33 #> as.factor(year)2022 1.98 0.33 #> slog_depth -0.20 0.82 #> #> Smooth terms: #> Std. Dev. #> sds(log_depth) 5.09 #> #> Dispersion parameter: 0.59 #> Matérn anisotropic range (spatial): 4.2 to 60.8 at 142 deg. #> Spatial SD: 1.97 #> #> REML criterion at convergence: 5851.613 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> See ?plot_anisotropy to plot the anisotropic range. p_dpg <- predict(fit_dpg, newdata = nd, re_form = NA) ggplot(p_dpg, aes(log_depth, est1 + est2, colour = year)) + geom_line() + ylab(\"log expected catch weight\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"examining-the-model-components-and-how-they-combine","dir":"Articles > Web_only","previous_headings":"An example","what":"Examining the model components and how they combine","title":"Poisson-link delta models","text":"’ll make predictions across depths single year simplicity: can extract components theoretical deconstruction catch group numbers density, weight per group, encounter probability, positive rate: can come overall predictions two ways: n * w: group numbers \\(\\times\\) weight per group. equivalently exp(est1 + est2), est1 est2 linear predictors link space. p * r: encounter probability \\(\\times\\) positive catch rate. give identical answers: Let’s plot components possible combinations:","code":"nd2010 <- dplyr::filter(nd, year == 2010) p_pdg <- predict(fit_dpg, newdata = nd2010, re_form = NA) n <- exp(p_pdg$est1) w <- exp(p_pdg$est2) p <- 1 - exp(-n) r <- (n * w) / p lims <- c(0, max(p * r)) plot(n * w, p * r, xlim = lims, ylim = lims) abline(0, 1) g1 <- ggplot(p_pdg, aes(log_depth, n)) + geom_line() + ggtitle(\"Expected group density\") g2 <- ggplot(p_pdg, aes(log_depth, w)) + geom_line() + ggtitle(\"Expected weight per group\") g3 <- ggplot(p_pdg, aes(log_depth, p)) + geom_line() + ylim(0, 1) + ggtitle(\"Expected encounter probability\") g4 <- ggplot(p_pdg, aes(log_depth, r)) + geom_line() + ggtitle(\"Expected catch given encounter\") g5 <- ggplot(p_pdg, aes(log_depth, n * w)) + geom_line() + ggtitle(\"Expected catch\") g6 <- ggplot(p_pdg, aes(log_depth, p * r)) + geom_line() + ggtitle(\"Expected catch\") cowplot::plot_grid(g1, g2, g3, g4, g5, g6, ncol = 2)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-is-a-group-and-how-does-the-model-know-about-numbers","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What is a ‘group’ and how does the model know about numbers!?","title":"Poisson-link delta models","text":"model represents process groups fish (observations, course) encountered certain numbers (“group numbers density”) group certain weight (“weight per group”). theoretical construct reflecting model can best parse two components according properties observed data. Since predicted response value \\(n \\cdot w\\), can get value multiplying \\(n\\) dividing \\(w\\) amount. numbers less weight per group fewer numbers weight per group get place. However, balance two, given covariates random effects, best fits data entered likelihood \\(p\\) \\(r\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-is-the-connection-to-the-complementary-log-log-link-cloglog-and-the-poisson","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What is the connection to the complementary log-log link (‘cloglog’) and the Poisson?","title":"Poisson-link delta models","text":"Wikipedia: “cloglog model corresponds applications observe either zero events (e.g., defects) one , number events assumed follow Poisson distribution.” following based around entry. Poisson assumes probability observing zero given expected number \\(n\\) \\(\\exp(-n)\\). .e., \\[ \\mathrm{Pr}(0) = \\exp(-n) \\] \\(p\\) probability observing non-zero (.e., encounter), \\[ \\exp(-n) = 1 - p = \\mathrm{Pr}(0). \\] can re-arrange \\[ n = -\\log(1 - p). \\] since want linear predictor take values negative positive infinity (therefore keep predicted number densities positive exponentiating ), work log space: \\[ \\log (n) = \\log(-\\log(1 - p)). \\] right side known ‘cloglog’ link function. link following inverse link function: \\[ p = 1 - \\exp(-\\exp(\\log n)). \\] can check R: can see cloglog inverse link first part Poisson-link delta model. However, ‘trick’ group density \\(n\\) affects encounter probability \\(p\\) (shown ) positive catch rates \\(r\\): \\[ r = \\frac{n w}{p}. \\] , going linear predictors (log links) expected values going data likelihood (binomial + lognormal/gamma), first linear predictor plays double duty appears delta model expected values.","code":"p <- 0.78 log_n <- log(-log(1 - p)) log_n #> [1] 0.4148395 1 - exp(-exp(log_n)) #> [1] 0.78"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-are-the-advantages-of-using-such-a-model","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What are the advantages of using such a model?","title":"Poisson-link delta models","text":"poisson-link families flexibility delta model, practice often helpful better predictions. checked AIC, better yet, cross validation. Like delta models, decomposition process two theoretical parts. can help interpretation (can make things complicated interpret!). , parts can rearranged represent two ways thinking two components (\\(n\\) \\(w\\) \\(p\\) \\(r\\)). Compared traditional delta-gamma model logit log link, two linear predictors log links, coefficients interpretable multiplicative effects, effects can combined. E.g., coefficients can added log space predictions can added log space generate single response curve given predictor.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"where-does-the-offset-come-in","dir":"Articles > Web_only","previous_headings":"FAQ","what":"Where does the offset come in?","title":"Poisson-link delta models","text":"offset added linear predictor \\(\\log n\\), .e., exp(offset) * n. example \\(\\) represents area swept (measure effort) log area swept entered model ‘offset’, , \\[ p = 1 - \\exp(-\\cdot n). \\] Therefore, encounter probability goes 1 area swept (effort) underlying group numbers density increase towards infinity. gets carried positive rate \\(r\\) via \\(p\\) \\(r = nw/p\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"why-call-it-a-poisson-link","dir":"Articles > Web_only","previous_headings":"FAQ","what":"Why call it a Poisson-link?","title":"Poisson-link delta models","text":"can guess. cloglog function derived theory Poisson although cloglog function appears ‘Poisson-link’ model, interaction two model components makes different pure cloglog assume needed another name.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"these-equations-dont-look-anything-like-the-sdmtmb-source-code","dir":"Articles > Web_only","previous_headings":"FAQ","what":"These equations don’t look anything like the sdmTMB source code!","title":"Poisson-link delta models","text":"’s calculations done log space computational stability calculations fastest stable done slightly differently easily described equations .","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"residual-checking-with-worked-examples","dir":"Articles > Web_only","previous_headings":"","what":"Residual checking with worked examples","title":"Residual checking with sdmTMB","text":"start data simulated scratch. simulate NB2 negative binomial observation model, spatial random field, intercept, one predictor named ‘a1’ linear effect observed data. Next, fit model configurations various families predictors. first model use Poisson instead NB2. 2nd model match simulated data. third model missing ‘a1’ predictor. ’ll use penalized complexity (PC) prior Matérn parameters aid estimation. can see just looking fits Poisson model inflates spatial random field standard deviation (SD) compared truth. model missing ‘a1’ predictor lesser degree.","code":"library(sdmTMB) set.seed(1) predictor_dat <- data.frame(X = runif(1000), Y = runif(1000), a1 = rnorm(1000)) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, mesh = mesh, family = nbinom2(link = \"log\"), phi = 0.4, range = 0.4, sigma_O = 0.4, seed = 1, B = c(0.2, 0.8) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. pc <- pc_matern(range_gt = 0.1, sigma_lt = 1) fit_pois <- sdmTMB(observed ~ 1 + a1, data = dat, family = poisson(), mesh = mesh, priors = sdmTMBpriors(matern_s = pc)) fit_pois #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 + a1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: poisson(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.27 0.17 #> a1 0.82 0.02 #> #> Matérn range: 0.12 #> Spatial SD: 1.20 #> ML criterion at convergence: 2887.957 #> #> See ?tidy.sdmTMB to extract these values as a data frame. fit_nb2 <- update(fit_pois, family = nbinom2()) fit_nb2 #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 + a1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.52 0.14 #> a1 0.75 0.06 #> #> Dispersion parameter: 0.41 #> Matérn range: 0.29 #> Spatial SD: 0.42 #> ML criterion at convergence: 1735.452 #> #> See ?tidy.sdmTMB to extract these values as a data frame. fit_nb2_miss <- update(fit_nb2, formula. = observed ~ 1) fit_nb2_miss #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.77 0.14 #> #> Dispersion parameter: 0.30 #> Matérn range: 0.21 #> Spatial SD: 0.56 #> ML criterion at convergence: 1817.332 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"analytical-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"Analytical randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"randomized quantile residuals fixed effect MLEs (Maximum Likelihood Estimates) random effects taken single sample approximate distribution (details ): use randomized quantile approach Dunn Smyth (1996). also known PIT (probability-integral-transform) residuals. apply randomization integer response values, transform residuals using distribution function (e.g., pnorm()) reflect uniform(0, 1) distribution, transform values normal(0, 1) consistent model. can see source code https://github.com/pbs-assess/sdmTMB/blob/master/R/residuals.R can see likely issues Poisson model tails.","code":"set.seed(123) rq_res <- residuals(fit_pois, type = \"mle-mvn\") rq_res <- rq_res[is.finite(rq_res)] # some Inf qqnorm(rq_res);abline(0, 1) set.seed(123) rq_res <- residuals(fit_nb2, type = \"mle-mvn\") qqnorm(rq_res);abline(0, 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"mcmc-based-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"MCMC-based randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"approach assumes observation random effects can approximated multivariate normal distribution. want relax assumption, can sample random effects MCMC fixed effects held MLEs. sdmTMBextra::predict_mle_mcmc() function sdmTMBextra.","code":"set.seed(123) samps <- sdmTMBextra::predict_mle_mcmc(fit_nb2, mcmc_iter = 800, mcmc_warmup = 400) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.000962 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.62 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: Iteration: 1 / 800 [ 0%] (Warmup) #> Chain 1: Iteration: 80 / 800 [ 10%] (Warmup) #> Chain 1: Iteration: 160 / 800 [ 20%] (Warmup) #> Chain 1: Iteration: 240 / 800 [ 30%] (Warmup) #> Chain 1: Iteration: 320 / 800 [ 40%] (Warmup) #> Chain 1: Iteration: 400 / 800 [ 50%] (Warmup) #> Chain 1: Iteration: 401 / 800 [ 50%] (Sampling) #> Chain 1: Iteration: 480 / 800 [ 60%] (Sampling) #> Chain 1: Iteration: 560 / 800 [ 70%] (Sampling) #> Chain 1: Iteration: 640 / 800 [ 80%] (Sampling) #> Chain 1: Iteration: 720 / 800 [ 90%] (Sampling) #> Chain 1: Iteration: 800 / 800 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 6.724 seconds (Warm-up) #> Chain 1: 4.763 seconds (Sampling) #> Chain 1: 11.487 seconds (Total) #> Chain 1: mcmc_res <- residuals(fit_nb2, type = \"mle-mcmc\", mcmc_samples = samps) qqnorm(mcmc_res) abline(0, 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"simulation-based-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"Simulation-based randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"can also take simulations fitted model use simulation-based randomized quantile residuals: return matrix row represents row data column simulation draw: can look whether fitted models consistent observed number zeros: obviously zeros data simulated Poisson model NB2 model seems reasonable. Plot DHARMa residuals: also return DHARMa object, lets us use DHARMa tools: QQ residual plots clearly see evidence overdispersion compared Poisson. Note values clumping near 1.0 observed axis deviating downwards towards 0.0 observed. indicative many zeros variance scaling rapidly mean (resulting large outlying value) Poisson distribution. Lets try correct model: Everything looks fine. model missing predictor? plot right represents simulated residuals prediction without random effects, just intercept. Lets try plotting residuals missing predictor: can see trend residuals ‘a1’ since missed including model. can also see difference log likelihood AIC: AIC also supports including ‘a1’ predictor. help interpreting DHARMa residual plots, see vignette(\"DHARMa\", package=\"DHARMa\").","code":"s_pois <- simulate(fit_pois, nsim = 500, type = \"mle-mvn\") s_nb2_miss <- simulate(fit_nb2_miss, nsim = 500, type = \"mle-mvn\") s_nb2 <- simulate(fit_nb2, nsim = 500, type = \"mle-mvn\") dim(s_pois) #> [1] 1000 500 sum(dat$observed == 0) / length(dat$observed) #> [1] 0.527 sum(s_pois == 0)/length(s_pois) #> [1] 0.292788 sum(s_nb2 == 0)/length(s_nb2) #> [1] 0.524644 dharma_residuals(s_pois, fit_pois) r_pois <- dharma_residuals(s_pois, fit_pois, return_DHARMa = TRUE) plot(r_pois) DHARMa::testResiduals(r_pois) #> $uniformity #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: simulationOutput$scaledResiduals #> D = 0.23338, p-value < 2.2e-16 #> alternative hypothesis: two-sided #> #> #> $dispersion #> #> DHARMa nonparametric dispersion test via sd of residuals fitted vs. #> simulated #> #> data: simulationOutput #> dispersion = 8.6989, p-value < 2.2e-16 #> alternative hypothesis: two.sided #> #> #> $outliers #> #> DHARMa outlier test based on exact binomial test with approximate #> expectations #> #> data: simulationOutput #> outliers at both margin(s) = 111, observations = 1000, p-value < #> 2.2e-16 #> alternative hypothesis: true probability of success is not equal to 0.003992016 #> 95 percent confidence interval: #> 0.09219791 0.13212606 #> sample estimates: #> frequency of outliers (expected: 0.00399201596806387 ) #> 0.111 #> $uniformity #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: simulationOutput$scaledResiduals #> D = 0.23338, p-value < 2.2e-16 #> alternative hypothesis: two-sided #> #> #> $dispersion #> #> DHARMa nonparametric dispersion test via sd of residuals fitted vs. #> simulated #> #> data: simulationOutput #> dispersion = 8.6989, p-value < 2.2e-16 #> alternative hypothesis: two.sided #> #> #> $outliers #> #> DHARMa outlier test based on exact binomial test with approximate #> expectations #> #> data: simulationOutput #> outliers at both margin(s) = 111, observations = 1000, p-value < #> 2.2e-16 #> alternative hypothesis: true probability of success is not equal to 0.003992016 #> 95 percent confidence interval: #> 0.09219791 0.13212606 #> sample estimates: #> frequency of outliers (expected: 0.00399201596806387 ) #> 0.111 DHARMa::testSpatialAutocorrelation(r_pois, x = dat$X, y = dat$Y) #> #> DHARMa Moran's I test for distance-based autocorrelation #> #> data: r_pois #> observed = -0.0022978, expected = -0.0010010, sd = 0.0026264, p-value = #> 0.6215 #> alternative hypothesis: Distance-based autocorrelation DHARMa::testZeroInflation(r_pois) #> #> DHARMa zero-inflation test via comparison to expected zeros with #> simulation under H0 = fitted model #> #> data: simulationOutput #> ratioObsSim = 1.7999, p-value < 2.2e-16 #> alternative hypothesis: two.sided r_nb2 <- dharma_residuals(s_nb2, fit_nb2, return_DHARMa = TRUE) plot(r_nb2) DHARMa::testZeroInflation(r_nb2) #> #> DHARMa zero-inflation test via comparison to expected zeros with #> simulation under H0 = fitted model #> #> data: simulationOutput #> ratioObsSim = 1.0045, p-value = 0.908 #> alternative hypothesis: two.sided r_nb2_miss <- dharma_residuals(s_nb2_miss, fit_nb2_miss, return_DHARMa = TRUE) plot(r_nb2_miss) DHARMa::plotResiduals(r_nb2_miss, form = dat$a1) AIC(fit_nb2_miss, fit_nb2) #> df AIC #> fit_nb2_miss 4 3642.665 #> fit_nb2 5 3480.904"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"the-need-for-one-sample-residuals","dir":"Articles > Web_only","previous_headings":"","what":"The need for one-sample residuals","title":"Residual checking with sdmTMB","text":"used random effects drawn observed . approach described Waagepetersen (2006) summarized nicely unexported function oneSamplePosterior within TMB. Thygesen et al. (2017) also describes context one-sample MCMC residuals. show necessary. ’ll start simulating data Gaussian observation error spatial spatiotemporal random effects. use empirical Bayes (EB) random effect values (values random effects maximize log likelihood conditional estimated fixed effects), residuals look even though model perfectly matched simulated data: Indeed, test (incorrectly) rejects null hypothesis \\(r_1 \\sim \\operatorname{N}(0, 1)\\), calculated correctly know come \\(\\operatorname{N}(0, 1)\\) instead returned single sample assumed MVN random effect distribution, get ‘correct’ residuals: , (correctly) fail reject hypothesis \\(r_2 \\sim \\operatorname{N}(0, 1)\\). also sample observation random effects using MCMC (fixed effects still held MLEs), relaxes assumptions, much time intensive large models. gets us something similar (correctly) fail reject hypothesis \\(r_3 \\sim \\operatorname{N}(0, 1)\\). similar issue applies simulation-based quantile residuals, implemented DHARMa package. Instead can use draw random effects ‘posterior’ assuming MVN distribution. now looks correct. However, happens sample random effects simulation? get back something incorrect distribution comparison! , need single random effects sample per set simulations.","code":"set.seed(123) predictor_dat <- data.frame( X = runif(1000), Y = runif(1000), year = rep(1:5, each = 200) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) sim_dat <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.3, sigma_E = 0.3, phi = 0.1, sigma_O = 0.4, seed = 1, B = 0.2 # intercept ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit <- sdmTMB(observed ~ 1, data = sim_dat, time = \"year\", mesh = mesh) set.seed(1) r1 <- residuals(fit, type = \"mle-eb\") qqnorm(r1);abline(0, 1) ks.test(r1, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r1 #> D = 0.058629, p-value = 0.002067 #> alternative hypothesis: two-sided set.seed(1) r2 <- residuals(fit, type = \"mle-mvn\") qqnorm(r2);abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.020639, p-value = 0.7879 #> alternative hypothesis: two-sided samp <- sdmTMBextra::predict_mle_mcmc(fit, mcmc_iter = 400, mcmc_warmup = 200) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.002192 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 21.92 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: Iteration: 1 / 400 [ 0%] (Warmup) #> Chain 1: Iteration: 40 / 400 [ 10%] (Warmup) #> Chain 1: Iteration: 80 / 400 [ 20%] (Warmup) #> Chain 1: Iteration: 120 / 400 [ 30%] (Warmup) #> Chain 1: Iteration: 160 / 400 [ 40%] (Warmup) #> Chain 1: Iteration: 200 / 400 [ 50%] (Warmup) #> Chain 1: Iteration: 201 / 400 [ 50%] (Sampling) #> Chain 1: Iteration: 240 / 400 [ 60%] (Sampling) #> Chain 1: Iteration: 280 / 400 [ 70%] (Sampling) #> Chain 1: Iteration: 320 / 400 [ 80%] (Sampling) #> Chain 1: Iteration: 360 / 400 [ 90%] (Sampling) #> Chain 1: Iteration: 400 / 400 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 31.226 seconds (Warm-up) #> Chain 1: 30.704 seconds (Sampling) #> Chain 1: 61.93 seconds (Total) #> Chain 1: #> Warning: The largest R-hat is 1.08, indicating chains have not mixed. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#r-hat #> Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#bulk-ess #> Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#tail-ess r3 <- residuals(fit, type = \"mle-mcmc\", mcmc_samples = samp) qqnorm(r3);abline(0, 1) ks.test(r3, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r3 #> D = 0.024522, p-value = 0.5845 #> alternative hypothesis: two-sided set.seed(1) simulate(fit, nsim = 500, type = \"mle-eb\") |> dharma_residuals(fit) #> Warning: It is recommended to use `simulate.sdmTMB(fit, type = 'mle-mvn')` if simulating #> for DHARMa residuals. See the description in ?residuals.sdmTMB under the types #> of residuals section. set.seed(1) simulate(fit, nsim = 500, type = \"mle-mvn\") |> dharma_residuals(fit) set.seed(1) s <- replicate(200, simulate(fit, nsim = 1, type = \"mle-mvn\"), simplify = \"matrix\") attr(s, \"type\") <- \"mle-mvn\" dharma_residuals(s, fit)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-much-this-matters-depends-on-the-ratio-of-observation-error-variance-vs--random-effect-variance","dir":"Articles > Web_only","previous_headings":"","what":"How much this matters depends on the ratio of observation error variance vs. random effect variance","title":"Residual checking with sdmTMB","text":"Lets simulate data large observation error (phi , Gaussian error SD case) smaller levels random field variance (sigma_E sigma_O): Now, doesn’t really matter since ‘incorrect’ random effect distribution swamped observation error effect distribution. Technically, first set ‘wrong’ second set ‘right’, functionally ’d come similar conclusion case.","code":"set.seed(123) sim_dat2 <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.3, sigma_E = 0.1, # smaller than before sigma_O = 0.1, # smaller than before phi = 0.5, # bigger than before seed = 1, B = 0.2 ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit2 <- sdmTMB(observed ~ 1, data = sim_dat2, time = \"year\", mesh = mesh) sanity(fit2) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large set.seed(1) r1 <- residuals(fit2, type = \"mle-eb\") qqnorm(r1);abline(0, 1) ks.test(r1, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r1 #> D = 0.021085, p-value = 0.7656 #> alternative hypothesis: two-sided r2 <- residuals(fit2, type = \"mle-mvn\") qqnorm(r2);abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.016869, p-value = 0.9385 #> alternative hypothesis: two-sided"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"notes-on-uniform-vs--normal-quantile-residuals","dir":"Articles > Web_only","previous_headings":"","what":"Notes on uniform vs. normal quantile residuals","title":"Residual checking with sdmTMB","text":"randomized quantile residuals residuals.sdmTMB() returned normal(0, 1) model consistent data. DHARMa residuals, however, returned uniform(0, 1) circumstances. valid, use preference, ’s important appreciate changes appearance expected residuals. Analytical normal(0, 1): Analytical uniform(0, 1): Simulation-based uniform(0, 1): Simulation-based normal(0, 1): Conclusions: normal(0, 1) residuals probably familiar people. normal(0, 1) residuals put emphasis tails. good bad: ’s easier examine tail behaviour, can often look ‘’ even model fine (example) observations tails distribution definition rarely observed. Uniform(0, 1) residuals give data points equal visual weight emphasize consistency overall distribution rather tails. Either valid, need switch mindset expect see accordingly. example, poor tail behaviour may look like minor issue uniform residuals; conversely tails normal(0, 1) residuals unlikely ever look ‘perfect’ without large sample sizes.","code":"r2 <- residuals(fit2, type = \"mle-mvn\") hist(r2) qqnorm(r2) abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.025614, p-value = 0.528 #> alternative hypothesis: two-sided u <- pnorm(r2) hist(u) n <- length(u) m <- seq_len(n) / (n + 1) qqplot(m, u) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.025614, p-value = 0.528 #> alternative hypothesis: two-sided abline(0, 1) set.seed(1) s <- simulate(fit2, nsim = 500, type = \"mle-mvn\") |> dharma_residuals(fit2, return_DHARMa = TRUE) hist(s$scaledResiduals) u <- s$scaledResiduals m <- seq_len(length(u)) / (length(u)+ 1) qqplot(m, u) abline(0, 1) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.026, p-value = 0.5085 #> alternative hypothesis: two-sided set.seed(1) s <- simulate(fit2, nsim = 1500, type = \"mle-mvn\") |> dharma_residuals(fit2, return_DHARMa = TRUE) u <- s$scaledResiduals r <- qnorm(u) qqnorm(r) abline(0, 1) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.028, p-value = 0.4131 #> alternative hypothesis: two-sided"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-do-those-randomized-quantile-residuals-work","dir":"Articles > Web_only","previous_headings":"","what":"How do those randomized-quantile residuals work?","title":"Residual checking with sdmTMB","text":"Let’s work simple example gamma distribution: get quantile residuals, transform uniform(0, 1) using pgamma() (optionally) convert normal(0, 1) qnorm(): works distribution can define quantile function. integer values, need add randomization additional step. Let’s work Poisson sample: gamma example illustrated can use distribution function (pgamma()) take gamma-distributed variable turn uniform-distributed variable. Now need Poisson equivalent: ppois(). ppois(y) function gives us cumulative probability density value y. Say Poisson variable mean (lambda) 5 observation value 3. can calculate density value 3 : .e., : , naively apply ppois() observed values ’ll end discrete cumulative probabilities aren’t useful comparing continuous uniform. Instead, need get probability density value one observed “fill ” values observed value desired uniformly distributed samples. First, get density value observed value: can add randomization using runif() since expectation uniform distribution stage fill values : optionally apply qnorm():","code":"set.seed(1) mu <- rep(2, 500) phi <- 0.5 y <- rgamma(length(mu), shape = phi, scale = mu / phi) u <- pgamma(q = y, shape = phi, scale = mu / phi) hist(u) r <- qnorm(u) hist(r) set.seed(1) mu <- rep(2, 500) y <- rpois(length(mu), mu) lambda <- 5 ppois(3, lambda) #> [1] 0.2650259 dpois(0, lambda) + dpois(1, lambda) + dpois(2, lambda) + dpois(3, lambda) #> [1] 0.2650259 hist(ppois(y, mu)) a <- ppois(y - 1, mu) hist(a) b <- ppois(y, mu) hist(b) u <- runif(n = length(y), min = a, max = b) hist(u) r <- qnorm(u) hist(r)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-do-those-simulation-based-residuals-work","dir":"Articles > Web_only","previous_headings":"","what":"How do those simulation-based residuals work?","title":"Residual checking with sdmTMB","text":"DHARMa uses simulation-based quantile residuals. result, don’t need define quantile function analytically. , instead line like : simulate model repeatedly, see observation falls within simulated values, get quantile way. example, instead : :","code":"u <- pgamma(q = y, shape = phi, scale = mu / phi) pnorm(2.2, mean = 0.5, sd = 1) #> [1] 0.9554345 set.seed(1) s <- rnorm(1e6, 0.5, 1) # equivalent of simulate()ing from our model mean(s < 2.2) # equivalent of pnorm() #> [1] 0.955308"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"references","dir":"Articles > Web_only","previous_headings":"","what":"References","title":"Residual checking with sdmTMB","text":"Dunn, P.K., Smyth, G.K. 1996. Randomized Quantile Residuals. Journal Computational Graphical Statistics 5(3): 236–244. Waagepetersen, R. 2006. Simulation-Based Goodness--Fit Test Random Effects Generalized Linear Mixed Models. Scandinavian Journal Statistics 33(4): 721–731. Thygesen, U.H., Albertsen, C.M., Berg, C.W., Kristensen, K., Nielsen, . 2017. Validation ecological state space models using Laplace approximation. Environ Ecol Stat 24(2): 317–339.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/visreg.html","id":"delta-models","dir":"Articles > Web_only","previous_headings":"","what":"Delta models","title":"Visualizing sdmTMB conditional effects using visreg","text":"visreg() can also used plot output delta models sdmTMB() using similar code previous plots, using sdmTMB wrapper function visreg_delta() specifying model = 1 encounter (0 vs. non-zero) model model = 2 positive component model (e.g., Gamma, lognormal). example: Note plotting visreg_delta(), categorical variables like year need designated factor data frame, example fyear, rather model formula (e.g., + .factor(year)).","code":"fit_dg <- sdmTMB( density ~ s(depth_scaled, year, k = 8), data = pcod_2011, mesh = pcod_mesh_2011, spatial = \"off\", # for vignette speed family = delta_gamma() ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, gg = TRUE) #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, gg = TRUE) #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component."},{"path":"https://pbs-assess.github.io/sdmTMB/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Sean C. Anderson. Author, maintainer. Eric J. Ward. Author. Philina . English. Author. Lewis . K. Barnett. Author. James T. Thorson. Author, copyright holder. VAST author Joe Watson. Contributor. Censored Poisson Julia Indivero. Contributor. Vignette writing Jillian C. Dunic. Contributor. Cole C. Monnahan. Contributor, copyright holder. VAST contributor Mollie Brooks. Contributor, copyright holder. glmmTMB author Ben Bolker. Contributor, copyright holder. glmmTMB author Kasper Kristensen. Contributor, copyright holder. TMB/glmmTMB author Martin Maechler. Contributor, copyright holder. glmmTMB author Arni Magnusson. Contributor, copyright holder. glmmTMB author Hans J. Skaug. Contributor, copyright holder. glmmTMB author, SPDE barrier Anders Nielsen. Contributor, copyright holder. glmmTMB author Casper Berg. Contributor, copyright holder. glmmTMB author Koen van Bentham. Contributor, copyright holder. glmmTMB author Olav Nikolai Breivik. Contributor, copyright holder. SPDE barrier Simon Wood. Contributor, copyright holder. mgcv: smoother prediction Paul-Christian Bürkner. Contributor, copyright holder. brms: smoother matrix parsing Majesty King Right Canada, represented Minister Department Fisheries Oceans. Copyright holder.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Anderson SC, Ward EJ, English PA, Barnett LAK, Thorson JT (2024). “sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields.” bioRxiv, 2022.03.24.485545. doi:10.1101/2022.03.24.485545.","code":"@Article{, title = {sdmTMB: an R package for fast, flexible, and user-friendly generalized linear mixed effects models with spatial and spatiotemporal random fields}, author = {Sean C. Anderson and Eric J. Ward and Philina A. English and Lewis A. K. Barnett and James T. Thorson}, year = {2024}, journal = {bioRxiv}, volume = {2022.03.24.485545}, doi = {10.1101/2022.03.24.485545}, }"},{"path":"https://pbs-assess.github.io/sdmTMB/header.html","id":null,"dir":"","previous_headings":"","what":"sdmTMB ","title":"sdmTMB ","text":"Spatial spatiotemporal GLMMs TMB sdmTMB R package fits spatial spatiotemporal GLMMs (Generalized Linear Mixed Effects Models) using Template Model Builder (TMB), R-INLA, Gaussian Markov random fields. One common application species distribution models (SDMs). See documentation site preprint: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett, J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"sdmtmb-","dir":"","previous_headings":"","what":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Spatial spatiotemporal GLMMs TMB sdmTMB R package fits spatial spatiotemporal GLMMs (Generalized Linear Mixed Effects Models) using Template Model Builder (TMB), R-INLA, Gaussian Markov random fields. One common application species distribution models (SDMs). See documentation site preprint: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett, J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Installation Overview Getting help Citation Related software Basic use Time-varying coefficients Spatially varying coefficients (SVC) Random intercepts Breakpoint threshold effects Simulating data Sampling joint precision matrix Calculating uncertainty spatial predictions Cross validation Priors Bayesian MCMC sampling Stan Turning random fields Using custom fmesher mesh Barrier meshes","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB can installed CRAN: Assuming C++ compiler installed, development version can installed: extra utilities sdmTMBextra package. Importantly, recommended use optimized BLAS library, result major speed improvements TMB () models R (e.g., often 8-fold speed increases sdmTMB models). Suggested installation instructions Mac users, Linux users, Windows users. check ’ve successfully linked optimized BLAS, start new session run: result take fraction second (e.g., 0.03 s), multiple seconds.","code":"install.packages(\"sdmTMB\", dependencies = TRUE) # install.packages(\"remotes\") remotes::install_github(\"pbs-assess/sdmTMB\", dependencies = TRUE) m <- 1e4; n <- 1e3; k <- 3e2 X <- matrix(rnorm(m*k), nrow=m); Y <- matrix(rnorm(n*k), ncol=n) system.time(X %*% Y)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"overview","dir":"","previous_headings":"","what":"Overview","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Analyzing geostatistical data (coordinate-referenced observations underlying spatial process) becoming increasingly common ecology. sdmTMB implements geostatistical spatial spatiotemporal GLMMs using TMB model fitting R-INLA set SPDE (stochastic partial differential equation) matrices. One common application species distribution models (SDMs), hence package name. goal sdmTMB provide fast, flexible, user-friendly interface—similar popular R package glmmTMB—focus spatial spatiotemporal models SPDE approach. extend generalized linear mixed models (GLMMs) familiar ecologists include following optional features: spatial random fields spatiotemporal random fields may independent year modelled random walks autoregressive processes smooth terms covariates, using familiar s() notation mgcv breakpoint (hockey-stick) logistic covariates time-varying covariates (coefficients modelled random walks) spatially varying coefficient models (SVCs) interpolation forecasting missing future time slices wide range families: standard R families plus tweedie(), nbinom1(), nbinom2(), lognormal(), student(), plus truncated censored families delta/hurdle models including delta_gamma(), delta_lognormal(), delta_truncated_nbinom2() Estimation performed sdmTMB via maximum marginal likelihood objective function calculated TMB minimized R via stats::nlminb() random effects integrated via Laplace approximation. sdmTMB package also allows models passed Stan via tmbstan, allowing Bayesian model estimation. See ?sdmTMB ?predict.sdmTMB complete examples. Also see vignettes (‘Articles’) documentation site preprint appendices linked .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"questions use sdmTMB interpret models, please post discussion board. email question, likely respond discussion board anonymized version question (without data) think helpful others. Please let us know don’t want us . bugs feature requests, please post issue tracker. Slides recordings workshop sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"cite sdmTMB publications use: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett., J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545 list (known) publications use sdmTMB can found . Please use citation can track publications.","code":"citation(\"sdmTMB\")"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"related-software","dir":"","previous_headings":"","what":"Related software","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB heavily inspired VAST R package: Thorson, J.T. 2019. Guidance decisions using Vector Autoregressive Spatio-Temporal (VAST) package stock, ecosystem, habitat climate assessments. Fisheries Research 210: 143–161. https://doi.org/10.1016/j.fishres.2018.10.013. glmmTMB R package: Brooks, M.E., Kristensen, K., van Benthem, K.J., Magnusson, ., Berg, C.W., Nielsen, ., Skaug, H.J., Maechler, M., Bolker, B.M. 2017. glmmTMB balances speed flexibility among packages zero-inflated generalized linear mixed modeling. R Journal 9(2): 378–400. https://doi.org/10.32614/rj-2017-066. INLA inlabru can fit many models sdmTMB (many ) approximate Bayesian inference framework. mgcv can fit similar SPDE-based Gaussian random field models code included Miller et al. (2019). table sdmTMB preprint describes functionality timing comparisons sdmTMB, VAST, INLA/inlabru, mgcv discussion makes suggestions might choose one package another.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"basic-use","dir":"","previous_headings":"","what":"Basic use","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB model requires data frame contains response column, columns predictors, columns spatial coordinates. usually makes sense convert spatial coordinates equidistant projection UTMs distance remains constant throughout study region [e.g., using sf::st_transform()]. , illustrate spatial model fit Pacific cod (Gadus macrocephalus) trawl survey data Queen Charlotte Sound, BC, Canada. model contains main effect depth penalized smoother, spatial random field, Tweedie observation error. data frame pcod (built package) column year year survey, density density Pacific cod given survey tow, present whether density > 0, depth depth meters tow, spatial coordinates X Y, UTM coordinates kilometres. start creating mesh object contains matrices apply SPDE approach. , cutoff defines minimum allowed distance points units X Y (km). Alternatively, created mesh via fmesher INLA packages supplied make_mesh(). can inspect mesh object associated plotting method plot(mesh). Fit spatial model smoother depth: Print model fit: output indicates model fit maximum (marginal) likelihood (ML). also see formula, mesh, fitted data, family. Next see estimated main effects including linear component smoother (sdepth), standard deviation smoother weights (sds(depth)), Tweedie dispersion power parameters, Matérn range distance (distance points effectively independent), marginal spatial field standard deviation, negative log likelihood convergence. can extract parameters data frame: Run basic sanity checks model: Use ggeffects package plot smoother effect: depth effect parametric penalized smoother, alternatively used ggeffects::ggeffect() fast marginal effect plot. Predict new data: switch presence-absence model changing response column family: hurdle/delta model changing family: instead fit spatiotemporal model specifying time column spatiotemporal structure: wanted create area-weighted standardized population index, predict grid covering entire survey (qcs_grid) grid cell area 4 (2 x 2 km) pass predictions get_index(): center gravity: basic features, see vignettes Intro modelling sdmTMB Index standardization sdmTMB.","code":"library(dplyr) library(ggplot2) library(sdmTMB) head(pcod) #> # A tibble: 3 × 6 #> year density present depth X Y #> #> 1 2003 113. 1 201 446. 5793. #> 2 2003 41.7 1 212 446. 5800. #> 3 2003 0 0 220 449. 5802. mesh <- make_mesh(pcod, xy_cols = c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( density ~ s(depth), data = pcod, mesh = mesh, family = tweedie(link = \"log\"), spatial = \"on\" ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.37 0.21 #> sdepth 0.62 2.53 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.93 #> #> Dispersion parameter: 12.69 #> Tweedie p: 1.58 #> Matérn range: 16.39 #> Spatial SD: 1.86 #> ML criterion at convergence: 6402.136 #> #> See ?tidy.sdmTMB to extract these values as a data frame. tidy(fit, conf.int = TRUE) #> # A tibble: 1 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 2.37 0.215 1.95 2.79 tidy(fit, effects = \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 16.4 4.47 9.60 28.0 #> 2 phi 12.7 0.406 11.9 13.5 #> 3 sigma_O 1.86 0.218 1.48 2.34 #> 4 tweedie_p 1.58 0.00998 1.56 1.60 sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large ggeffects::ggpredict(fit, \"depth [50:400, by=2]\") |> plot() p <- predict(fit, newdata = qcs_grid) head(p) #> # A tibble: 3 × 7 #> X Y depth est est_non_rf est_rf omega_s #> #> 1 456 5636 347. -3.06 -3.08 0.0172 0.0172 #> 2 458 5636 223. 2.03 1.99 0.0460 0.0460 #> 3 460 5636 204. 2.89 2.82 0.0747 0.0747 ggplot(p, aes(X, Y, fill = exp(est))) + geom_raster() + scale_fill_viridis_c(trans = \"sqrt\") fit <- sdmTMB( present ~ s(depth), data = pcod, mesh = mesh, family = binomial(link = \"logit\") ) fit <- sdmTMB( density ~ s(depth), data = pcod, mesh = mesh, family = delta_gamma(link1 = \"logit\", link2 = \"log\"), ) fit_spatiotemporal <- sdmTMB( density ~ s(depth, k = 5), data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatial = \"off\", spatiotemporal = \"ar1\" ) grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) p_st <- predict(fit_spatiotemporal, newdata = grid_yrs, return_tmb_object = TRUE) index <- get_index(p_st, area = rep(4, nrow(grid_yrs))) ggplot(index, aes(year, est)) + geom_ribbon(aes(ymin = lwr, ymax = upr), fill = \"grey90\") + geom_line(lwd = 1, colour = \"grey30\") + labs(x = \"Year\", y = \"Biomass (kg)\") cog <- get_cog(p_st, format = \"wide\") ggplot(cog, aes(est_x, est_y, colour = year)) + geom_pointrange(aes(xmin = lwr_x, xmax = upr_x)) + geom_pointrange(aes(ymin = lwr_y, ymax = upr_y)) + scale_colour_viridis_c()"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"time-varying-coefficients","dir":"","previous_headings":"Advanced functionality","what":"Time-varying coefficients","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Time-varying intercept: Time-varying (random walk) effect depth: See vignette Intro modelling sdmTMB details.","code":"fit <- sdmTMB( density ~ 0 + s(depth, k = 5), time_varying = ~ 1, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), silent = FALSE # see progress ) fit <- sdmTMB( density ~ 1, time_varying = ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatial = \"off\", spatiotemporal = \"ar1\", silent = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"spatially-varying-coefficients-svc","dir":"","previous_headings":"Advanced functionality","what":"Spatially varying coefficients (SVC)","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Spatially varying effect time: See zeta_s output, represents coefficient varying space. ’ll want ensure set model ballpark mean 0 (e.g., including formula ). See vignette Fitting spatial trend models sdmTMB details.","code":"pcod$year_scaled <- as.numeric(scale(pcod$year)) fit <- sdmTMB( density ~ s(depth, k = 5) + year_scaled, spatial_varying = ~ year_scaled, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatiotemporal = \"off\" ) grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) grid_yrs$year_scaled <- (grid_yrs$year - mean(pcod$year)) / sd(pcod$year) p <- predict(fit, newdata = grid_yrs) %>% subset(year == 2011) # any year ggplot(p, aes(X, Y, fill = zeta_s_year_scaled)) + geom_raster() + scale_fill_gradient2()"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"random-intercepts","dir":"","previous_headings":"Advanced functionality","what":"Random intercepts","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can use syntax (1 | group) lme4 glmmTMB fit random intercepts:","code":"pcod$year_factor <- as.factor(pcod$year) fit <- sdmTMB( density ~ s(depth, k = 5) + (1 | year_factor), data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\") )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"breakpoint-and-threshold-effects","dir":"","previous_headings":"Advanced functionality","what":"Breakpoint and threshold effects","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"See vignette Threshold modeling sdmTMB details.","code":"fit <- sdmTMB( present ~ 1 + breakpt(depth_scaled), data = pcod, mesh = mesh, family = binomial(link = \"logit\") ) fit <- sdmTMB( present ~ 1 + logistic(depth_scaled), data = pcod, mesh = mesh, family = binomial(link = \"logit\") )"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"simulating-data-from-scratch","dir":"","previous_headings":"Advanced functionality > Simulating data","what":"Simulating data from scratch","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Fit simulated data: See ?sdmTMB_simulate details.","code":"predictor_dat <- expand.grid( X = seq(0, 1, length.out = 100), Y = seq(0, 1, length.out = 100) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.05) sim_dat <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, mesh = mesh, family = poisson(link = \"log\"), range = 0.3, sigma_O = 0.4, seed = 1, B = 1 # B0 = intercept ) head(sim_dat) #> # A tibble: 6 × 7 #> X Y omega_s mu eta observed `(Intercept)` #> #> 1 0 0 -0.154 2.33 0.846 1 1 #> 2 0.0101 0 -0.197 2.23 0.803 0 1 #> 3 0.0202 0 -0.240 2.14 0.760 2 1 #> 4 0.0303 0 -0.282 2.05 0.718 2 1 #> 5 0.0404 0 -0.325 1.96 0.675 3 1 #> 6 0.0505 0 -0.367 1.88 0.633 2 1 # sample 200 points for fitting: set.seed(1) sim_dat_obs <- sim_dat[sample(seq_len(nrow(sim_dat)), 200), ] ggplot(sim_dat, aes(X, Y)) + geom_raster(aes(fill = exp(eta))) + # mean without observation error geom_point(aes(size = observed), data = sim_dat_obs, pch = 21) + scale_fill_viridis_c() + scale_size_area() + coord_cartesian(expand = FALSE) mesh <- make_mesh(sim_dat_obs, xy_cols = c(\"X\", \"Y\"), cutoff = 0.05) fit <- sdmTMB( observed ~ 1, data = sim_dat_obs, mesh = mesh, family = poisson() )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"simulating-from-an-existing-fit","dir":"","previous_headings":"Advanced functionality > Simulating data","what":"Simulating from an existing fit","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"See vignette Residual checking sdmTMB, ?simulate.sdmTMB, ?dharma_residuals details.","code":"s <- simulate(fit, nsim = 500) dim(s) #> [1] 969 500 s[1:3,1:4] #> [,1] [,2] [,3] [,4] #> [1,] 0 59.40310 83.20888 0.00000 #> [2,] 0 34.56408 0.00000 19.99839 #> [3,] 0 0.00000 0.00000 0.00000"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"sampling-from-the-joint-precision-matrix","dir":"","previous_headings":"Advanced functionality","what":"Sampling from the joint precision matrix","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can take samples implied parameter distribution assuming MVN covariance matrix internal parameterization: See ?gather_sims ?get_index_sims details.","code":"samps <- gather_sims(fit, nsim = 1000) ggplot(samps, aes(.value)) + geom_histogram() + facet_wrap(~.variable, scales = \"free_x\") #> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`."},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"calculating-uncertainty-on-spatial-predictions","dir":"","previous_headings":"Advanced functionality","what":"Calculating uncertainty on spatial predictions","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"fastest way get point-wise prediction uncertainty use MVN samples:","code":"p <- predict(fit, newdata = predictor_dat, nsim = 500) predictor_dat$se <- apply(p, 1, sd) ggplot(predictor_dat, aes(X, Y, fill = se)) + geom_raster() + scale_fill_viridis_c(option = \"A\") + coord_cartesian(expand = FALSE)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"cross-validation","dir":"","previous_headings":"Advanced functionality","what":"Cross validation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB built-functionality cross-validation. set future::plan(), folds fit parallel: See ?sdmTMB_cv details.","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 10) ## Set parallel processing if desired: # library(future) # plan(multisession) m_cv <- sdmTMB_cv( density ~ s(depth, k = 5), data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Sum of log likelihoods of left-out data: m_cv$sum_loglik #> [1] -6756.28"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"priors","dir":"","previous_headings":"Advanced functionality","what":"Priors","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Priors/penalties can placed parameters. example, place PC (penalized complexity) prior Matérn random field parameters, standard normal prior effect depth, Normal(0, 10^2) prior intercept, half-normal prior Tweedie dispersion parameter (phi): can visualize PC Matérn prior: See ?sdmTMBpriors details.","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( density ~ depth_scaled, data = pcod, mesh = mesh, family = tweedie(), priors = sdmTMBpriors( matern_s = pc_matern(range_gt = 10, sigma_lt = 5), b = normal(c(0, 0), c(1, 10)), phi = halfnormal(0, 15) ) ) plot_pc_matern(range_gt = 10, sigma_lt = 5)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"bayesian-mcmc-sampling-with-stan","dir":"","previous_headings":"Advanced functionality","what":"Bayesian MCMC sampling with Stan","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"fitted model can passed tmbstan package sample posterior Stan. See Bayesian vignette.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"turning-off-random-fields","dir":"","previous_headings":"Advanced functionality","what":"Turning off random fields","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can turn random fields model comparison:","code":"fit_sdmTMB <- sdmTMB( present ~ poly(depth_scaled, 2), data = pcod, mesh = mesh, spatial = \"off\", family = binomial() ) fit_glm <- glm( present ~ poly(depth_scaled, 2), data = pcod, family = binomial() ) tidy(fit_sdmTMB) #> # A tibble: 3 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.426 0.0573 #> 2 poly(depth_scaled, 2)1 -31.7 3.03 #> 3 poly(depth_scaled, 2)2 -66.9 4.09 broom::tidy(fit_glm) #> # A tibble: 3 × 5 #> term estimate std.error statistic p.value #> #> 1 (Intercept) -0.426 0.0573 -7.44 1.03e-13 #> 2 poly(depth_scaled, 2)1 -31.7 3.03 -10.5 1.20e-25 #> 3 poly(depth_scaled, 2)2 -66.9 4.09 -16.4 3.50e-60"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"using-a-custom-fmesher-mesh","dir":"","previous_headings":"Advanced functionality","what":"Using a custom fmesher mesh","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Defining mesh directly INLA:","code":"bnd <- INLA::inla.nonconvex.hull(cbind(pcod$X, pcod$Y), convex = -0.1) mesh_inla <- INLA::inla.mesh.2d( boundary = bnd, max.edge = c(25, 50) ) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), mesh = mesh_inla) plot(mesh) fit <- sdmTMB( density ~ s(depth, k = 5), data = pcod, mesh = mesh, family = tweedie(link = \"log\") )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"barrier-meshes","dir":"","previous_headings":"Advanced functionality","what":"Barrier meshes","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"barrier mesh limits correlation across barriers (e.g., land water). See add_barrier_mesh() sdmTMBextra.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate effects — Effect.sdmTMB","title":"Calculate effects — Effect.sdmTMB","text":"Used effects package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate effects — Effect.sdmTMB","text":"","code":"Effect.sdmTMB(focal.predictors, mod, ...)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate effects — Effect.sdmTMB","text":"focal.predictors character vector one predictors model order. mod regression model object. specific method exists class mod, Effect.default called. ... arguments passed .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate effects — Effect.sdmTMB","text":"Output effects::effect(). Can plotted associated plot() method.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate effects — Effect.sdmTMB","text":"","code":"fit <- sdmTMB(present ~ depth_scaled, data = pcod_2011, family = binomial(), spatial = \"off\") effects::effect(\"depth_scaled\", fit) #> #> depth_scaled effect #> depth_scaled #> -3 -2 -0.1 1 3 #> 0.7511661 0.6634557 0.4673280 0.3544365 0.1897228 plot(effects::effect(\"depth_scaled\", fit))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"Moved sdmTMBextra package. Make sure load sdmTMBextra sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"","code":"add_barrier_mesh( spde_obj = deprecated(), barrier_sf = deprecated(), range_fraction = 0.2, proj_scaling = 1, plot = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"spde_obj Output make_mesh(). barrier_sf sf object polygons defining barriers. example, coastline dataset ocean data. Note object must projection data used generate x y columns spde_obj. range_fraction fraction spatial range barrier triangles . proj_scaling spde_obj created scaling coordinates projection (e.g., dividing UTMs 1000 spatial range reasonable scale) x y values spde_obj multiplied scaling factor applying projection barrier_sf. plot Logical.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"Deprecated. See sdmTMBextra package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"","code":"if (FALSE) { add_barrier_mesh() }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":null,"dir":"Reference","previous_headings":"","what":"Add UTM coordinates to a data frame — add_utm_columns","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"Add UTM (Universal Transverse Mercator) coordinates data frame. useful since geostatistical modeling generally performed equal-distance projection. can separately sf::st_as_sf(), sf::st_transform(), sf::st_coordinates() functions sf package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"","code":"add_utm_columns( dat, ll_names = c(\"longitude\", \"latitude\"), ll_crs = 4326, utm_names = c(\"X\", \"Y\"), utm_crs = get_crs(dat, ll_names), units = c(\"km\", \"m\") ) get_crs(dat, ll_names = c(\"longitude\", \"latitude\"))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"dat Data frame contains longitude latitude columns. ll_names Longitude latitude column names. Note order. ll_crs Input CRS value ll_names. utm_names Output column names UTM columns. utm_crs Output CRS value UTM zone; tries detect get_crs() can specified manually. units UTM units.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"copy input data frame new columns UTM coordinates.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"Note longitudes west prime meridian encoded running -180 0 degrees. may wish work km's rather standard UTM meters range parameter estimate small, can cause computational issues. depends scale data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"","code":"d <- data.frame(lat = c(52.1, 53.4), lon = c(-130.0, -131.4)) get_crs(d, c(\"lon\", \"lat\")) #> Detected UTM zone 9N; CRS = 32609. #> Visit https://epsg.io/32609 to verify. #> [1] 32609 add_utm_columns(d, c(\"lon\", \"lat\")) #> Detected UTM zone 9N; CRS = 32609. #> Visit https://epsg.io/32609 to verify. #> lat lon X Y #> 1 52.1 -130.0 431.5034 5772.632 #> 2 53.4 -131.4 340.4411 5919.452"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":null,"dir":"Reference","previous_headings":"","what":"DHARMa residuals — dharma_residuals","title":"DHARMa residuals — dharma_residuals","text":"Plot (possibly return) DHARMa residuals. wrapper function around DHARMa::createDHARMa() facilitate use sdmTMB() models. Note: recommended set type = \"mle-mvn\" simulate.sdmTMB() resulting residuals expected distribution. default.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DHARMa residuals — dharma_residuals","text":"","code":"dharma_residuals( simulated_response, object, plot = TRUE, return_DHARMa = FALSE, expected_distribution = c(\"uniform\", \"normal\"), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DHARMa residuals — dharma_residuals","text":"simulated_response Output simulate.sdmTMB(). recommended set type = \"mle-mvn\" call simulate.sdmTMB() residuals expected distribution. object Output sdmTMB(). plot Logical. return_DHARMa Logical. expected_distribution Experimental: expected distribution comparison: uniform(0, 1) normal(0, 1). Traditional DHARMa residuals uniform. \"normal\", pnorm() transformation applied. First, simulated quantiles 0 (simulations smaller observation) set arbitrary value 1/(n*10) n number simulated replicated. simulated quantiles 1 (simulations larger observation) set arbitrary value 1 - 1/(n*10). points shown crosses overlaid. ... arguments pass DHARMa::createDHARMa().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DHARMa residuals — dharma_residuals","text":"data frame observed expected values invisibly returned, can set plot = FALSE assign output object wish plot residuals . See examples. return_DHARMa = TRUE, object DHARMa::createDHARMa() returned subsequent DHARMa functions can applied.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"DHARMa residuals — dharma_residuals","text":"Advantages residuals ones residuals.sdmTMB() method (1) work delta/hurdle models combined predictions, just two parts separately, (2) work families, just families worked analytical quantile function, (3) can used various diagnostic tools plots DHARMa package. Disadvantages (1) slower calculate since one must first simulate model, (2) stability distribution residuals depends sufficient number simulation draws, (3) uniformly distributed residuals put less emphasis tails visually (may desired). Note DHARMa returns residuals uniform(0, 1) data consistent model whereas randomized quantile residuals residuals.sdmTMB() expected normal(0, 1). experimental option expected_distribution included transform distributions normal(0, 1) expectation.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DHARMa residuals — dharma_residuals","text":"","code":"# Try Tweedie family: fit <- sdmTMB(density ~ as.factor(year) + s(depth, k = 3), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), spatial = \"on\") # The `simulated_response` argument is first so the output from # simulate() can be piped to dharma_residuals(). # We will work with 100 simulations for fast examples, but you'll # likely want to work with more than this (enough that the results # are stable from run to run). # not great: set.seed(123) simulate(fit, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit) # \\donttest{ # delta-lognormal looks better: set.seed(123) fit_dl <- update(fit, family = delta_lognormal()) simulate(fit_dl, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit) # or skip the pipe: set.seed(123) s <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") # and manually plot it: r <- dharma_residuals(s, fit_dl, plot = FALSE) head(r) #> observed expected #> 1 0.0002512885 0.001030928 #> 2 0.0003998549 0.002061856 #> 3 0.0017916820 0.003092784 #> 4 0.0030243763 0.004123711 #> 5 0.0032777465 0.005154639 #> 6 0.0060709249 0.006185567 plot(r$expected, r$observed) abline(0, 1) # return the DHARMa object and work with the DHARMa methods ret <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit, return_DHARMa = TRUE) plot(ret) # try normal(0, 1) residuals: s <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") dharma_residuals(s, fit, expected_distribution = \"normal\") # note the points in the top right corner that had Inf quantiles # because of pnorm(1) # work with the residuals themselves: r <- dharma_residuals(s, fit, return_DHARMa = TRUE) plot(fitted(fit), r$scaledResiduals) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"Methods using emmeans package sdmTMB. emmeans package computes estimated marginal means fixed effects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"https://aosmith.rbind.io/2019/03/25/getting-started--emmeans/","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 20) fit <- sdmTMB( present ~ as.factor(year), data = pcod_2011, mesh = mesh, family = binomial() ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: present ~ as.factor(year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.61 0.55 #> as.factor(year)2013 0.99 0.22 #> as.factor(year)2015 0.75 0.22 #> as.factor(year)2017 0.01 0.22 #> #> Matérn range: 48.45 #> Spatial SD: 1.84 #> ML criterion at convergence: 564.495 #> #> See ?tidy.sdmTMB to extract these values as a data frame. emmeans::emmeans(fit, ~ year) #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 emmeans::emmeans(fit, pairwise ~ year) #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -4.467 0.0001 #> year2011 - year2015 -0.7496 0.220 963 -3.404 0.0039 #> year2011 - year2017 -0.0127 0.221 963 -0.057 0.9999 #> year2013 - year2015 0.2405 0.217 963 1.110 0.6837 #> year2013 - year2017 0.9774 0.223 963 4.390 0.0001 #> year2015 - year2017 0.7369 0.222 963 3.320 0.0052 #> #> Results are given on the log odds ratio (not the response) scale. #> P value adjustment: tukey method for comparing a family of 4 estimates #> emmeans::emmeans(fit, pairwise ~ year, type = \"response\") #> $emmeans #> year prob SE df lower.CL upper.CL #> 2011 0.353 0.126 963 0.156 0.617 #> 2013 0.595 0.133 963 0.333 0.812 #> 2015 0.536 0.137 963 0.281 0.773 #> 2017 0.356 0.126 963 0.158 0.619 #> #> Confidence level used: 0.95 #> Intervals are back-transformed from the logit scale #> #> $contrasts #> contrast odds.ratio SE df null t.ratio p.value #> year2011 / year2013 0.372 0.0823 963 1 -4.467 0.0001 #> year2011 / year2015 0.473 0.1041 963 1 -3.404 0.0039 #> year2011 / year2017 0.987 0.2182 963 1 -0.057 0.9999 #> year2013 / year2015 1.272 0.2757 963 1 1.110 0.6837 #> year2013 / year2017 2.658 0.5917 963 1 4.390 0.0001 #> year2015 / year2017 2.089 0.4638 963 1 3.320 0.0052 #> #> P value adjustment: tukey method for comparing a family of 4 estimates #> Tests are performed on the log odds ratio scale #> emmeans::emmeans(fit, pairwise ~ year, adjust = \"none\") #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -4.467 <.0001 #> year2011 - year2015 -0.7496 0.220 963 -3.404 0.0007 #> year2011 - year2017 -0.0127 0.221 963 -0.057 0.9543 #> year2013 - year2015 0.2405 0.217 963 1.110 0.2675 #> year2013 - year2017 0.9774 0.223 963 4.390 <.0001 #> year2015 - year2017 0.7369 0.222 963 3.320 0.0009 #> #> Results are given on the log odds ratio (not the response) scale. #> e <- emmeans::emmeans(fit, ~ year) plot(e) e <- emmeans::emmeans(fit, pairwise ~ year) confint(e) #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df lower.CL upper.CL #> year2011 - year2013 -0.9901 0.222 963 -1.560 -0.420 #> year2011 - year2015 -0.7496 0.220 963 -1.316 -0.183 #> year2011 - year2017 -0.0127 0.221 963 -0.581 0.556 #> year2013 - year2015 0.2405 0.217 963 -0.317 0.798 #> year2013 - year2017 0.9774 0.223 963 0.404 1.550 #> year2015 - year2017 0.7369 0.222 963 0.166 1.308 #> #> Results are given on the log odds ratio (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: tukey method for comparing a family of 4 estimates #> summary(e, infer = TRUE) #> $emmeans #> year emmean SE df lower.CL upper.CL t.ratio p.value #> 2011 -0.606 0.551 963 -1.688 0.475 -1.100 0.2715 #> 2013 0.384 0.550 963 -0.695 1.463 0.698 0.4854 #> 2015 0.143 0.551 963 -0.937 1.224 0.260 0.7948 #> 2017 -0.594 0.551 963 -1.674 0.487 -1.078 0.2812 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df lower.CL upper.CL t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -1.560 -0.420 -4.467 0.0001 #> year2011 - year2015 -0.7496 0.220 963 -1.316 -0.183 -3.404 0.0039 #> year2011 - year2017 -0.0127 0.221 963 -0.581 0.556 -0.057 0.9999 #> year2013 - year2015 0.2405 0.217 963 -0.317 0.798 1.110 0.6837 #> year2013 - year2017 0.9774 0.223 963 0.404 1.550 4.390 0.0001 #> year2015 - year2017 0.7369 0.222 963 0.166 1.308 3.320 0.0052 #> #> Results are given on the log odds ratio (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: tukey method for comparing a family of 4 estimates #> P value adjustment: tukey method for comparing a family of 4 estimates #> as.data.frame(e) #> Warning: Note: 'as.data.frame' has combined your 2 sets of results into one object, #> and this affects things like adjusted P values. Refer to the annotations. #> year contrast emmean SE df lower.CL upper.CL #> 2011 . -0.6063952 0.5511170 963 -2.1569729 0.9441824 #> 2013 . 0.3836816 0.5497815 963 -1.1631386 1.9305018 #> 2015 . 0.1431957 0.5505275 963 -1.4057236 1.6921150 #> 2017 . -0.5937169 0.5506319 963 -2.1429298 0.9554960 #> . year2011 - year2013 -0.9900768 0.2216228 963 -1.6136166 -0.3665369 #> . year2011 - year2015 -0.7495909 0.2201979 963 -1.3691217 -0.1300601 #> . year2011 - year2017 -0.0126783 0.2209364 963 -0.6342868 0.6089302 #> . year2013 - year2015 0.2404859 0.2167459 963 -0.3693327 0.8503044 #> . year2013 - year2017 0.9773985 0.2226493 963 0.3509706 1.6038264 #> . year2015 - year2017 0.7369126 0.2219749 963 0.1123823 1.3614430 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: bonferroni method for 10 estimates # interaction of factor with continuous predictor: fit2 <- sdmTMB( present ~ depth_scaled * as.factor(year), data = pcod_2011, mesh = mesh, family = binomial() ) fit2 #> Spatial model fit by ML ['sdmTMB'] #> Formula: present ~ depth_scaled * as.factor(year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.75 0.48 #> depth_scaled -0.98 0.25 #> as.factor(year)2013 1.03 0.23 #> as.factor(year)2015 0.79 0.23 #> as.factor(year)2017 0.01 0.23 #> depth_scaled:as.factor(year)2013 -0.16 0.26 #> depth_scaled:as.factor(year)2015 0.03 0.26 #> depth_scaled:as.factor(year)2017 -0.01 0.26 #> #> Matérn range: 33.38 #> Spatial SD: 2.19 #> ML criterion at convergence: 546.074 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # slopes for each level: emmeans::emtrends(fit2, ~ year, var = \"depth_scaled\") #> year depth_scaled.trend SE df lower.CL upper.CL #> 2011 -0.980 0.250 959 -1.47 -0.490 #> 2013 -1.140 0.247 959 -1.63 -0.655 #> 2015 -0.950 0.238 959 -1.42 -0.483 #> 2017 -0.987 0.244 959 -1.47 -0.507 #> #> Confidence level used: 0.95 # test difference in slopes: emmeans::emtrends(fit2, pairwise ~ year, var = \"depth_scaled\") #> $emtrends #> year depth_scaled.trend SE df lower.CL upper.CL #> 2011 -0.980 0.250 959 -1.47 -0.490 #> 2013 -1.140 0.247 959 -1.63 -0.655 #> 2015 -0.950 0.238 959 -1.42 -0.483 #> 2017 -0.987 0.244 959 -1.47 -0.507 #> #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 0.16009 0.261 959 0.613 0.9281 #> year2011 - year2015 -0.03052 0.265 959 -0.115 0.9995 #> year2011 - year2017 0.00651 0.261 959 0.025 1.0000 #> year2013 - year2015 -0.19061 0.258 959 -0.738 0.8817 #> year2013 - year2017 -0.15358 0.259 959 -0.593 0.9342 #> year2015 - year2017 0.03703 0.263 959 0.141 0.9990 #> #> P value adjustment: tukey method for comparing a family of 4 estimates #> emmeans::emmip(fit2, year ~ depth_scaled, at = list(depth_scaled = seq(-2.5, 2.5, length.out = 50)), CIs = TRUE)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"Moved sdmTMBextra package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"","code":"extract_mcmc(object = deprecated())"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"object Deprecated See sdmTMBextra package. Make sure load sdmTMBextra sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"Deprecated. See sdmTMBextra package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"","code":"if (FALSE) { extract_mcmc() }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":null,"dir":"Reference","previous_headings":"","what":"Additional families — Families","title":"Additional families — Families","text":"Additional families compatible sdmTMB().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Additional families — Families","text":"","code":"Beta(link = \"logit\") lognormal(link = \"log\") gengamma(link = \"log\") gamma_mix(link = \"log\") lognormal_mix(link = \"log\") nbinom2_mix(link = \"log\") nbinom2(link = \"log\") nbinom1(link = \"log\") truncated_nbinom2(link = \"log\") truncated_nbinom1(link = \"log\") student(link = \"identity\", df = 3) tweedie(link = \"log\") censored_poisson(link = \"log\") delta_gamma(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_gamma_mix(link1 = \"logit\", link2 = \"log\") delta_gengamma(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_lognormal(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_lognormal_mix(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_truncated_nbinom2(link1 = \"logit\", link2 = \"log\") delta_truncated_nbinom1(link1 = \"logit\", link2 = \"log\") delta_poisson_link_gamma(link1 = \"log\", link2 = \"log\") delta_poisson_link_lognormal(link1 = \"log\", link2 = \"log\") delta_beta(link1 = \"logit\", link2 = \"logit\")"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Additional families — Families","text":"link Link. df Student-t degrees freedom fixed value parameter. link1 Link first part delta/hurdle model. Defaults \"logit\" type = \"standard\" \"log\" type = \"poisson-link\". link2 Link second part delta/hurdle model. type Delta/hurdle family type. \"standard\" classic hurdle model. \"poisson-link\" Poisson-link delta model (Thorson 2018).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Additional families — Families","text":"list elements common standard R family objects including family, link, linkfun, linkinv. Delta/hurdle model families also elements delta (logical) type (standard vs. Poisson-link).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Additional families — Families","text":"delta_poisson_link_gamma() delta_poisson_link_lognormal() deprecated favour delta_gamma(type = \"poisson-link\") delta_lognormal(type = \"poisson-link\"). gengamma() family implemented J.T. Thorson uses Prentice (1974) parameterization lognormal occurs internal parameter gengamma_Q (reported print() \"Generalized gamma lambda\") approaches 0. families ending _mix() 2-component mixtures distribution mean shared scale parameter. (Thorson et al. 2011). See model-description vignette details. parameter plogis(log_p_mix) probability extreme (larger) mean exp(log_ratio_mix) + 1 ratio larger extreme mean \"regular\" mean. can see parameters model$sd_report. nbinom2 negative binomial parameterization NB2 variance grows quadratically mean (Hilbe 2011). nbinom1 negative binomial parameterization lets variance grow linearly mean (Hilbe 2011). student(), degrees freedom parameter currently estimated fixed df.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Additional families — Families","text":"Generalized gamma family: Prentice, R.L. 1974. log gamma model maximum likelihood estimation. Biometrika 61(3): 539–544. doi:10.1093/biomet/61.3.539 Stacy, E.W. 1962. Generalization Gamma Distribution. Annals Mathematical Statistics 33(3): 1187–1192. Institute Mathematical Statistics. Families ending _mix(): Thorson, J.T., Stewart, .J., Punt, .E. 2011. Accounting fish shoals single- multi-species survey data using mixture distribution models. Can. J. Fish. Aquat. Sci. 68(9): 1681–1693. doi:10.1139/f2011-086 . Negative binomial families: Hilbe, J. M. 2011. Negative binomial regression. Cambridge University Press. Poisson-link delta families: Thorson, J.T. 2018. Three problems conventional delta-model biomass sampling data, computationally efficient alternative. Canadian Journal Fisheries Aquatic Sciences, 75(9), 1369-1382. doi:10.1139/cjfas-2017-0266","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Additional families — Families","text":"","code":"Beta(link = \"logit\") #> #> Family: Beta #> Link function: logit #> lognormal(link = \"log\") #> #> Family: lognormal #> Link function: log #> gengamma(link = \"log\") #> #> Family: gengamma #> Link function: log #> gamma_mix(link = \"log\") #> #> Family: gamma_mix #> Link function: log #> lognormal_mix(link = \"log\") #> #> Family: lognormal_mix #> Link function: log #> nbinom2_mix(link = \"log\") #> #> Family: nbinom2_mix #> Link function: log #> nbinom2(link = \"log\") #> #> Family: nbinom2 #> Link function: log #> nbinom1(link = \"log\") #> #> Family: nbinom1 #> Link function: log #> truncated_nbinom2(link = \"log\") #> #> Family: truncated_nbinom2 #> Link function: log #> truncated_nbinom1(link = \"log\") #> #> Family: truncated_nbinom1 #> Link function: log #> student(link = \"identity\") #> #> Family: student #> Link function: identity #> tweedie(link = \"log\") #> #> Family: tweedie #> Link function: log #> censored_poisson(link = \"log\") #> #> Family: censored_poisson #> Link function: log #> delta_gamma() #> #> Family: binomial Gamma #> Link function: logit log #> delta_gamma_mix() #> #> Family: binomial gamma_mix #> Link function: logit log #> delta_gengamma() #> #> Family: binomial gengamma #> Link function: logit log #> delta_lognormal() #> #> Family: binomial lognormal #> Link function: logit log #> delta_lognormal_mix() #> #> Family: binomial lognormal_mix #> Link function: logit log #> delta_truncated_nbinom2() #> #> Family: binomial truncated_nbinom2 #> Link function: logit log #> delta_truncated_nbinom1() #> #> Family: binomial truncated_nbinom1 #> Link function: logit log #> delta_beta() #> #> Family: binomial Beta #> Link function: logit logit #>"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract parameter simulations from the joint precision matrix — spread_sims","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"spread_sims() returns wide-format data frame. gather_sims() returns long-format data frame. format matches format tidybayes spread_draws() gather_draws() functions.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"","code":"spread_sims(object, nsim = 200, n_sims = deprecated()) gather_sims(object, nsim = 200, n_sims = deprecated())"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"object Output sdmTMB(). nsim number simulation draws. n_sims Deprecated: please use nsim.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"data frame. gather_sims() returns long-format data frame: .iteration: sample ID .variable: parameter name .value: parameter sample value spread_sims() returns wide-format data frame: .iteration: sample ID columns parameter sample per row","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"","code":"m <- sdmTMB(density ~ depth_scaled, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie()) head(spread_sims(m, nsim = 10)) #> .iteration X.Intercept. depth_scaled range phi tweedie_p sigma_O #> 1 1 3.393053 -0.4756917 35.10857 16.62507 1.579221 1.973057 #> 2 2 2.453699 -0.5529437 40.29486 15.67956 1.595062 1.604046 #> 3 3 2.498889 -0.6424470 17.06384 15.05068 1.579885 3.030274 #> 4 4 2.437776 -0.6143827 13.19682 14.84068 1.586556 2.367892 #> 5 5 3.115919 -0.6334488 18.37589 15.03649 1.586183 3.218231 #> 6 6 3.600610 -0.5350240 14.00011 15.24467 1.592803 2.162490 head(gather_sims(m, nsim = 10)) #> .iteration .variable .value #> 1 1 X.Intercept. 2.460426 #> 2 2 X.Intercept. 3.154042 #> 3 3 X.Intercept. 3.013656 #> 4 4 X.Intercept. 2.634319 #> 5 5 X.Intercept. 2.963111 #> 6 6 X.Intercept. 3.258671 samps <- gather_sims(m, nsim = 1000) if (require(\"ggplot2\", quietly = TRUE)) { ggplot(samps, aes(.value)) + geom_histogram() + facet_wrap(~.variable, scales = \"free_x\") } #> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract a relative biomass/abundance index or a center of gravity — get_index","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"Extract relative biomass/abundance index center gravity","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"","code":"get_index( obj, bias_correct = FALSE, level = 0.95, area = 1, silent = TRUE, ... ) get_cog( obj, bias_correct = FALSE, level = 0.95, format = c(\"long\", \"wide\"), area = 1, silent = TRUE, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"obj Output predict.sdmTMB() return_tmb_object = TRUE. bias_correct bias correction implemented TMB::sdreport()? level confidence level. area Grid cell area. vector length newdata predict.sdmTMB() value length 1, repeated internally match. silent Silent? ... Passed TMB::sdreport(). format Long wide.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"get_index(): data frame columns time, estimate, lower upper confidence intervals, log estimate, standard error log estimate. get_cog(): data frame columns time, estimate (center gravity x y coordinates), lower upper confidence intervals, standard error center gravity coordinates.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"Geostatistical random-field model-based indices abundance (along many newer papers): Shelton, .O., Thorson, J.T., Ward, E.J., Feist, B.E. 2014. Spatial semiparametric models improve estimates species abundance distribution. Canadian Journal Fisheries Aquatic Sciences 71(11): 1655--1666. doi:10.1139/cjfas-2013-0508 Thorson, J.T., Shelton, .O., Ward, E.J., Skaug, H.J. 2015. Geostatistical delta-generalized linear mixed models improve precision estimated abundance indices West Coast groundfishes. ICES J. Mar. Sci. 72(5): 1297–1310. doi:10.1093/icesjms/fsu243 Geostatistical model-based centre gravity: Thorson, J.T., Pinsky, M.L., Ward, E.J. 2016. Model-based inference estimating shifts species distribution, area occupied centre gravity. Methods Ecol Evol 7(8): 990–1002. doi:10.1111/2041-210X.12567 Bias correction: Thorson, J.T., Kristensen, K. 2016. Implementing generic method bias correction statistical models using random effects, spatial population dynamics examples. Fisheries Research 175: 66–74. doi:10.1016/j.fishres.2015.11.016","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"","code":"# \\donttest{ # Use a small number of knots for this example to make it fast: pcod_spde <- make_mesh(pcod, c(\"X\", \"Y\"), n_knots = 60, type = \"kmeans\") m <- sdmTMB( data = pcod, formula = density ~ 0 + as.factor(year), time = \"year\", mesh = pcod_spde, family = tweedie(link = \"log\") ) # make prediction grid: nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) # Note `return_tmb_object = TRUE` and the prediction grid: predictions <- predict(m, newdata = nd, return_tmb_object = TRUE) ind <- get_index(predictions) #> Bias correction is turned off. #> It is recommended to turn this on for final inference. if (require(\"ggplot2\", quietly = TRUE)) { ggplot(ind, aes(year, est)) + geom_line() + geom_ribbon(aes(ymin = lwr, ymax = upr), alpha = 0.4) } cog <- get_cog(predictions) cog #> year est lwr upr se coord #> 1 2003 463.5260 446.4142 480.6378 8.730670 X #> 2 2004 476.7402 466.4506 487.0297 5.249871 X #> 3 2005 470.6887 457.7494 483.6280 6.601796 X #> 4 2007 480.8948 464.5560 497.2336 8.336280 X #> 5 2009 477.2029 457.9185 496.4872 9.839144 X #> 6 2011 470.5112 457.6004 483.4221 6.587284 X #> 7 2013 471.9877 455.6078 488.3676 8.357252 X #> 8 2015 463.0289 449.6443 476.4136 6.829028 X #> 9 2017 470.5219 455.4189 485.6249 7.705734 X #> 10 2003 5757.8611 5739.8547 5775.8675 9.187109 Y #> 11 2004 5732.5037 5720.8788 5744.1285 5.931164 Y #> 12 2005 5763.0315 5750.1526 5775.9104 6.570990 Y #> 13 2007 5738.2313 5716.8428 5759.6199 10.912733 Y #> 14 2009 5734.0288 5713.3608 5754.6968 10.545101 Y #> 15 2011 5747.1037 5733.6282 5760.5792 6.875389 Y #> 16 2013 5747.6446 5728.9691 5766.3201 9.528488 Y #> 17 2015 5753.9697 5736.8439 5771.0956 8.737855 Y #> 18 2017 5755.9728 5739.6443 5772.3014 8.331045 Y # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"Calculate population index via simulation joint precision matrix. Compared get_index(), version can faster bias correction turned get_index() approximately equivalent. experimental function. function usually works reasonably well, make guarantees. recommended use get_index() bias_correct = TRUE final inference.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"","code":"get_index_sims( obj, level = 0.95, return_sims = FALSE, area = rep(1, nrow(obj)), est_function = stats::median, area_function = function(x, area) x + log(area), agg_function = function(x) sum(exp(x)) )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"obj predict.sdmTMB() output nsim > 0. level confidence level. return_sims Logical. Return simulation draws? default (FALSE) quantile summary simulation draws. area vector grid cell/polyon areas year-grid cell (row data) obj. Adjust cells unit area area (e.g., cells partially land/water). Note area vector added log(area) raw values obj. words, function assumes log link, typically makes sense. est_function Function summarize estimate (expected value). mean() alternative median(). area_function Function apply area weighting. Assuming log link, function(x, area) x + log(area) default makes sense. natural space, function(x, area) x * area makes sense. agg_function Function aggregate samples within time slice. Assuming log link, function(x) sum(exp(x)) default makes sense. natural space, function(x) sum(x) makes sense.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"data frame. return_sims = FALSE: name column (e.g. year) supplied sdmTMB() time argument est: estimate lwr: lower confidence interval value upr: upper confidence interval value log_est: log estimate se: standard error log estimate return_sims = TRUE, samples index values long-format data frame: name column (e.g. year) supplied sdmTMB() time argument .value: sample value .iteration: sample number","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"Can also used produce index model fit tmbstan. function nothing summarize reshape matrix simulation draws data frame.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"","code":"# \\donttest{ m <- sdmTMB(density ~ 0 + as.factor(year), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), time = \"year\" ) qcs_grid_2011 <- replicate_df(qcs_grid, \"year\", unique(pcod_2011$year)) p <- predict(m, newdata = qcs_grid_2011, nsim = 100) x <- get_index_sims(p) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. x_sims <- get_index_sims(p, return_sims = TRUE) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. if (require(\"ggplot2\", quietly = TRUE)) { ggplot(x, aes(year, est, ymin = lwr, ymax = upr)) + geom_line() + geom_ribbon(alpha = 0.4) ggplot(x_sims, aes(as.factor(year), .value)) + geom_violin() } # Demo custom functions if working in natural space: ind <- get_index_sims( exp(p), agg_function = function(x) sum(x), area_function = function(x, area) x * area ) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":null,"dir":"Reference","previous_headings":"","what":"Get TMB parameter list — get_pars","title":"Get TMB parameter list — get_pars","text":"Get TMB parameter list","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get TMB parameter list — get_pars","text":"","code":"get_pars(object)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get TMB parameter list — get_pars","text":"object Fit sdmTMB()","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get TMB parameter list — get_pars","text":"named list parameter values","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get TMB parameter list — get_pars","text":"","code":"fit <- sdmTMB(present ~ 1, data = pcod_2011, family = binomial(), spatial = \"off\") pars <- get_pars(fit) names(pars) #> [1] \"ln_H_input\" \"b_j\" \"b_j2\" #> [4] \"bs\" \"ln_tau_O\" \"ln_tau_Z\" #> [7] \"ln_tau_E\" \"ln_kappa\" \"thetaf\" #> [10] \"gengamma_Q\" \"logit_p_mix\" \"log_ratio_mix\" #> [13] \"ln_phi\" \"ln_tau_V\" \"rho_time_unscaled\" #> [16] \"ar1_phi\" \"ln_tau_G\" \"RE\" #> [19] \"b_rw_t\" \"omega_s\" \"zeta_s\" #> [22] \"epsilon_st\" \"b_threshold\" \"b_epsilon\" #> [25] \"ln_epsilon_re_sigma\" \"epsilon_re\" \"b_smooth\" #> [28] \"ln_smooth_sigma\""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if ggplot2 installed — ggplot2_installed","title":"Check if ggplot2 installed — ggplot2_installed","text":"Check ggplot2 installed","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if ggplot2 installed — ggplot2_installed","text":"","code":"ggplot2_installed()"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if ggplot2 installed — ggplot2_installed","text":"Returns TRUE FALSE.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":null,"dir":"Reference","previous_headings":"","what":"Construct an SPDE mesh for sdmTMB — make_mesh","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"Construct SPDE mesh use sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"","code":"make_mesh( data, xy_cols, type = c(\"kmeans\", \"cutoff\", \"cutoff_search\"), cutoff, n_knots, seed = 42, mesh = NULL, fmesher_func = fmesher::fm_rcdt_2d_inla, convex = NULL, concave = convex, ... ) # S3 method for sdmTMBmesh plot(x, ...)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"data data frame. xy_cols character vector x y column names contained data. likely equal distance projection. helper function convert UTMs, see add_utm_columns(). type Method create mesh. Also see mesh argument supply mesh. cutoff optional cutoff type \"cutoff\". minimum allowed triangle edge length. n_knots number desired knots type \"cutoff\". seed Random seed. Affects stats::kmeans() determination knot locations type = \"kmeans\". mesh optional mesh created via fmesher instead using convenience options. fmesher_func fmesher function use. Options include fmesher::fm_rcdt_2d_inla() fmesher::fm_mesh_2d_inla() along version without _inla end. convex specified, passed fmesher::fm_nonconvex_hull(). Distance extend non-convex hull data. concave specified, passed fmesher::fm_nonconvex_hull(). \"Minimum allowed reentrant curvature\". Defaults convex. ... Passed graphics::plot(). x Output make_mesh().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"make_mesh(): list class sdmTMBmesh. element mesh output fmesher_func (default fmesher::fm_mesh_2d_inla()). See mesh$mesh$n number vertices. plot.sdmTMBmesh(): plot mesh data points. ggplot2 installed, ggplot2 object returned, otherwise base graphics R plot returned. make , pass your_mesh$mesh inlabru::gg().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"","code":"# Extremely simple cutoff: mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 5, type = \"cutoff\") plot(mesh) # Using a k-means algorithm to assign vertices: mesh <- make_mesh(pcod, c(\"X\", \"Y\"), n_knots = 50, type = \"kmeans\") plot(mesh) # \\donttest{ # But, it's better to develop more tailored meshes: # Pass arguments via '...' to fmesher::fm_mesh_2d_inla(): mesh <- make_mesh( pcod, c(\"X\", \"Y\"), fmesher_func = fmesher::fm_mesh_2d_inla, cutoff = 8, # minimum triangle edge length max.edge = c(20, 40), # inner and outer max triangle lengths offset = c(5, 40) # inner and outer border widths ) plot(mesh) # Or define a mesh directly with fmesher (formerly in INLA): inla_mesh <- fmesher::fm_mesh_2d_inla( loc = cbind(pcod$X, pcod$Y), # coordinates max.edge = c(25, 50), # max triangle edge length; inner and outer meshes offset = c(5, 25), # inner and outer border widths cutoff = 5 # minimum triangle edge length ) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), mesh = inla_mesh) plot(mesh) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot anisotropy from an sdmTMB model — plot_anisotropy","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"Anisotropy spatial correlation directionally dependent. sdmTMB(), default spatial correlation isotropic, anisotropy can enabled anisotropy = TRUE. plotting functions help visualize estimated anisotropy.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"","code":"plot_anisotropy(object, return_data = FALSE) plot_anisotropy2(object, model = 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"object object sdmTMB(). return_data Logical. Return data frame? plot_anisotropy() . model model delta model (plot_anisotropy2(); plot_anisotropy() always plots ).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"plot_anisotropy(): One ellipses illustrating estimated anisotropy. ellipses centered coordinates zero space X-Y coordinates modeled. ellipses show spatial /spatiotemporal range (distance correlation effectively independent) direction zero. Uses ggplot2. anisotropy turned fitting model, NULL returned instead ggplot2 object. plot_anisotropy2(): plot eigenvectors illustrating estimated anisotropy. list plotted data invisibly returned. Uses base graphics. anisotropy turned fitting model, NULL returned instead plot object.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"Code adapted VAST R package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), n_knots = 80, type = \"kmeans\") fit <- sdmTMB( data = pcod_2011, formula = density ~ 1, mesh = mesh, family = tweedie(), share_range = FALSE, time = \"year\", anisotropy = TRUE #< ) plot_anisotropy(fit) plot_anisotropy2(fit)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot PC Matérn priors — plot_pc_matern","title":"Plot PC Matérn priors — plot_pc_matern","text":"Plot PC Matérn priors","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot PC Matérn priors — plot_pc_matern","text":"","code":"plot_pc_matern( range_gt, sigma_lt, range_prob = 0.05, sigma_prob = 0.05, range_lims = c(range_gt * 0.1, range_gt * 10), sigma_lims = c(0, sigma_lt * 2), plot = TRUE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot PC Matérn priors — plot_pc_matern","text":"range_gt value one expects spatial spatiotemporal range greater 1 - range_prob probability. sigma_lt value one expects spatial spatiotemporal marginal standard deviation (sigma_O sigma_E internally) less 1 - sigma_prob probability. range_prob Probability. See description range_gt. sigma_prob Probability. See description sigma_lt. range_lims Plot range variable limits. sigma_lims Plot sigma variable limits. plot Logical controlling whether plot drawn (defaults TRUE).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot PC Matérn priors — plot_pc_matern","text":"plot image(). Invisibly returns underlying matrix data. rows sigmas. columns ranges. Column row names provided.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot PC Matérn priors — plot_pc_matern","text":"","code":"plot_pc_matern(range_gt = 5, sigma_lt = 1) plot_pc_matern(range_gt = 5, sigma_lt = 10) plot_pc_matern(range_gt = 5, sigma_lt = 1, sigma_prob = 0.2) plot_pc_matern(range_gt = 5, sigma_lt = 1, range_prob = 0.2)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a smooth term from an sdmTMB model — plot_smooth","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"Deprecated: use visreg::visreg(). See visreg_delta() examples.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"","code":"plot_smooth( object, select = 1, n = 100, level = 0.95, ggplot = FALSE, rug = TRUE, return_data = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"object sdmTMB() model. select smoother term plot. n number equally spaced points evaluate smoother along. level confidence level. ggplot Logical: use ggplot2 package? rug Logical: add rug lines along lower axis? return_data Logical: return predicted data instead making plot?","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"plot smoother term.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"Note: numeric predictor set mean factor predictor set first-level value time element (present) set minimum value x y coordinates set mean values","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"","code":"d <- subset(pcod, year >= 2000 & density > 0) pcod_spde <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) m <- sdmTMB( data = d, formula = log(density) ~ s(depth_scaled) + s(year, k = 5), mesh = pcod_spde ) plot_smooth(m) #> This function may be deprecated. #> Consider using `visreg::visreg()` or `visreg_delta()`. #> See ?visreg_delta() for examples."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict from an sdmTMB model — predict.sdmTMB","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"Make predictions sdmTMB model; can predict original new data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"","code":"# S3 method for sdmTMB predict( object, newdata = NULL, type = c(\"link\", \"response\"), se_fit = FALSE, re_form = NULL, re_form_iid = NULL, nsim = 0, sims_var = \"est\", model = c(NA, 1, 2), offset = NULL, mcmc_samples = NULL, return_tmb_object = FALSE, return_tmb_report = FALSE, return_tmb_data = FALSE, tmbstan_model = deprecated(), sims = deprecated(), area = deprecated(), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"object model fitted sdmTMB(). newdata data frame make predictions . data frame predictor columns fitted data time column (spatiotemporal model) name fitted data. type est column link (default) response space? se_fit standard errors predictions new locations given newdata calculated? Warning: current implementation can slow large data sets high-resolution projections unless re_form = NA (omitting random fields). faster option approximate point-wise uncertainty use nsim argument. re_form NULL specify including spatial/spatiotemporal random effects predictions. ~0 NA population-level predictions. Likely used conjunction se_fit = TRUE. affect get_index() calculations. re_form_iid NULL specify including random intercepts predictions. ~0 NA population-level predictions. options (e.g., random intercepts) implemented yet. affects predictions newdata. affects get_index(). nsim > 0, simulate joint precision matrix nsim draws. Returns matrix nrow(data) nsim representing estimates linear predictor (.e., link space). Can useful deriving uncertainty predictions (e.g., apply(x, 1, sd)) propagating uncertainty. currently fastest way characterize uncertainty predictions space sdmTMB. sims_var Experimental: TMB reported variable model extracted joint precision matrix simulation draws? Defaults link-space predictions. Options include: \"omega_s\", \"zeta_s\", \"epsilon_st\", \"est_rf\" (described ). options passed verbatim. model Type prediction delta/hurdle model nsim > 0 mcmc_samples supplied: NA returns combined prediction components link scale positive component; 1 2 return first second model component link response scale depending argument type. regular prediction delta models, sets predictions returned. offset numeric vector optional offset values. left default NULL, offset implicitly left 0. mcmc_samples See extract_mcmc() sdmTMBextra package details Bayesian vignette. specified, predict function return matrix similar form nsim > 0 representing Bayesian posterior samples Stan model. return_tmb_object Logical. TRUE, include TMB object list format output. Necessary get_index() get_cog() functions. return_tmb_report Logical: return output TMB report? regular prediction, reported variables MLE parameter values. nsim > 0 mcmc_samples supplied, list element sample contents element output report sample. return_tmb_data Logical: return formatted data TMB? Used internally. tmbstan_model Deprecated. See mcmc_samples. sims Deprecated. Please use nsim instead. area Deprecated. Please use area get_index(). ... implemented.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"return_tmb_object = FALSE (nsim = 0 mcmc_samples = NULL): data frame: est: Estimate link space (everything link space) est_non_rf: Estimate everything random field est_rf: Estimate random fields combined omega_s: Spatial (intercept) random field constant time zeta_s: Spatial slope random field epsilon_st: Spatiotemporal (intercept) random fields, (zero), IID, AR1, random walk return_tmb_object = TRUE (nsim = 0 mcmc_samples = NULL): list: data: data frame described report: TMB report parameter values obj: TMB object returned prediction run fit_obj: original TMB model object case, likely need data element end user. elements included functions. nsim > 0 mcmc_samples NULL: matrix: Columns represent samples Rows represent predictions one row per row newdata","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"","code":"d <- pcod_2011 mesh <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) # a coarse mesh for example speed m <- sdmTMB( data = d, formula = density ~ 0 + as.factor(year) + depth_scaled + depth_scaled2, time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) # Predictions at original data locations ------------------------------- predictions <- predict(m) head(predictions) #> # A tibble: 6 × 17 #> year X Y depth density present lat lon depth_mean depth_sd #> #> 1 2011 435. 5718. 241 245. 1 51.6 -130. 5.16 0.445 #> 2 2011 487. 5719. 52 0 0 51.6 -129. 5.16 0.445 #> 3 2011 490. 5717. 47 0 0 51.6 -129. 5.16 0.445 #> 4 2011 545. 5717. 157 0 0 51.6 -128. 5.16 0.445 #> 5 2011 404. 5720. 398 0 0 51.6 -130. 5.16 0.445 #> 6 2011 420. 5721. 486 0 0 51.6 -130. 5.16 0.445 #> # ℹ 7 more variables: depth_scaled , depth_scaled2 , est , #> # est_non_rf , est_rf , omega_s , epsilon_st predictions$resids <- residuals(m) # randomized quantile residuals #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. library(ggplot2) ggplot(predictions, aes(X, Y, col = resids)) + scale_colour_gradient2() + geom_point() + facet_wrap(~year) hist(predictions$resids) qqnorm(predictions$resids);abline(a = 0, b = 1) # Predictions onto new data -------------------------------------------- qcs_grid_2011 <- replicate_df(qcs_grid, \"year\", unique(pcod_2011$year)) predictions <- predict(m, newdata = qcs_grid_2011) # \\donttest{ # A short function for plotting our predictions: plot_map <- function(dat, column = est) { ggplot(dat, aes(X, Y, fill = {{ column }})) + geom_raster() + facet_wrap(~year) + coord_fixed() } plot_map(predictions, exp(est)) + scale_fill_viridis_c(trans = \"sqrt\") + ggtitle(\"Prediction (fixed effects + all random effects)\") plot_map(predictions, exp(est_non_rf)) + ggtitle(\"Prediction (fixed effects and any time-varying effects)\") + scale_fill_viridis_c(trans = \"sqrt\") plot_map(predictions, est_rf) + ggtitle(\"All random field estimates\") + scale_fill_gradient2() plot_map(predictions, omega_s) + ggtitle(\"Spatial random effects only\") + scale_fill_gradient2() plot_map(predictions, epsilon_st) + ggtitle(\"Spatiotemporal random effects only\") + scale_fill_gradient2() # Visualizing a marginal effect ---------------------------------------- # See the visreg package or the ggeffects::ggeffect() or # ggeffects::ggpredict() functions # To do this manually: nd <- data.frame(depth_scaled = seq(min(d$depth_scaled), max(d$depth_scaled), length.out = 100)) nd$depth_scaled2 <- nd$depth_scaled^2 # Because this is a spatiotemporal model, you'll need at least one time # element. If time isn't also a fixed effect then it doesn't matter what you pick: nd$year <- 2011L # L: integer to match original data p <- predict(m, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se))) + geom_line() + geom_ribbon(alpha = 0.4) # Plotting marginal effect of a spline --------------------------------- m_gam <- sdmTMB( data = d, formula = density ~ 0 + as.factor(year) + s(depth_scaled, k = 5), time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) if (require(\"visreg\", quietly = TRUE)) { visreg::visreg(m_gam, \"depth_scaled\") } # or manually: nd <- data.frame(depth_scaled = seq(min(d$depth_scaled), max(d$depth_scaled), length.out = 100)) nd$year <- 2011L p <- predict(m_gam, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se))) + geom_line() + geom_ribbon(alpha = 0.4) # Forecasting ---------------------------------------------------------- mesh <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 15) unique(d$year) #> [1] 2011 2013 2015 2017 m <- sdmTMB( data = d, formula = density ~ 1, spatiotemporal = \"AR1\", # using an AR1 to have something to forecast with extra_time = 2019L, # `L` for integer to match our data spatial = \"off\", time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) # Add a year to our grid: grid2019 <- qcs_grid_2011[qcs_grid_2011$year == max(qcs_grid_2011$year), ] grid2019$year <- 2019L # `L` because `year` is an integer in the data qcsgrid_forecast <- rbind(qcs_grid_2011, grid2019) predictions <- predict(m, newdata = qcsgrid_forecast) plot_map(predictions, exp(est)) + scale_fill_viridis_c(trans = \"log10\") plot_map(predictions, epsilon_st) + scale_fill_gradient2() # Estimating local trends ---------------------------------------------- d <- pcod d$year_scaled <- as.numeric(scale(d$year)) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) m <- sdmTMB(data = d, formula = density ~ depth_scaled + depth_scaled2, mesh = mesh, family = tweedie(link = \"log\"), spatial_varying = ~ 0 + year_scaled, time = \"year\", spatiotemporal = \"off\") nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) nd$year_scaled <- (nd$year - mean(d$year)) / sd(d$year) p <- predict(m, newdata = nd) plot_map(subset(p, year == 2003), zeta_s_year_scaled) + # pick any year ggtitle(\"Spatial slopes\") + scale_fill_gradient2() plot_map(p, est_rf) + ggtitle(\"Random field estimates\") + scale_fill_gradient2() plot_map(p, exp(est_non_rf)) + ggtitle(\"Prediction (fixed effects only)\") + scale_fill_viridis_c(trans = \"sqrt\") plot_map(p, exp(est)) + ggtitle(\"Prediction (fixed effects + all random effects)\") + scale_fill_viridis_c(trans = \"sqrt\") # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":null,"dir":"Reference","previous_headings":"","what":"Prior distributions — sdmTMBpriors","title":"Prior distributions — sdmTMBpriors","text":"Optional priors/penalties model parameters. results penalized likelihood within TMB can used priors model passed tmbstan (see Bayesian vignette). Note Jacobian adjustments made bayesian = TRUE sdmTMB() model fit. .e., final model fit tmbstan priors specified bayesian set TRUE. Otherwise, leave bayesian = FALSE. pc_matern() Penalized Complexity prior Matern covariance function.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prior distributions — sdmTMBpriors","text":"","code":"sdmTMBpriors( matern_s = pc_matern(range_gt = NA, sigma_lt = NA), matern_st = pc_matern(range_gt = NA, sigma_lt = NA), phi = halfnormal(NA, NA), ar1_rho = normal(NA, NA), tweedie_p = normal(NA, NA), b = normal(NA, NA), sigma_G = halfnormal(NA, NA) ) normal(location = 0, scale = 1) halfnormal(location = 0, scale = 1) mvnormal(location = 0, scale = diag(length(location))) pc_matern(range_gt, sigma_lt, range_prob = 0.05, sigma_prob = 0.05)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prior distributions — sdmTMBpriors","text":"matern_s PC (Penalized Complexity) prior (pc_matern()) spatial random field Matérn parameters. matern_st matern_s spatiotemporal random field. Note likely want set share_fields = FALSE choose set spatial spatiotemporal Matérn PC prior since include prior spatial range parameter. phi halfnormal() prior dispersion parameter observation distribution. ar1_rho normal() prior AR1 random field parameter. Note parameter support -1 < ar1_rho < 1. tweedie_p normal() prior Tweedie power parameter. Note parameter support 1 < tweedie_p < 2 choose mean appropriately. b normal() priors main population-level 'beta' effects. sigma_G halfnormal() priors random intercept SDs. location Location parameter(s). scale Scale parameter. normal()/halfnormal(): standard deviation(s). mvnormal(): variance-covariance matrix. range_gt value one expects spatial spatiotemporal range greater 1 - range_prob probability. sigma_lt value one expects spatial spatiotemporal marginal standard deviation (sigma_O sigma_E internally) less 1 - sigma_prob probability. range_prob Probability. See description range_gt. sigma_prob Probability. See description sigma_lt.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Prior distributions — sdmTMBpriors","text":"named list values specified priors.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Prior distributions — sdmTMBpriors","text":"Meant passed priors argument sdmTMB(). normal() halfnormal() define normal half-normal priors , point, must location (mean) parameter 0. halfnormal() normal() can used make syntax clearer. intended used parameters support > 0. See https://arxiv.org/abs/1503.00256 description PC prior Gaussian random fields. Quoting discussion (substituting argument names pc_matern()): \"simulation study observe good coverage equal-tailed 95% credible intervals prior satisfies P(sigma > sigma_lt) = 0.05 P(range < range_gt) = 0.05, sigma_lt 2.5 40 times true marginal standard deviation range_gt 1/10 1/2.5 true range.\" Keep mind range dependent units scale coordinate system. practice, may choose try fitting model without PC prior constraining model . better option simulate model given range sigma choose reasonable values system base prior knowledge model fit similar system spatial information data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Prior distributions — sdmTMBpriors","text":"Fuglstad, G.-., Simpson, D., Lindgren, F., Rue, H. (2016) Constructing Priors Penalize Complexity Gaussian Random Fields. arXiv:1503.00256 Simpson, D., Rue, H., Martins, T., Riebler, ., Sørbye, S. (2015) Penalising model component complexity: principled, practical approach constructing priors. arXiv:1403.4630","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Prior distributions — sdmTMBpriors","text":"","code":"normal(0, 1) #> [,1] [,2] #> [1,] 0 1 #> attr(,\"dist\") #> [1] \"normal\" halfnormal(0, 1) #> [,1] [,2] #> [1,] 0 1 #> attr(,\"dist\") #> [1] \"normal\" mvnormal(c(0, 0)) #> [,1] [,2] [,3] #> [1,] 0 1 0 #> [2,] 0 0 1 #> attr(,\"dist\") #> [1] \"mvnormal\" pc_matern(range_gt = 5, sigma_lt = 1) #> [1] 5.00 1.00 0.05 0.05 #> attr(,\"dist\") #> [1] \"pc_matern\" plot_pc_matern(range_gt = 5, sigma_lt = 1) # \\donttest{ d <- subset(pcod, year > 2011) pcod_spde <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) # - no priors on population-level effects (`b`) # - halfnormal(0, 10) prior on dispersion parameter `phi` # - Matern PC priors on spatial `matern_s` and spatiotemporal # `matern_st` random field parameters m <- sdmTMB(density ~ s(depth, k = 3), data = d, mesh = pcod_spde, family = tweedie(), share_range = FALSE, time = \"year\", priors = sdmTMBpriors( phi = halfnormal(0, 10), matern_s = pc_matern(range_gt = 5, sigma_lt = 1), matern_st = pc_matern(range_gt = 5, sigma_lt = 1) ) ) # - no prior on intercept # - normal(0, 1) prior on depth coefficient # - no prior on the dispersion parameter `phi` # - Matern PC prior m <- sdmTMB(density ~ depth_scaled, data = d, mesh = pcod_spde, family = tweedie(), spatiotemporal = \"off\", priors = sdmTMBpriors( b = normal(c(NA, 0), c(NA, 1)), matern_s = pc_matern(range_gt = 5, sigma_lt = 1) ) ) # You get a prior, you get a prior, you get a prior! # (except on the annual means; see the `NA`s) m <- sdmTMB(density ~ 0 + depth_scaled + depth_scaled2 + as.factor(year), data = d, time = \"year\", mesh = pcod_spde, family = tweedie(link = \"log\"), share_range = FALSE, spatiotemporal = \"AR1\", priors = sdmTMBpriors( b = normal(c(0, 0, NA, NA, NA), c(2, 2, NA, NA, NA)), phi = halfnormal(0, 10), # tweedie_p = normal(1.5, 2), ar1_rho = normal(0, 1), matern_s = pc_matern(range_gt = 5, sigma_lt = 1), matern_st = pc_matern(range_gt = 5, sigma_lt = 1)) ) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. generics tidy","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":null,"dir":"Reference","previous_headings":"","what":"Replicate a prediction data frame over time — replicate_df","title":"Replicate a prediction data frame over time — replicate_df","text":"Useful replicating prediction grids across time slices used model fitting.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Replicate a prediction data frame over time — replicate_df","text":"","code":"replicate_df(dat, time_name, time_values)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Replicate a prediction data frame over time — replicate_df","text":"dat Data frame. time_name Name time column output. time_values Time values replicate dat .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Replicate a prediction data frame over time — replicate_df","text":"data frame replicated time_values new column based time_name.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Replicate a prediction data frame over time — replicate_df","text":"","code":"df <- data.frame(variable = c(\"a\", \"b\")) replicate_df(df, time_name = \"year\", time_values = 1:3) #> variable year #> 1 a 1 #> 2 b 1 #> 3 a 2 #> 4 b 2 #> 5 a 3 #> 6 b 3 head(qcs_grid) #> X Y depth depth_scaled depth_scaled2 #> 1 456 5636 347.0834 1.5608122 2.43613479 #> 2 458 5636 223.3348 0.5697699 0.32463771 #> 3 460 5636 203.7408 0.3633693 0.13203724 #> 4 462 5636 183.2987 0.1257046 0.01580166 #> 5 464 5636 182.9998 0.1220368 0.01489297 #> 6 466 5636 186.3892 0.1632882 0.02666303 nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) head(nd) #> X Y depth depth_scaled depth_scaled2 year #> 1 456 5636 347.0834 1.5608122 2.43613479 2003 #> 2 458 5636 223.3348 0.5697699 0.32463771 2003 #> 3 460 5636 203.7408 0.3633693 0.13203724 2003 #> 4 462 5636 183.2987 0.1257046 0.01580166 2003 #> 5 464 5636 182.9998 0.1220368 0.01489297 2003 #> 6 466 5636 186.3892 0.1632882 0.02666303 2003 table(nd$year) #> #> 2003 2004 2005 2007 2009 2011 2013 2015 2017 #> 7314 7314 7314 7314 7314 7314 7314 7314 7314"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Residuals method for sdmTMB models — residuals.sdmTMB","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"See residual-checking vignette: browseVignettes(\"sdmTMB\") documentation site. See notes types residuals 'Details' section .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"","code":"# S3 method for sdmTMB residuals( object, type = c(\"mle-mvn\", \"mle-eb\", \"mle-mcmc\", \"response\", \"pearson\"), model = c(1, 2), mcmc_samples = NULL, qres_func = NULL, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"object sdmTMB() model. type Residual type. See details. model delta/hurdle model component? mcmc_samples vector MCMC samples linear predictor link space. See predict_mle_mcmc() function sdmTMBextra package. qres_func custom quantile residuals function. Function take arguments object, y, mu, ... return vector length length(y). ... Passed custom qres_func function. Unused.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"vector residuals. Note randomization single random effect posterior sample randomized quantile routines result different residuals call. suggested set randomization seed go \"fishing\" perfect residuals present inspected residuals.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"Randomized quantile residuals: mle-mvn, mle-eb, mle-mcmc implementations randomized quantile residuals (Dunn & Smyth 1996), also known probability integral transform (PIT) residuals (Smith 1985). data consistent model assumptions, residuals distributed normal(0, 1). Randomization added account integer binary response observations. example, Poisson observation likelihood observations y mean predictions mu, create randomized quantile residuals : Types residuals: Acronyms: EB: Empirical Bayes MCMC: Markov chain Monte Carlo MLE: Maximum Likelihood Estimate MVN: Multivariate normal mle-mvn: Fixed effects held MLEs random effects taken single approximate posterior sample. \"approximate\" part refers sample taken random effects' assumed MVN distribution. practice, sample obtained based mode Hessian random effects taking advantage sparsity Hessian computational efficiency. sample taken obj$MC(), obj TMB object created TMB::MakeADFun(). See Waagepetersen (2006) description source code internal TMB function TMB:::oneSamplePosterior(). Residuals converted randomized quantile residuals described . mle-eb: Fixed effects held MLEs random effects taken EB estimates. used default residuals sdmTMB (called mle-laplace). available backwards compatibility research purposes recommended checking goodness fit. Residuals converted randomized quantile residuals described . mle-mcmc: Fixed effects held MLEs random effects taken single posterior sample obtained MCMC. excellent option since make assumption distribution random effects (compared mle-mvn option) can slow obtain. See Waagepetersen (2006) Thygesen et al. (2017). Residuals converted randomized quantile residuals described . See sdmTMBextra package function predict_mle_mcmc(), can generate MCMC samples pass mcmc_samples argument. Ideally MCMC run convergence last iteration can used residuals. defaults may sufficient many models. response: simple observed minus predicted residuals. pearson: Pearson residuals: response residuals scaled standard deviation. weights present, residuals multiplied sqrt(weights).","code":"a <- ppois(y - 1, mu) b <- ppois(y, mu) u <- runif(n = length(y), min = a, max = b) qnorm(u)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"Dunn, P.K. & Smyth, G.K. (1996). Randomized Quantile Residuals. Journal Computational Graphical Statistics, 5, 236–244. Smith, J.Q. (1985). Diagnostic checks non-standard time series models. Journal Forecasting, 4, 283–291. Waagepetersen, R. (2006). simulation-based goodness--fit test random effects generalized linear mixed models. Scandinavian Journal Statistics, 33(4), 721-731. Thygesen, U.H., Albertsen, C.M., Berg, C.W., Kristensen, K., Nielsen, . 2017. Validation ecological state space models using Laplace approximation. Environ Ecol Stat 24(2): 317–339. doi:10.1007/s10651-017-0372-4 Rufener, M.-C., Kristensen, K., Nielsen, J.R., Bastardie, F. 2021. Bridging gap commercial fisheries survey data model spatiotemporal dynamics marine species. Ecological Applications. e02453. doi:10.1002/eap.2453","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( present ~ as.factor(year) + poly(depth, 2), data = pcod_2011, mesh = mesh, family = binomial() ) # the default \"mle-mvn\" residuals use fixed effects at their MLE and a # single sample from the approximate random effect posterior: set.seed(9283) r <- residuals(fit, type = \"mle-mvn\") qqnorm(r) abline(0, 1) # response residuals will be not be normally distributed unless # the family is Gaussian: r <- residuals(fit, type = \"response\") qqnorm(r) abline(0, 1) # \"mle-eb\" are quick but are not expected to be N(0, 1); not recommended: set.seed(2321) r <- residuals(fit, type = \"mle-eb\") qqnorm(r) abline(0, 1) # see also \"mle-mcmc\" residuals with the help of the sdmTMBextra package # we can fake them here by taking a single sample from the joint precision # matrix and pretending they are MCMC samples: set.seed(82728) p <- predict(fit, nsim = 1) # pretend these are from sdmTMBextra::predict_mle_mcmc() r <- residuals(fit, mcmc_samples = p) #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. qqnorm(r) abline(0, 1)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"","code":"run_extra_optimization(object, nlminb_loops = 0, newton_loops = 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"object object sdmTMB(). nlminb_loops many extra times run stats::nlminb() optimization. Sometimes restarting optimizer previous best values aids convergence. newton_loops many extra Newton optimization loops try stats::optimHess(). Sometimes aids convergence.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"updated model fit class sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"","code":"# Run extra optimization steps to help convergence: # (Not typically needed) fit <- sdmTMB(density ~ 0 + poly(depth, 2) + as.factor(year), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie()) fit_1 <- run_extra_optimization(fit, newton_loops = 1) max(fit$gradients) #> [1] 5.791343e-09 max(fit_1$gradients) #> [1] 5.791343e-09"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":null,"dir":"Reference","previous_headings":"","what":"Sanity check of an sdmTMB model — sanity","title":"Sanity check of an sdmTMB model — sanity","text":"Sanity check sdmTMB model","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sanity check of an sdmTMB model — sanity","text":"","code":"sanity(object, big_sd_log10 = 2, gradient_thresh = 0.001, silent = FALSE)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sanity check of an sdmTMB model — sanity","text":"object Fitted model sdmTMB(). big_sd_log10 Value check size standard errors . value 2 indicate standard errors greater 10^2 (.e., 100) flagged. gradient_thresh Gradient threshold issue warning. silent Logical: suppress messages? Useful set TRUE running large numbers models just interested returning sanity list objects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sanity check of an sdmTMB model — sanity","text":"invisible named list checks.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Sanity check of an sdmTMB model — sanity","text":"object NA, NULL, class \"try-error\", sanity() return FALSE. facilitate using sanity() models try() tryCatch(). See examples section.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sanity check of an sdmTMB model — sanity","text":"","code":"fit <- sdmTMB( present ~ s(depth), data = pcod_2011, mesh = pcod_mesh_2011, family = binomial() ) sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large s <- sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large s #> $hessian_ok #> [1] TRUE #> #> $eigen_values_ok #> [1] TRUE #> #> $nlminb_ok #> [1] TRUE #> #> $range_ok #> [1] TRUE #> #> $gradients_ok #> [1] TRUE #> #> $se_magnitude_ok #> [1] TRUE #> #> $se_na_ok #> [1] TRUE #> #> $sigmas_ok #> [1] TRUE #> #> $all_ok #> [1] TRUE #> # If fitting many models in a loop, you may want to wrap # sdmTMB() in try() to handle errors. sanity() will take an object # of class \"try-error\" and return FALSE. # Here, we will use stop() to simulate a failed sdmTMB() fit: failed_fit <- try(stop()) #> Error in try(stop()) : s2 <- sanity(failed_fit) all(unlist(s)) #> [1] TRUE all(unlist(s2)) #> [1] FALSE"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Fit spatial spatiotemporal generalized linear mixed effects model (GLMM) TMB (Template Model Builder) R package SPDE (stochastic partial differential equation) approximation Gaussian random fields.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"","code":"sdmTMB( formula, data, mesh, time = NULL, family = gaussian(link = \"identity\"), spatial = c(\"on\", \"off\"), spatiotemporal = c(\"iid\", \"ar1\", \"rw\", \"off\"), share_range = TRUE, time_varying = NULL, time_varying_type = c(\"rw\", \"rw0\", \"ar1\"), spatial_varying = NULL, weights = NULL, offset = NULL, extra_time = NULL, reml = FALSE, silent = TRUE, anisotropy = FALSE, control = sdmTMBcontrol(), priors = sdmTMBpriors(), knots = NULL, bayesian = FALSE, previous_fit = NULL, do_fit = TRUE, do_index = FALSE, predict_args = NULL, index_args = NULL, experimental = NULL )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"formula Model formula. IID random intercepts possible using lme4 syntax, e.g., + (1 | g) g column class character factor representing groups. Penalized splines possible via mgcv s(). Optionally list delta (hurdle) models. See examples details . data data frame. mesh object make_mesh(). time optional time column name (character). Can left NULL model spatial random fields; however, data actually spatiotemporal wish use get_index() get_cog() downstream, supply time argument. family family link. Supports gaussian(), Gamma(), binomial(), poisson(), Beta(), nbinom2(), truncated_nbinom2(), nbinom1(), truncated_nbinom1(), censored_poisson(), gamma_mix(), lognormal_mix(), student(), tweedie(), gengamma(). Supports delta/hurdle models: delta_beta(), delta_gamma(), delta_gamma_mix(), delta_lognormal_mix(), delta_lognormal(), delta_truncated_nbinom2(), binomial family options, see 'Binomial families' Details section . spatial Estimate spatial random fields? Options '' / '' TRUE / FALSE. Optionally, list delta models, e.g. list('', ''). spatiotemporal Estimate spatiotemporal random fields 'iid' (independent identically distributed; default), stationary 'ar1' (first-order autoregressive), random walk ('rw'), fixed 0 ''. set '' time = NULL. delta model, can list. E.g., list('', 'ar1'). Note spatiotemporal standard deviation represents marginal steady-state standard deviation process case AR1. .e., scaled according correlation. See TMB documentation. AR1 correlation coefficient (rho) estimated close 1, say > 0.99, may wish switch random walk 'rw'. Capitalization ignored. TRUE gets converted 'iid' FALSE gets converted ''. share_range Logical: estimate shared spatial spatiotemporal range parameter (TRUE, default) independent range parameters (FALSE). delta model, can list. E.g., list(TRUE, FALSE). time_varying optional one-sided formula describing covariates modelled time-varying process. Set type process time_varying_type. See help time_varying_type warnings modelling first time step. Structure shared delta models. time_varying_type Type time-varying process apply time_varying formula. 'rw' indicates random walk first time step estimated independently (included legacy reasons), 'rw0' indicates random walk first time step estimated mean-zero normal prior, 'ar1' indicates stationary first-order autoregressive process first time step estimated mean-zero prior. case 'rw', careful include covariates (including intercept) main time-varying formula since first time step estimated independently. .e., case, least one ~ 0 ~ -1. Structure shared delta models. spatial_varying optional one-sided formula coefficients vary space random fields. Note likely want include fixed effect variable improve interpretability since random field assumed mean 0. (scaled) time column used, represent local-time-trend model. See doi:10.1111/ecog.05176 spatial trends vignette. Note predictor usually centered mean zero standard deviation approximately 1. spatial intercept controlled spatial argument; therefore, include exclude spatial intercept setting spatial = '' ''. time matters whether spatial_varying excludes intercept case factor predictors. case, spatial_varying excludes intercept (~ 0 ~ -1), set spatial = '' match. Structure must shared delta models. weights numeric vector representing optional likelihood weights conditional model. Implemented glmmTMB: weights sum one internally modified. Can also used trials binomial family; weights argument needs vector name variable data frame. See Details section . offset numeric vector representing model offset character value representing column name offset. delta/hurdle models, applies positive component. Usually log transformed variable. extra_time Optional extra time slices (e.g., years) include interpolation forecasting predict function. See Details section . reml Logical: use REML (restricted maximum likelihood) estimation rather maximum likelihood? Internally, adds fixed effects list random effects integrate . silent Silent include optimization details? Helpful set FALSE models take fit. anisotropy Logical: allow anisotropy (spatial correlation directionally dependent)? See plot_anisotropy(). Must shared across delta models. control Optimization control options via sdmTMBcontrol(). priors Optional penalties/priors via sdmTMBpriors(). Must currently shared across delta models. knots Optional named list containing knot values used basis construction smoothing terms. See mgcv::gam() mgcv::gamm(). E.g., s(x, bs = 'cc', k = 4), knots = list(x = c(1, 2, 3, 4)) bayesian Logical indicating model passed tmbstan. TRUE, Jacobian adjustments applied account parameter transformations priors applied. previous_fit previously fitted sdmTMB model initialize optimization . Can greatly speed fitting. Note model must set exactly way. However, data weights arguments can change, can useful cross-validation. do_fit Fit model (TRUE) return processed data without fitting (FALSE)? do_index index standardization calculations fitting? Saves memory time working large datasets projection grids since TMB object rebuilt predict.sdmTMB() get_index(). TRUE, predict_args must newdata element supplied area can supplied index_args. users can ignore option. fitted object can passed directly get_index(). predict_args list arguments pass predict.sdmTMB() do_index = TRUE. users can ignore option. index_args list arguments pass get_index() do_index = TRUE. Currently, area supported. Bias correction can done calling get_index() resulting fitted object. users can ignore option. experimental named list esoteric -development options. dragons.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"object (list) class sdmTMB. Useful elements include: sd_report: output TMB::sdreport() gradients: marginal log likelihood gradients respect fixed effect model: output stats::nlminb() data: fitted data mesh: object supplied mesh argument family: family object, includes inverse link function family$linkinv() tmb_params: parameters list passed TMB::MakeADFun() tmb_map: 'map' list passed TMB::MakeADFun() tmb_data: data list passed TMB::MakeADFun() tmb_obj: TMB object created TMB::MakeADFun()","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Model description See model description vignette relevant appendix preprint sdmTMB: doi:10.1101/2022.03.24.485545 Binomial families Following structure stats::glm() glmmTMB, binomial family can specified one 4 ways: (1) response may factor (model classifies first level versus others), (2) response may binomial (0/1), (3) response can matrix form cbind(success, failure), (4) response may observed proportions, 'weights' argument used specify Binomial size (N) parameter (prob ~ ..., weights = N). Smooth terms Smooth terms can included following GAMs (generalized additive models) using + s(x), implements smooth mgcv::s(). sdmTMB uses penalized smooths, constructed via mgcv::smooth2random(). similar approach implemented gamm4 brms, among packages. Within smooths, syntax commonly used mgcv::s() mgcv::t2() can applied, e.g. 2-dimensional smooths may constructed + s(x, y) + t2(x, y); smooths can specific various factor levels, + s(x, = group); basis function dimensions may specified, e.g. + s(x, k = 4); various types splines may constructed cyclic splines model seasonality (perhaps knots argument also supplied). Threshold models linear break-point relationship covariate can included via + breakpt(variable) formula, variable single covariate corresponding column data. case, relationship linear point constant (hockey-stick shaped). Similarly, logistic-function threshold model can included via + logistic(variable). option models relationship logistic function 50% 95% values. similar length- size-based selectivity fisheries, parameterized points f(x) = 0.5 0.95. See threshold vignette. Note single threshold covariate can included covariate included components delta families. Extra time: forecasting interpolating Extra time slices (e.g., years) can included interpolation forecasting predict function via extra_time argument. predict function requires time slices defined fitting model ensure various time indices set correctly. careful including extra time slices model remains identifiable. example, including + .factor(year) formula render model data inform expected value missing year. sdmTMB() makes attempt determine model makes sense forecasting interpolation. options time_varying, spatiotemporal = \"rw\", spatiotemporal = \"ar1\", smoother time column provide mechanisms predict missing time slices process error. extra_time can also used fill missing time steps purposes random walk AR(1) process gaps time steps uneven. extra_time can include extra time steps time steps including found fitted data. latter option may simpler. Regularization priors can achieve regularization via penalties (priors) fixed effect parameters. See sdmTMBpriors(). can fit model without penalties look output print(your_model) tidy(your_model) fit model do_fit = FALSE inspect head(your_model$tmb_data$X_ij[[1]]) want see formula translated fixed effect model matrix. Also see Bayesian vignette. Delta/hurdle models Delta models (also known hurdle models) can fit two separate models time using appropriate delta family. E.g.: delta_gamma(), delta_beta(), delta_lognormal(), delta_truncated_nbinom2(). fit delta family, default formula, spatial, spatiotemporal components shared. elements can specified independently two models using list format. include formula, spatial, spatiotemporal, share_range. first element list binomial component second element positive component (e.g., Gamma). elements must shared now (e.g., spatially varying coefficients, time-varying coefficients). Furthermore, currently limitations specifying two formulas list: two formulas smoothers, threshold effects, random intercepts. now, must specified single formula shared across two models. main advantage specifying models using delta family (compared fitting two separate models) (1) coding simplicity (2) calculation uncertainty derived quantities index abundance get_index() using generalized delta method within TMB. Also, selected parameters can shared across models. See delta-model vignette. Index standardization index standardization, may wish include 0 + .factor(year) (whatever time column called) formula. See basic example index standardization relevant package vignette. need specify time argument. See get_index().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Main reference introducing package cite using sdmTMB: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett. 2022. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi:10.1101/2022.03.24.485545 . Reference local trends: Barnett, L..K., E.J. Ward, S.C. Anderson. 2021. Improving estimates species distribution change incorporating local trends. Ecography. 44(3):427-439. doi:10.1111/ecog.05176 . explanation model application calculating climate velocities: English, P., E.J. Ward, C.N. Rooper, R.E. Forrest, L.. Rogers, K.L. Hunter, .M. Edwards, B.M. Connors, S.C. Anderson. 2021. Contrasting climate velocity impacts warm cool locations show effects marine warming worse already warmer temperate waters. Fish Fisheries. 23(1) 239-255. doi:10.1111/faf.12613 . Discussion illustration decision points fitting models: Commander, C.J.C., L..K. Barnett, E.J. Ward, S.C. Anderson, T.E. Essington. 2022. shadow model: small choices spatially explicit species distribution models affect predictions. PeerJ 10: e12783. doi:10.7717/peerj.12783 . Application description threshold/break-point models: Essington, T.E., S.C. Anderson, L..K. Barnett, H.M. Berger, S.. Siedlecki, E.J. Ward. 2022. Advancing statistical models reveal effect dissolved oxygen spatial distribution marine taxa using thresholds physiologically based index. Ecography. 2022: e06249 doi:10.1111/ecog.06249 . Application fish body condition: Lindmark, M., S.C. Anderson, M. Gogina, M. Casini. Evaluating drivers spatiotemporal individual condition bottom-associated marine fish. bioRxiv 2022.04.19.488709. doi:10.1101/2022.04.19.488709 . Several sections original TMB model code adapted VAST R package: Thorson, J.T. 2019. Guidance decisions using Vector Autoregressive Spatio-Temporal (VAST) package stock, ecosystem, habitat climate assessments. Fish. Res. 210:143–161. doi:10.1016/j.fishres.2018.10.013 . Code family R--TMB implementation, selected parameterizations observation likelihoods, general package structure inspiration, idea behind TMB prediction approach adapted glmmTMB R package: Brooks, M.E., K. Kristensen, K.J. van Benthem, . Magnusson, C.W. Berg, . Nielsen, H.J. Skaug, M. Maechler, B.M. Bolker. 2017. glmmTMB Balances Speed Flexibility Among Packages Zero-inflated Generalized Linear Mixed Modeling. R Journal, 9(2):378-400. doi:10.32614/rj-2017-066 . Implementation geometric anisotropy SPDE use random field GLMMs index standardization: Thorson, J.T., .O. Shelton, E.J. Ward, H.J. Skaug. 2015. Geostatistical delta-generalized linear mixed models improve precision estimated abundance indices West Coast groundfishes. ICES J. Mar. Sci. 72(5): 1297–1310. doi:10.1093/icesjms/fsu243 .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"","code":"library(sdmTMB) # Build a mesh to implement the SPDE approach: mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 20) # - this example uses a fairly coarse mesh so these examples run quickly # - 'cutoff' is the minimum distance between mesh vertices in units of the # x and y coordinates # - 'cutoff = 10' might make more sense in applied situations for this dataset # - or build any mesh in 'fmesher' and pass it to the 'mesh' argument in make_mesh()` # - the mesh is not needed if you will be turning off all # spatial/spatiotemporal random fields # Quick mesh plot: plot(mesh) # Fit a Tweedie spatial random field GLMM with a smoother for depth: fit <- sdmTMB( density ~ s(depth), data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.16 0.34 #> sdepth 1.94 3.13 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.07 #> #> Dispersion parameter: 13.68 #> Tweedie p: 1.58 #> Matérn range: 16.84 #> Spatial SD: 2.20 #> ML criterion at convergence: 2937.789 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Extract coefficients: tidy(fit, conf.int = TRUE) #> # A tibble: 1 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 2.16 0.340 1.50 2.83 tidy(fit, effects = \"ran_par\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 16.8 13.7 3.40 83.3 #> 2 phi 13.7 0.663 12.4 15.0 #> 3 sigma_O 2.20 1.23 0.735 6.59 #> 4 tweedie_p 1.58 0.0153 1.55 1.61 # Perform several 'sanity' checks: sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large # Predict on the fitted data; see ?predict.sdmTMB p <- predict(fit) # Predict on new data: p <- predict(fit, newdata = qcs_grid) head(p) #> X Y depth depth_scaled depth_scaled2 est est_non_rf est_rf #> 1 456 5636 347.0834 1.5608122 2.43613479 -4.726638 -4.567385 -0.15925308 #> 2 458 5636 223.3348 0.5697699 0.32463771 2.342470 2.368314 -0.02584421 #> 3 460 5636 203.7408 0.3633693 0.13203724 3.087513 2.979948 0.10756466 #> 4 462 5636 183.2987 0.1257046 0.01580166 3.878560 3.637586 0.24097353 #> 5 464 5636 182.9998 0.1220368 0.01489297 4.020914 3.646532 0.37438240 #> 6 466 5636 186.3892 0.1632882 0.02666303 4.050895 3.543104 0.50779127 #> omega_s #> 1 -0.15925308 #> 2 -0.02584421 #> 3 0.10756466 #> 4 0.24097353 #> 5 0.37438240 #> 6 0.50779127 # \\donttest{ # Visualize the depth effect with ggeffects: ggeffects::ggpredict(fit, \"depth [all]\") |> plot() # Visualize depth effect with visreg: (see ?visreg_delta) visreg::visreg(fit, xvar = \"depth\") # link space; randomized quantile residuals visreg::visreg(fit, xvar = \"depth\", scale = \"response\") visreg::visreg(fit, xvar = \"depth\", scale = \"response\", gg = TRUE, rug = FALSE) # Add spatiotemporal random fields: fit <- sdmTMB( density ~ 0 + as.factor(year), time = \"year\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> as.factor(year)2011 2.76 0.36 #> as.factor(year)2013 3.10 0.35 #> as.factor(year)2015 3.21 0.35 #> as.factor(year)2017 2.47 0.36 #> #> Dispersion parameter: 14.83 #> Tweedie p: 1.57 #> Matérn range: 13.31 #> Spatial SD: 3.16 #> Spatiotemporal IID SD: 1.79 #> ML criterion at convergence: 3007.552 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Make the fields AR1: fit <- sdmTMB( density ~ s(depth), time = \"year\", spatial = \"off\", spatiotemporal = \"ar1\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.84 0.33 #> sdepth 1.96 3.27 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.6 #> #> Dispersion parameter: 12.84 #> Tweedie p: 1.55 #> Spatiotemporal AR1 correlation (rho): 0.67 #> Matérn range: 12.22 #> Spatiotemporal marginal AR1 SD: 3.28 #> ML criterion at convergence: 2914.393 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Make the fields a random walk: fit <- sdmTMB( density ~ s(depth), time = \"year\", spatial = \"off\", spatiotemporal = \"rw\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.95 0.34 #> sdepth 1.96 3.18 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.22 #> #> Dispersion parameter: 12.84 #> Tweedie p: 1.56 #> Matérn range: 14.66 #> Spatiotemporal RW SD: 2.17 #> ML criterion at convergence: 2919.181 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Depth smoothers by year: fit <- sdmTMB( density ~ s(depth, by = as.factor(year)), #< time = \"year\", spatial = \"off\", spatiotemporal = \"rw\", data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth, by = as.factor(year)) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.76 0.34 #> sdepth):as.factor(year)2011 0.07 4.02 #> sdepth):as.factor(year)2013 4.59 3.28 #> sdepth):as.factor(year)2015 5.97 6.01 #> sdepth):as.factor(year)2017 -1.97 3.22 #> #> Smooth terms: #> Std. Dev. #> sds(depth):as.factor(year)2011) 16.62 #> sds(depth):as.factor(year)2013) 13.57 #> sds(depth):as.factor(year)2015) 28.24 #> sds(depth):as.factor(year)2017) 18.65 #> #> Dispersion parameter: 12.70 #> Tweedie p: 1.55 #> Matérn range: 8.62 #> Spatiotemporal RW SD: 3.14 #> ML criterion at convergence: 2924.193 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # 2D depth-year smoother: fit <- sdmTMB( density ~ s(depth, year), #< spatial = \"off\", data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth, year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.55 0.24 #> sdepthyear_1 -0.15 0.09 #> sdepthyear_2 -2.93 2.07 #> #> Smooth terms: #> Std. Dev. #> sds(depth,year) 6.08 #> #> Dispersion parameter: 14.95 #> Tweedie p: 1.60 #> ML criterion at convergence: 2974.143 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Turn off spatial random fields: fit <- sdmTMB( present ~ poly(log(depth)), spatial = \"off\", #< data = pcod_2011, mesh = mesh, family = binomial() ) fit #> Model fit by ML ['sdmTMB'] #> Formula: present ~ poly(log(depth)) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.16 0.07 #> poly(log(depth)) -13.19 2.14 #> #> ML criterion at convergence: 648.334 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Which, matches glm(): fit_glm <- glm( present ~ poly(log(depth)), data = pcod_2011, family = binomial() ) summary(fit_glm) #> #> Call: #> glm(formula = present ~ poly(log(depth)), family = binomial(), #> data = pcod_2011) #> #> Coefficients: #> Estimate Std. Error z value Pr(>|z|) #> (Intercept) -0.16433 0.06583 -2.496 0.0126 * #> poly(log(depth)) -13.18981 2.14179 -6.158 7.35e-10 *** #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #> #> (Dispersion parameter for binomial family taken to be 1) #> #> Null deviance: 1337.2 on 968 degrees of freedom #> Residual deviance: 1296.7 on 967 degrees of freedom #> AIC: 1300.7 #> #> Number of Fisher Scoring iterations: 4 #> AIC(fit, fit_glm) #> df AIC #> fit 2 1300.668 #> fit_glm 2 1300.668 # Delta/hurdle binomial-Gamma model: fit_dg <- sdmTMB( density ~ poly(log(depth), 2), data = pcod_2011, mesh = mesh, spatial = \"off\", family = delta_gamma() #< ) fit_dg #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(log(depth), 2) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(log(depth), 2)1 -23.06 3.15 #> poly(log(depth), 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(log(depth), 2)1 -5.49 3.50 #> poly(log(depth), 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Delta model with different formulas and spatial structure: fit_dg <- sdmTMB( list(density ~ depth_scaled, density ~ poly(depth_scaled, 2)), #< data = pcod_2011, mesh = mesh, spatial = list(\"off\", \"on\"), #< family = delta_gamma() ) fit_dg #> Spatial model fit by ML ['sdmTMB'] #> Formula: list(density ~ depth_scaled, density ~ poly(depth_scaled, 2)) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.17 0.07 #> depth_scaled -0.43 0.07 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.08 0.14 #> poly(depth_scaled, 2)1 -6.15 4.52 #> poly(depth_scaled, 2)2 -12.58 4.14 #> #> Dispersion parameter: 0.72 #> Matérn range: 0.01 #> Spatial SD: 2149.14 #> #> ML criterion at convergence: 3034.512 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** # Delta/hurdle truncated NB2: pcod_2011$count <- round(pcod_2011$density) fit_nb2 <- sdmTMB( count ~ s(depth), data = pcod_2011, mesh = mesh, spatial = \"off\", family = delta_truncated_nbinom2() #< ) fit_nb2 #> Model fit by ML ['sdmTMB'] #> Formula: count ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_truncated_nbinom2(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.69 0.21 #> sdepth 0.29 2.37 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 9.6 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: truncated_nbinom2(link = 'log') #> coef.est coef.se #> (Intercept) 4.18 0.22 #> sdepth -0.37 1.77 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 6.73 #> #> Dispersion parameter: 0.49 #> #> ML criterion at convergence: 2915.733 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Regular NB2: fit_nb2 <- sdmTMB( count ~ s(depth), data = pcod_2011, mesh = mesh, spatial = \"off\", family = nbinom2() #< ) fit_nb2 #> Model fit by ML ['sdmTMB'] #> Formula: count ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.49 0.27 #> sdepth 3.61 3.96 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 16.4 #> #> Dispersion parameter: 0.14 #> ML criterion at convergence: 3006.939 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # IID random intercepts by year: pcod_2011$fyear <- as.factor(pcod_2011$year) fit <- sdmTMB( density ~ s(depth) + (1 | fyear), #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) + (1 | fyear) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.13 0.37 #> sdepth 1.82 2.99 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 12.51 #> #> Random intercepts: #> Std. Dev. #> fyear 0.3 #> #> Dispersion parameter: 13.55 #> Tweedie p: 1.58 #> Matérn range: 16.66 #> Spatial SD: 2.21 #> ML criterion at convergence: 2933.138 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Spatially varying coefficient of year: pcod_2011$year_scaled <- as.numeric(scale(pcod_2011$year)) fit <- sdmTMB( density ~ year_scaled, spatial_varying = ~ 0 + year_scaled, #< data = pcod_2011, mesh = mesh, family = tweedie(), time = \"year\" ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ year_scaled #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.86 0.33 #> year_scaled -0.06 0.15 #> #> Dispersion parameter: 14.79 #> Tweedie p: 1.56 #> Matérn range: 20.56 #> Spatial SD: 2.38 #> Spatially varying coefficient SD (year_scaled): 0.81 #> Spatiotemporal IID SD: 1.11 #> ML criterion at convergence: 3008.886 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Time-varying effects of depth and depth squared: fit <- sdmTMB( density ~ 0 + as.factor(year), time_varying = ~ 0 + depth_scaled + depth_scaled2, #< data = pcod_2011, time = \"year\", mesh = mesh, family = tweedie() ) print(fit) #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> as.factor(year)2011 3.73 0.30 #> as.factor(year)2013 3.64 0.28 #> as.factor(year)2015 4.00 0.29 #> as.factor(year)2017 3.31 0.32 #> #> Time-varying parameters: #> coef.est coef.se #> depth_scaled-2011 -0.87 0.16 #> depth_scaled-2013 -0.81 0.13 #> depth_scaled-2015 -0.75 0.13 #> depth_scaled-2017 -1.11 0.23 #> depth_scaled2-2011 -1.92 0.29 #> depth_scaled2-2013 -0.92 0.14 #> depth_scaled2-2015 -1.59 0.22 #> depth_scaled2-2017 -2.20 0.35 #> #> Dispersion parameter: 12.80 #> Tweedie p: 1.56 #> Matérn range: 0.01 #> Spatial SD: 2572.51 #> Spatiotemporal IID SD: 2087.60 #> ML criterion at convergence: 2911.371 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** # Extract values: est <- as.list(fit$sd_report, \"Estimate\") se <- as.list(fit$sd_report, \"Std. Error\") est$b_rw_t[, , 1] #> [,1] [,2] #> [1,] -0.8738038 -1.9199722 #> [2,] -0.8115162 -0.9195934 #> [3,] -0.7514766 -1.5858307 #> [4,] -1.1064060 -2.1992575 se$b_rw_t[, , 1] #> [,1] [,2] #> [1,] 0.1619744 0.2944087 #> [2,] 0.1287059 0.1386946 #> [3,] 0.1346182 0.2197914 #> [4,] 0.2305927 0.3514650 # Linear break-point effect of depth: fit <- sdmTMB( density ~ breakpt(depth_scaled), #< data = pcod_2011, mesh = mesh, family = tweedie() ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ breakpt(depth_scaled) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 4.11 0.33 #> depth_scaled-slope 1.07 0.22 #> depth_scaled-breakpt -1.30 0.25 #> #> Dispersion parameter: 15.19 #> Tweedie p: 1.58 #> Matérn range: 23.57 #> Spatial SD: 1.92 #> ML criterion at convergence: 2997.241 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":null,"dir":"Reference","previous_headings":"","what":"Cross validation with sdmTMB models — sdmTMB_cv","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"Facilitates cross validation sdmTMB models. Returns log likelihood left-data, similar spirit ELPD (expected log pointwise predictive density). function option leave-future-cross validation. default, function creates folds randomly folds can manually assigned via fold_ids argument.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"","code":"sdmTMB_cv( formula, data, mesh_args, mesh = NULL, time = NULL, k_folds = 8, fold_ids = NULL, lfo = FALSE, lfo_forecast = 1, lfo_validations = 5, parallel = TRUE, use_initial_fit = FALSE, future_globals = NULL, spde = deprecated(), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"formula Model formula. data data frame. mesh_args Arguments make_mesh(). supplied, mesh reconstructed fold. mesh Output make_mesh(). supplied, mesh constant across folds. time name time column. Leave NULL spatial data. k_folds Number folds. fold_ids Optional vector containing user fold IDs. Can also single string, e.g. \"fold_id\" representing name variable data. Ignored lfo TRUE lfo Whether implement leave-future-(LFO) cross validation data used predict future folds. time argument sdmTMB() must specified. See Details section . lfo_forecast lfo = TRUE, number time steps forecast. Time steps 1, ..., T used predict T + lfo_forecast last forecasted time step used validation. See Details section . lfo_validations lfo = TRUE, number times step LFOCV process. Defaults 5. See Details section . parallel TRUE future::plan() supplied, run parallel. use_initial_fit Fit first fold use parameter values starting values subsequent folds? Can faster many folds. future_globals character vector global variables used within arguments error returned future.apply find object. vector appended TRUE passed argument future.globals future.apply::future_lapply(). Useful global objects used specify arguments like priors, families, etc. spde Depreciated. Use mesh instead. ... arguments required run sdmTMB() model exception weights, used define folds.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"list: data: Original data plus columns fold ID, CV predicted value, CV log likelihood. models: list models; one per fold. fold_loglik: Sum left-log likelihoods per fold. positive values better. sum_loglik: Sum fold_loglik across left-data. positive values better. pdHess: Logical vector: Hessian invertible fold? converged: Logical: pdHess TRUE? max_gradients: Max gradient per fold. Prior sdmTMB version '0.3.0.9002', elpd incorrectly returned log average likelihood, another metric compare models , ELPD. maximum likelihood, ELPD equivalent spirit sum log likelihoods.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"Parallel processing Parallel processing can used setting future::plan(). example: Leave-future-cross validation (LFOCV) example LFOCV 9 time steps, lfo_forecast = 1, lfo_validations = 2: Fit data time steps 1 7, predict validate step 8. Fit data time steps 1 8, predict validate step 9. example LFOCV 9 time steps, lfo_forecast = 2, lfo_validations = 3: Fit data time steps 1 5, predict validate step 7. Fit data time steps 1 6, predict validate step 8. Fit data time steps 1 7, predict validate step 9. See example .","code":"library(future) plan(multisession) # now use sdmTMB_cv() ..."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) # Set parallel processing first if desired with the future package. # See the Details section above. m_cv <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m_cv$fold_loglik #> [1] -3351.292 -3298.167 m_cv$sum_loglik #> [1] -6649.459 head(m_cv$data) #> # A tibble: 6 × 15 #> year X Y depth density present lat lon depth_mean depth_sd #> #> 1 2003 446. 5793. 201 113. 1 52.3 -130. 5.16 0.445 #> 2 2003 446. 5800. 212 41.7 1 52.3 -130. 5.16 0.445 #> 3 2003 449. 5802. 220 0 0 52.4 -130. 5.16 0.445 #> 4 2003 437. 5802. 197 15.7 1 52.4 -130. 5.16 0.445 #> 5 2003 421. 5771. 256 0 0 52.1 -130. 5.16 0.445 #> 6 2003 418. 5772. 293 0 0 52.1 -130. 5.16 0.445 #> # ℹ 5 more variables: depth_scaled , depth_scaled2 , cv_fold , #> # cv_predicted , cv_loglik m_cv$models[[1]] #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + depth_scaled + depth_scaled2 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> depth_scaled -2.07 0.23 #> depth_scaled2 -1.57 0.14 #> #> Dispersion parameter: 14.61 #> Tweedie p: 1.64 #> Matérn range: 100.81 #> Spatial SD: 3.11 #> ML criterion at convergence: 3191.001 #> #> See ?tidy.sdmTMB to extract these values as a data frame. m_cv$max_gradients #> [1] 2.788299e-08 6.945591e-10 # \\donttest{ # Create mesh each fold: m_cv2 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh_args = list(xy_cols = c(\"X\", \"Y\"), cutoff = 20), family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Use fold_ids: m_cv3 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), fold_ids = rep(seq(1, 3), nrow(pcod))[seq(1, nrow(pcod))] ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"sdmTMB_simulate() uses TMB simulate new data given specified parameter values. simulate.sdmTMB(), hand, takes existing model fit simulates new observations optionally new random effects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"","code":"sdmTMB_simulate( formula, data, mesh, family = gaussian(link = \"identity\"), time = NULL, B = NULL, range = NULL, rho = NULL, sigma_O = NULL, sigma_E = NULL, sigma_Z = NULL, phi = NULL, tweedie_p = NULL, df = NULL, threshold_coefs = NULL, fixed_re = list(omega_s = NULL, epsilon_st = NULL, zeta_s = NULL), previous_fit = NULL, seed = sample.int(1e+06, 1), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"formula one-sided formula describing fixed-effect structure. Random intercepts (yet) supported. Fixed effects match corresponding B argument vector coefficient values. data data frame containing predictors described formula time column time specified. mesh Output make_mesh(). family Family sdmTMB(). Delta families supported. Instead, simulate two component models separately combine. time time column name. B vector beta values (fixed-effect coefficient values). range Parameter controls decay spatial correlation. vector length 2, share_range set FALSE spatial spatiotemporal ranges unique. rho Spatiotemporal correlation years; -1 1. sigma_O SD spatial process (Omega). sigma_E SD spatiotemporal process (Epsilon). sigma_Z SD spatially varying coefficient field (Zeta). phi Observation error scale parameter (e.g., SD Gaussian). tweedie_p Tweedie p (power) parameter; 1 2. df Student-t degrees freedom. threshold_coefs optional vector threshold coefficient values formula includes breakpt() logistic(). breakpt(), slope cut values. logistic(), threshold function 50% maximum, threshold function 95% maximum, maximum. See model description vignette details. fixed_re list optional random effects fix specified (e.g., previously estimated) values. Values NULL result random effects simulated. previous_fit (Deprecated; please use simulate.sdmTMB()). optional previous sdmTMB() fit pull parameter values. -ruled non-NULL specified parameter arguments. seed Seed number. ... arguments pass sdmTMB().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"data frame : 1st column time variable (present). 2nd 3rd columns spatial coordinates. omega_s represents simulated spatial random effects (present). zeta_s represents simulated spatial varying covariate field (present). epsilon_st represents simulated spatiotemporal random effects (present). eta true value link space mu true value inverse link space. observed represents simulated process observation error. remaining columns fixed-effect model matrix.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"","code":"set.seed(123) # make fake predictor(s) (a1) and sampling locations: predictor_dat <- data.frame( X = runif(300), Y = runif(300), a1 = rnorm(300), year = rep(1:6, each = 50) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) sim_dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.5, sigma_E = 0.1, phi = 0.1, sigma_O = 0.2, seed = 42, B = c(0.2, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. head(sim_dat) #> year X Y omega_s epsilon_st mu eta #> 1 1 0.2875775 0.784575267 -0.02131861 -0.02779393 0.4369843 0.4369843 #> 2 1 0.7883051 0.009429905 0.28852319 0.09092583 0.8805246 0.8805246 #> 3 1 0.4089769 0.779065883 0.13541643 -0.08468148 0.6261504 0.6261504 #> 4 1 0.8830174 0.729390652 0.28597232 -0.01660011 0.8903775 0.8903775 #> 5 1 0.9404673 0.630131853 0.21070545 0.02005202 0.6056213 0.6056213 #> 6 1 0.0455565 0.480910830 -0.08071932 -0.11409909 -0.1272901 -0.1272901 #> observed (Intercept) a1 #> 1 0.4176273 1 -0.7152422 #> 2 0.8802910 1 -0.7526890 #> 3 0.6248675 1 -0.9385387 #> 4 0.9055722 1 -1.0525133 #> 5 0.6654724 1 -0.4371595 #> 6 -0.1399113 1 0.3311792 if (require(\"ggplot2\", quietly = TRUE)) { ggplot(sim_dat, aes(X, Y, colour = observed)) + geom_point() + facet_wrap(~year) + scale_color_gradient2() } # fit to the simulated data: fit <- sdmTMB(observed ~ a1, data = sim_dat, mesh = mesh, time = \"year\") fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.23 0.09 #> a1 -0.39 0.01 #> #> Dispersion parameter: 0.09 #> Matérn range: 0.40 #> Spatial SD: 0.21 #> Spatiotemporal IID SD: 0.11 #> ML criterion at convergence: -162.527 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":null,"dir":"Reference","previous_headings":"","what":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"approach described Yao et al. (2018) doi:10.1214/17-BA1091 . general method minimizes (maximizes) quantity across models. simple models normal error, may root mean squared error (RMSE), approaches include log score. adopt latter , log scores used generate stacking predictive distributions","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"","code":"sdmTMB_stacking(model_list, include_folds = NULL)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"model_list list models fit sdmTMB_cv() generate estimates predictive densities. want set seed value fitting model manually construct fold IDs across models. include_folds optional numeric vector specifying folds include calculations. example, 5 folds used k-fold cross validation, first 4 needed generate weights, include_folds = 1:4.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"vector model weights.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"Yao, Y., Vehtari, ., Simpson, D., Gelman, . 2018. Using Stacking Average Bayesian Predictive Distributions (Discussion). Bayesian Analysis 13(3): 917–1007. International Society Bayesian Analysis. doi:10.1214/17-BA1091","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"","code":"# \\donttest{ # Set parallel processing if desired. See 'Details' in ?sdmTMB_cv # Depth as quadratic: set.seed(1) m_cv_1 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Depth as linear: set.seed(1) m_cv_2 <- sdmTMB_cv( density ~ 0 + depth_scaled, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Only an intercept: set.seed(1) m_cv_3 <- sdmTMB_cv( density ~ 1, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. models <- list(m_cv_1, m_cv_2, m_cv_3) weights <- sdmTMB_stacking(models) weights #> [1] 0.9038042 0.0182349 0.0779609 # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":null,"dir":"Reference","previous_headings":"","what":"Optimization control options — sdmTMBcontrol","title":"Optimization control options — sdmTMBcontrol","text":"sdmTMB() stats::nlminb() control options.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Optimization control options — sdmTMBcontrol","text":"","code":"sdmTMBcontrol( eval.max = 2000L, iter.max = 1000L, normalize = FALSE, nlminb_loops = 1L, newton_loops = 1L, mgcv = deprecated(), quadratic_roots = FALSE, start = NULL, map_rf = deprecated(), map = NULL, lower = NULL, upper = NULL, censored_upper = NULL, multiphase = TRUE, profile = FALSE, get_joint_precision = TRUE, parallel = getOption(\"sdmTMB.cores\", 1L), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Optimization control options — sdmTMBcontrol","text":"eval.max Maximum number evaluations objective function allowed. iter.max Maximum number iterations allowed. normalize Logical: use TMB::normalize() normalize process likelihood using Laplace approximation? Can result substantial speed boost cases. used default FALSE prior May 2021. Currently working models fit REML random intercepts. nlminb_loops many times run stats::nlminb() optimization. Sometimes restarting optimizer previous best values aids convergence. maximum gradient still large, try increasing 2. newton_loops many Newton optimization steps try running stats::nlminb(). sometimes aids convergence reducing log-likelihood gradient respect fixed effects. calculates Hessian current MLE stats::optimHess() using finite-difference approach uses update fixed effect estimates. mgcv Deprecated Parse formula mgcv::gam()? quadratic_roots Experimental feature internal use right now; may moved branch. Logical: quadratic roots calculated? Note: sdmTMB side, first two coefficients used generate quadratic parameters. means want generate quadratic profile depth, depth depth^2 part formula, need make sure listed first intercept included. example, formula = cpue ~ 0 + depth + depth2 + .factor(year). start named list specifying starting values parameters. can see necessary structure fitting model inspecting your_model$tmb_obj$env$parList(). Elements start specified replace default starting values. map_rf Deprecated use spatial = '', spatiotemporal = '' sdmTMB(). map named list factor NAs specifying parameter values fixed constant value. See documentation TMB::MakeADFun(). usually used start specify fixed value. lower optional named list lower bounds within optimization. Parameter vectors name (e.g., b_j ln_kappa cases) can specified numeric vector. E.g. lower = list(b_j = c(-5, -5)). upper optional named list upper bounds within optimization. censored_upper optional vector upper bounds sdmTMBcontrol(). Values NA indicate unbounded right-censored distribution, values greater observation indicate upper bound, values equal observation indicate censoring. multiphase Logical: estimate fixed random effects phases? Phases usually faster stable. profile Logical: population-level/fixed effects profiled likelihood? appended random effects vector without Laplace approximation. See TMB::MakeADFun(). can dramatically speed model fit many fixed effects experimental stage. get_joint_precision Logical. Passed getJointPrecision TMB::sdreport(). Must TRUE use simulation-based methods predict.sdmTMB() [get_index_sims()]. needed, setting FALSE reduce object size. parallel Argument currently ignored. parallel processing 3 cores, example, use TMB::openmp(n = 3, DLL = \"sdmTMB\"). careful, always faster cores definitely upper limit. ... Anything else. See 'Control parameters' section stats::nlminb().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Optimization control options — sdmTMBcontrol","text":"list control arguments","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Optimization control options — sdmTMBcontrol","text":"Usually used within sdmTMB(). example:","code":"sdmTMB(..., control = sdmTMBcontrol(newton_loops = 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Optimization control options — sdmTMBcontrol","text":"","code":"sdmTMBcontrol() #> $eval.max #> [1] 2000 #> #> $iter.max #> [1] 1000 #> #> $normalize #> [1] FALSE #> #> $nlminb_loops #> [1] 1 #> #> $newton_loops #> [1] 1 #> #> $profile #> [1] FALSE #> #> $quadratic_roots #> [1] FALSE #> #> $start #> NULL #> #> $map #> NULL #> #> $lower #> NULL #> #> $upper #> NULL #> #> $censored_upper #> NULL #> #> $multiphase #> [1] TRUE #> #> $parallel #> [1] 1 #> #> $get_joint_precision #> [1] TRUE #>"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":null,"dir":"Reference","previous_headings":"","what":"Set delta model for ggeffects::ggpredict() — set_delta_model","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"Set delta model component predict ggeffects::ggpredict().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"","code":"set_delta_model(x, model = c(NA, 1, 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"x sdmTMB() model fit delta family delta_gamma(). model delta/hurdle model component predict/plot . NA combined prediction, 1 binomial part, 2 positive part.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"fitted model new attribute named delta_model_predict. suggest use set_delta_model() pipe (examples) attribute persist. Otherwise, predict.sdmTMB() choose model component default. can also remove attribute :","code":"attr(fit, \"delta_model_predict\") <- NULL"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"complete version examples : run CRAN version ggeffects > 1.3.2 CRAN. now, can install GitHub version ggeffects. https://github.com/strengejacke/ggeffects.","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2), data = pcod_2011, spatial = \"off\", family = delta_gamma()) # binomial part: set_delta_model(fit, model = 1) |> ggeffects::ggpredict(\"depth_scaled [all]\") # gamma part: set_delta_model(fit, model = 2) |> ggeffects::ggpredict(\"depth_scaled [all]\") # combined: set_delta_model(fit, model = NA) |> ggeffects::ggpredict(\"depth_scaled [all]\")"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2), data = pcod_2011, spatial = \"off\", family = delta_gamma()) # binomial part: set_delta_model(fit, model = 1) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # gamma part: set_delta_model(fit, model = 2) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # combined: set_delta_model(fit, model = NA) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"simulate.sdmTMB S3 method producing matrix simulations fitted model. similar lme4::simulate.merMod() glmmTMB::simulate.glmmTMB(). can used DHARMa package among uses.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"","code":"# S3 method for sdmTMB simulate( object, nsim = 1L, seed = sample.int(1e+06, 1L), type = c(\"mle-eb\", \"mle-mvn\"), model = c(NA, 1, 2), re_form = NULL, mcmc_samples = NULL, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"object sdmTMB model nsim Number response lists simulate. Defaults 1. seed Random number seed type parameters treated. \"mle-eb\": fixed effects maximum likelihood (MLE) estimates random effects empirical Bayes (EB) estimates. \"mle-mvn\": fixed effects MLEs random effects taken single approximate sample. latter option suggested approach simulations used goodness fit testing (e.g., DHARMa package). model delta/hurdle model, model simulate ? NA = combined, 1 = first model, 2 = second mdoel. re_form NULL specify simulation conditional fitted random effects (simulates observation error). ~0 NA simulate new random affects (smoothers, internally random effects, simulated new). mcmc_samples optional matrix MCMC samples. See extract_mcmc() sdmTMBextra package. ... Extra arguments (used)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"Returns matrix; number columns nsim.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"","code":"# start with some data simulated from scratch: set.seed(1) predictor_dat <- data.frame(X = runif(300), Y = runif(300), a1 = rnorm(300)) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, mesh = mesh, family = poisson(), range = 0.5, sigma_O = 0.2, seed = 42, B = c(0.2, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit <- sdmTMB(observed ~ 1 + a1, data = dat, family = poisson(), mesh = mesh) # simulate from the model: s1 <- simulate(fit, nsim = 300) dim(s1) #> [1] 300 300 # test whether fitted models are consistent with the observed number of zeros: sum(s1 == 0)/length(s1) #> [1] 0.3297667 sum(dat$observed == 0) / length(dat$observed) #> [1] 0.3466667 # simulate with random effects sampled from their approximate posterior s2 <- simulate(fit, nsim = 1, params = \"mle-mvn\") # these may be useful in conjunction with DHARMa simulation-based residuals # simulate with new random fields: s3 <- simulate(fit, nsim = 1, re_form = ~ 0)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":null,"dir":"Reference","previous_headings":"","what":"Example fish survey data — pcod","title":"Example fish survey data — pcod","text":"Various fish survey datasets.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Example fish survey data — pcod","text":"","code":"pcod pcod_2011 pcod_mesh_2011 qcs_grid dogfish yelloweye hbll_s_grid wcvi_grid"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Example fish survey data — pcod","text":"pcod: Trawl survey data Pacific Cod Queen Charlotte Sound. data frame. pcod_2011: version pcod years 2011 (smaller speed). data frame. pcod_mesh_2011: mesh pre-built pcod_2011 examples. list class sdmTMBmesh. qcs_grid 2x2km prediction grid Queen Charlotte Sound. data frame. dogfish: Trawl survey data Pacific Spiny Dogfish West Coast Vancouver Island. data frame. yelloweye: Survey data Yelloweye Rockfish Hard Bottom Longline Survey (South) West Coast Vancouver Island. hbll_s_grid: survey domain grid go yelloweye. data frame. wcvi_grid: survey domain grid go dogfish. data frame.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"Turn sdmTMB model output tidy data frame","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"","code":"# S3 method for sdmTMB tidy( x, effects = c(\"fixed\", \"ran_pars\", \"ran_vals\"), model = 1, conf.int = FALSE, conf.level = 0.95, exponentiate = FALSE, silent = FALSE, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"x Output sdmTMB(). effects character value. One \"fixed\" ('fixed' main-effect parameters), \"ran_pars\" (standard deviations, spatial range, random effect dispersion-related terms), \"ran_vals\" (individual random intercepts, included; behaves like ranef()). model model tidy delta model (1 2). conf.int Include confidence interval? conf.level Confidence level CI. exponentiate Whether exponentiate fixed-effect coefficient estimates confidence intervals. silent Omit messages? ... Extra arguments (used).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"data frame","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"Follows conventions broom broom.mixed packages. Currently, effects = \"ran_pars\" also includes dispersion-related terms (e.g., phi), actually associated random effects. Standard errors spatial variance terms fit log space (e.g., variance terms, range, parameters associated observation error) omitted avoid confusion. Confidence intervals still available.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2, raw = TRUE), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie() ) tidy(fit) #> # A tibble: 3 × 3 #> term estimate std.error #> #> 1 (Intercept) 3.65 0.281 #> 2 poly(depth_scaled, 2, raw = TRUE)1 -1.54 0.186 #> 3 poly(depth_scaled, 2, raw = TRUE)2 -1.11 0.101 tidy(fit, conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 3.65 0.281 3.10 4.20 #> 2 poly(depth_scaled, 2, raw = TRUE)1 -1.54 0.186 -1.90 -1.17 #> 3 poly(depth_scaled, 2, raw = TRUE)2 -1.11 0.101 -1.31 -0.913 tidy(fit, \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 19.1 14.0 4.58 80.0 #> 2 phi 14.0 0.677 12.8 15.4 #> 3 sigma_O 2.14 0.941 0.906 5.07 #> 4 tweedie_p 1.58 0.0153 1.55 1.61 pcod_2011$fyear <- as.factor(pcod_2011$year) fit <- sdmTMB(density ~ poly(depth_scaled, 2, raw = TRUE) + (1 | fyear), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie() ) tidy(fit, \"ran_vals\") #> # A tibble: 4 × 3 #> term estimate std.error #> #> 1 fyear_2011 0.0163 0.187 #> 2 fyear_2013 0.177 0.188 #> 3 fyear_2015 0.232 0.189 #> 4 fyear_2017 -0.431 0.205"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot sdmTMB models with the visreg package — visreg_delta","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"sdmTMB models fit regular (non-delta) families can passed visreg::visreg() visreg::visreg2d() directly. Examples shown . Delta models can use helper functions visreg_delta() visreg2d_delta() described .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"","code":"visreg_delta(object, ..., model = c(1, 2)) visreg2d_delta(object, ..., model = c(1, 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"object Fit sdmTMB() ... arguments passed visreg::visreg() visreg::visreg2d() model 1st 2nd delta model","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"plot visreg package. Optionally, data plotted invisibly plot = FALSE. useful want make plot .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"Note residuals currently randomized quantile residuals, deviance residuals usual GLMs visreg.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"","code":"if (require(\"ggplot2\", quietly = TRUE) && require(\"visreg\", quietly = TRUE)) { # \\donttest{ fit <- sdmTMB( density ~ s(depth_scaled), data = pcod_2011, spatial = \"off\", family = tweedie() ) visreg::visreg(fit, xvar = \"depth_scaled\") visreg::visreg(fit, xvar = \"depth_scaled\", scale = \"response\") v <- visreg::visreg(fit, xvar = \"depth_scaled\") head(v$fit) # now use ggplot2 etc. if desired # Delta model example: fit_dg <- sdmTMB( density ~ s(depth_scaled, year, k = 8), data = pcod_2011, mesh = pcod_mesh_2011, spatial = \"off\", family = delta_gamma() ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, gg = TRUE) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, gg = TRUE) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, scale = \"response\", gg = TRUE ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, scale = \"response\" ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, scale = \"response\", gg = TRUE, rug = FALSE ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 2, scale = \"response\" ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 1, scale = \"response\", plot.type = \"persp\" ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 2, scale = \"response\", plot.type = \"gg\" ) # } } #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component."},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-development-version","dir":"Changelog","previous_headings":"","what":"sdmTMB (development version)","title":"sdmTMB (development version)","text":"Fix bug est_non_rf1 est_non_rf2 columns following conditions true: predicting new data using delta model including IID random intercepts time-varying coefficients See #342. Thanks @tom-peatman issue report. Add suggestion use optimized BLAS library README. Add warning ’s detected problems reloading (e.g., readRDS()) fitted model. Simultaneously revert approach reloaded models reattached. Check random effects haven’t reverted zero readRDS() fitted model. E.g. get_pars(fit)$omega_s spatial random fields enabled. Move log_ratio_mix parameter 2nd phase starting value -1 instead 0 improve convergence. Fix bugs nbinom1() nbinom2_mix() simulation. Allow profile argument control list take character vector parameters. Add theoretical quantile residuals generalized gamma distribution. Thanks J.C. Dunic. #333 Add poisson-link delta-mixture lognormal. Fix bug simulation Poisson-link delta models. Simplify internal treatment extra time slices (extra_time). #329 less bug prone also fixes recently created bug. #335","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-050","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.5.0","title":"sdmTMB 0.5.0","text":"CRAN release: 2024-04-03 Overhaul residuals vignette (‘article’) https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html including brief intros randomized quantile residuals, simulation-based residuals, ‘one-sample’ residuals, uniform vs. Gaussian residuals. Add check prediction coordinates appear outside fitted coordinates. #285 Fix memory issue Tweedie family large datasets. #302 Add experimental option return standard normal residuals dharma_residuals(). Make simulate.sdmTMB() include extra_time elements. Improved re-initialization saved fitted model objects new sessions. Fix important bug simulate.sdmTMB() method delta families positive linear predictor getting simulated observations present fitted data. Add new \"mle-mvn\" type residuals.sdmTMB() make default. fast option evaluating goodness fit better previous default. See details section ?residuals.sdmTMB details. previous default now called \"mvn-eb\" recommended. Bring dharma_residuals() back sdmTMBextra sdmTMB. Add new option type argument (\"mle-mvn\") make simulation residuals consistent expected distribution. See new documentation ?residuals.sdmTMB. examples ?dharma_residuals illustrate suggested use. Fix bug sanity() gradient checks missing abs() large negative gradients weren’t getting caught. #324 Return offset vector fitted object element. Ensure extra time rows data data element fitted object include extra time slices. Add experimental residuals option “mle-mvn” single approximate posterior sample random effects drawn combined MLE fixed effects produce residuals. may become default option. Add generalized gamma distribution (thanks J.T. Thorson additional work J.C. Dunic.) See gengamma(). distribution still testing phase recommended applied use yet. #286 Detect possible issue factor(time) formula column name used time extra_time specified. #320 Improve sanity() check output NA fixed effect standard errors. Set intern = FALSE within index bias correction, seems considerably faster testing models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-043","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.3","title":"sdmTMB 0.4.3","text":"CRAN release: 2024-02-29 Fix bug likely introduced July 2023 caused issues extra_time specified. important bug models fit extra_time date (using GitHub version) v0.4.2.9004 (2024-02-24) checked current version sdmTMB (v0.4.2.9005 greater). CRAN, affected v0.4.0 (2023-10-20) v0.4.2. Details: essence bug extra_time works padding data fake row data every extra time element (using first row data template). supposed omitted likelihood impact model fitting beyond spacing time-series processes appropriately setting internal structures forecasting. Unfortunately, bug introduced caused fake data (1 per extra time element) included likelihood. Issue error time column NAs. #298 #299 Fix bug get_cog(..., format = \"wide\") time column hardcoded \"year\" accident. Poisson-link delta models now use type argument delta_gamma() delta_lognormal(). delta_poisson_link_gamma() delta_poisson_link_lognormal() deprecated. #290 Delta families can now pass links different default \"logit\" \"log\". #290","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-042","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.2","title":"sdmTMB 0.4.2","text":"CRAN release: 2024-01-18 Force rebuild CRAN binaries fix issue breaking Matrix ABI change causing NaN gradient errors. #288 #287 Fix crash sdmTMB(..., do_index = TRUE) extra_time supplied along predict_args = list(newdata = ...) lacked extra_time elements. Allow get_index() work missing time elements. Add ability pass custom randomized quantile function qres_func residuals.sdmTMB(). Add check factor random intercept columns newdata avoid crash. #278 #280 Improve warnings/errors around use do_index = TRUE get_index() newdata = NULL. #276 Fix prediction offset newdata NULL offset specified. #274 Fix prediction failure offset nsim provided model includes extra_time. #273","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-041","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.1","title":"sdmTMB 0.4.1","text":"CRAN release: 2023-11-03 Fix memory issues detected CRAN ‘Additional issues’ clang-UBSAN, valgrind. Fix bug predicting new data specified offset extra_time. #270 Add warning around non-factor handling spatial_varying formula. #269 Add experimental set_delta_model() plotting delta models ggeffects::ggpredict() (GitHub version next CRAN version).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-040","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.0","title":"sdmTMB 0.4.0","text":"CRAN release: 2023-10-20 Move add_barrier_mesh() sdmTMBextra avoid final INLA dependency. https://github.com/pbs-assess/sdmTMBextra Switch using new fmesher package mesh/SPDE calculations. INLA longer dependency. Switch diagonal.penalty = FALSE mgcv::smoothCon(). changes scale linear component smoother, result model. https://github.com/glmmTMB/glmmTMB/issues/928#issuecomment-1642862066 Implement cross validation delta models #239 Remove ELPD cross validation output. Use sum_loglik instead. #235 Turn Newton optimization default. #182 print() now checks sanity() issues warning may issues. #176 Poisson-link delta models censored likelihood distributions made considerably robust. #186 Standard errors now available SD parameters etc. tidy() #240 Fix bug print()/tidy() delta-model positive model component sigma_E. recently introduce bug causing sigma_E 2nd model reported 1st model component sigma_E. Add new anisotropy plotting function. Add anisotropic range printing. #149 @jdunic","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-030","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.3.0","title":"sdmTMB 0.3.0","text":"CRAN release: 2023-01-28 Create sdmTMBextra package remove rstan/tmbstan helpers, causing memory sanitizer errors CRAN. https://github.com/pbs-assess/sdmTMBextra following functions affected: predict.sdmTMB() now takes mcmc_samples, output sdmTMBextra::extract_mcmc(). simulate.sdmTMB() now takes mcmc_samples, output sdmTMBextra::extract_mcmc(). residuals.sdmTMB() now takes mcmc_samples, output sdmTMBextra::predict_mle_mcmc(). affects residuals(..., type = \"mle-mcmc\"). Move dharma_residuals() sdmTMBextra reduce heavy dependencies. See examples Bayesian residuals vignettes help files functions within sdmTMBextra.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-022","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.2","title":"sdmTMB 0.2.2","text":"Various fixes pass CRAN checks. #158 Fix memory issue highlighted Additional issues CRAN checks. #158 ‘offset’ argument can now character value indicating column name. preferred way using offset parallel cross validation. #165 Fix parallel cross validation using offset vector. #165 Add leave-future-cross validation functionality. #156 Example data qcs_grid longer replicated year save package space. #158 Add message tidy(fit, \"ran_pars\") SEs NA. Add anisotropy print() #157 Fix predict(..., type = \"response\", se_fit = TRUE), involves issuing warning sticking link space. #140","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-021","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.1","title":"sdmTMB 0.2.1","text":"CRAN release: 2023-01-10 Fixes resubmission CRAN.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-020","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.0","title":"sdmTMB 0.2.0","text":"Initial submission CRAN.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-014","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.4","title":"sdmTMB 0.1.4","text":"Relax range parameter sanity() check 1x 1.5x greatest distance data. Add Pearson residuals several families. residuals(fit, type = \"pearson\") Useful checking overdispersion N > 1 binomial Poisson families, among uses. See overdisp_fun() function : https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#testing--overdispersioncomputing-overdispersion-factor Fix bug using residuals() simulate() binomial families specified via cbind() weights = N. binomial sample size wasn’t passed typically resulting Inf/-Inf. Add mixture families: gamma_mix(), lognormal_mix() associated delta/hurdle families: delta_gamma_mix(), delta_lognormal_mix(). families feature mixture two distributions different means shared variance parameters. Add delta_beta() family.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-013","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.3","title":"sdmTMB 0.1.3","text":"Tweak sanity() checking standard error size. Export previously experimental plot_anisotropy() function. old function now plot_anisotropy2(). Allow passing offset data predict.sdmTMB() via offset argument.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-012","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.2","title":"sdmTMB 0.1.2","text":"Switch effects = 'ran_vals' random intercept values tidy.sdmTMB() match broom.mixed package. Make tidy.sdmTMB() return tibble tibble package installed. Note affect old code since drop = FALSE default tibbles drop = TRUE default data frames (.e., tibbles always return data frame subsetted). Fix longstanding issue predicting newdata mgcv’s t2(). Previously disabled issues. now works expected. Add knots argument sdmTMB(), passed mgcv. common use specify end points cyclical spline (e.g., s(x, bs = 'cc', k = 4), knots = list(x = c(1, 3, 5, 7))) data don’t extend fully boundaries match .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-011","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.1","title":"sdmTMB 0.1.1","text":"Preparing release CRAN. Add time-varying AR1 option (originally always random walk). See time_varying_type argument ?sdmTMB. Allow prediction newdata missing time elements. #130 Add check offset() (work sdmTMB, use offset argument instead). #131 Add check random slopes (sdmTMB currently random intercepts, although slopes can vary spatially). #131","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-010","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.0","title":"sdmTMB 0.1.0","text":"ADREPORT several parameters natural space. https://github.com/pbs-assess/sdmTMB/discussions/113 Improve robustness model print() esoteric mgcv smoothers. Let sims_var work multiple spatially varying slopes (zeta_s); return output named list coefficients. #107 Add threshold_coefs sdmTMB_simulate(). Don’t make fake mesh non-spatial model (faster).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00269001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.26.9001","title":"sdmTMB 0.0.26.9001","text":"Add vignettes visreg, ggeffects, delta families (thanks J. Indivero!) #83 #87 #89 Forecasting presence-vignettes merged soon. Add support emmeans package. See ?emmeans.sdmTMB examples. Add support effects package. ggeffects::ggeffect() function can used make fast marginal effects plots. ggeffects::ggpredict() works custom fork ggeffects. pull request made shortly. #101 Add vcov(), fixef(), df.residual(), formula(), terms(), model.frame() methods. Add support \"cloglog\" link. Code adapted glmmTMB robust likelihood implementation. delta models, default share anisotropy parameters VAST. Separate anisotropy (old behavior) can estimated control = sdmTMBcontrol(map = list(ln_H_input = factor(c(1, 2, 3, 4)))) Add experimental do_index, predict_args, index_args sdmTMB(). can used perform prediction index calculation time fitting. large datasets meshes can save time compared fitting, predicting, index calculation 3 separate steps since TMB AD object doesn’t rebuilt. somewhat slow initial fitting. Remove max_gradient bad_eig get_index() output. Use unique locations prediction huge speedups large newdata gridded data. Fix bug rare cases get_index() return gibberish small values. Add bayesian argument, TRUE adds Jacobian adjustments non-linear transformed parameters. TRUE model passed tmbstan, FALSE otherwise. #95 Add experimental -yet-exported sdmTMB:::plot_anisotropy2(). Add many anisotropy, delta model, index calculation unit tests.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00249001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.24.9001","title":"sdmTMB 0.0.24.9001","text":"Enable random walk random field TMB simulation sdmTMB_simulate(). Add check irregular time AR1 random walk processes. Fix bugs introduced delta model code (offsets extra_time threshold model prediction). Fix bug sanity() message small random field SDs.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00249000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.24.9000","title":"sdmTMB 0.0.24.9000","text":"Add support ‘delta’ (‘hurdle’) models. See examples documentation ?sdmTMB. resulted substantial restructuring internal model code. default model components (e.g., binomial & Gamma) share formula, spatial, spatiotemporal structure, can separated supplying argument values lists first element corresponds first model second element corresponds second model (limitations described ?sdmTMB documentation ‘Details’). Add support multiple spatially varying coefficients (used limited single variable). Add compatibility ‘visreg’ package visualizing conditional effects parameters. See ?visreg_delta examples. Add MCMC residual type residuals.sdmTMB(). ‘better’ residuals slower calculate. See documentation ‘Details’ ?residuals.sdmTMB. Make offset argument sdmTMB(). Using reserved word offset formula now deprecated. Add sanity() function perform basic sanity checks model fits. Make sdmTMB() model object compatible update() method. Remove several deprecated arguments. Overhaul examples ?sdmTMB. Use faster “low-rank sparse hessian bias-correction” TMB bias correction. Add parallel processing support. See parallel argument sdmTMBcontrol. default, grabs value sdmTMB.cores option. E.g. options(sdmTMB.cores = 4). currently enabled Mac/Linux. Using many cores can much slower 1 core. Use ‘cli’ package cli_abort()/cli_warn()/cli_inform() stop()/warning()/message(). Add many unit tests.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00239000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.23.9000","title":"sdmTMB 0.0.23.9000","text":"package version number used internal testing ‘delta’ branch several people.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00229001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.22.9001","title":"sdmTMB 0.0.22.9001","text":"Switch TMBad library ~3-fold speedup(!)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00229000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.22.9000","title":"sdmTMB 0.0.22.9000","text":"Fix bug predictions poly(..., raw = FALSE) newdata. #77","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00219009","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.21.9009","title":"sdmTMB 0.0.21.9009","text":"Add experimental sdmTMB_stacking() ensemble model stacking weights. Add fake mesh random fields . #59 Make predict(..., newdata = NULL) also use last.par.best instead last.par match newdata = df. Fix bug MVN fixed-effect prior indexing sims n_sims arguments deprecated standardized nsim match simulate() S3 method. Bias correction get_index() get_cog() now selective just applied necessary derived parameters. INLA projection matrix ‘’ now shared across spatial spatiotemporal fields. Add add_utm_columns() ease adding UTM columns.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00209001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.20.9001","title":"sdmTMB 0.0.20.9001","text":"Add dharma_residuals(). Fix bug simulate.sdmTMB() residuals.sdmTMB() binomial family.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00209000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.20.9000","title":"sdmTMB 0.0.20.9000","text":"Smoothers now appear print() output. format roughly match brms. main-effect component (e.g., sdepth s(depth)) represents linear component random effect (e.g., sds(depth)) component output corresponds standard deviation penalized weights. Add censored_poisson(link = 'log') family; implemented @joenomiddlename fields sdmTMB() now deprecated replaced spatiotemporal. include_spatial sdmTMB() now deprecated replaced spatial. spatial_only sdmTMB() now deprecated replaced spatiotemporal. E.g. spatial_only = TRUE now spatiotemporal = '' leaving time = NULL. spde sdmTMB() now deprecated replaced mesh. sdmTMB_simulate() new likely replace sdmTMB_sim() eventually. sdmTMB_simulate() set take formula data frame easier use want different spatial observations (covariates) time slice. can also take fitted model modify parts simulate. Finally, function uses TMB simulation much faster flexible can simulate (e.g., anisotropy) previous version. spatial_trend now spatial_varying accepts one-sided formula single predictor coefficient varying space random field. Note may want include fixed effect variable improve interpretability. (scaled) time column used, represent local-time-trend model . Tweedie power (p) parameter now print() tidy() output. thetaf now tweedie_p sdmTMB_sim().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199003","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9003","title":"sdmTMB 0.0.19.9003","text":"Fix bug affecting prediction se_fit = TRUE breakpoint models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199002","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9002","title":"sdmTMB 0.0.19.9002","text":"Simulation parameter covariance matrix works random effects turned . #57","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9000","title":"sdmTMB 0.0.19.9000","text":"Smoothers s() now penalized smoothers: determine degree wiggliness (mgcv) longer necessary choose appropriate k value priori. Models fit previous versions sdmTMB s(x, k = ...) match models specified way version >= 0.0.19 since basis functions now penalized. various mgcv::s() options supported t2() (ti() te()) supported.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00189001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.18.9001","title":"sdmTMB 0.0.18.9001","text":"Add ELPD (expected log predictive density) sdmTMB_cv() https://arxiv.org/abs/1507.04544 Fix bug evaluating ... sdmTMB_cv() called within function. #54","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00189000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.18.9000","title":"sdmTMB 0.0.18.9000","text":"Fix minor error PC Matern prior","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00179000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.17.9000","title":"sdmTMB 0.0.17.9000","text":"Add random walk option: fields = \"RW\". Depreciate ar1_fields argument. See new fields argument `sdmTMB(). Many packages moved ‘Imports’ ‘Suggests’","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00169000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.16.9000","title":"sdmTMB 0.0.16.9000","text":"Lower default nlminb() eval.max iter.max 1000 2000. Added profile option sdmTMBcontrol(). can dramatically improve model fitting speed many fixed effects. Note result likely slightly different TRUE vs. FALSE. Added simulation MVN precision matrix predict.sdmTMB(). See sims argument. Added gather_sims() spread_sims() extract parameter simulations joint precision matrix format matches tidybayes package. Added get_index_sims() population index calculated MVN simulation draws. Added extract_mcmc() extract MCMC samples model passed tmbstan. Added ability predict model fitted tmbstan. See tmbstan_model argument predict.sdmTMB(). Allowed separate random field Matern range parameters spatial spatiotemporal fields. E.g. sdmTMB(shared_range = FALSE) Bounded AR1 rho parameter -0.999 0.999 improve convergence; -1 1. Please post issue creates problems model. Added map, start, lower, upper options control model fitting. See sdmTMBcontrol(). Added priors parameters. See ?sdmTMB::priors priors argument sdmTMB(). PC priors available random fields. See ?pc_matern details . Moved many less-common arguments sdmTMB() sdmTMBcontrol(). Fix bug sdmTMB_cv() fitting testing data splits reversed. .e., small chunk fit; big chunk tested.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00159000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.15.9000","title":"sdmTMB 0.0.15.9000","text":"Added experimental penalized complexity (PC) prior used INLA. See arguments matern_prior_O matern_prior_E. Added back normalize argument sdmTMB() default FALSE. Setting TRUE can dramatically speed model fits (~4 times test models).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149003","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9003","title":"sdmTMB 0.0.14.9003","text":"Added vignette making pretty maps output","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9001","title":"sdmTMB 0.0.14.9001","text":"AR1 spatial-model Missing factor levels time Coordinate systems big","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9000","title":"sdmTMB 0.0.14.9000","text":"Add re_form_iid predict.sdmTMB(). Add map_rf option sdmTMB(). lets map (fix starting values zero) random fields produce classic GLM/GLMM.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00139000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.13.9000","title":"sdmTMB 0.0.13.9000","text":"Add IID random intercepts interface. E.g. ... + (1 | g) #34","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00129000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.12.9000","title":"sdmTMB 0.0.12.9000","text":"Add epsilon_predictor argument sdmTMB() allow model spatiotemporal variance time.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00119000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.11.9000","title":"sdmTMB 0.0.11.9000","text":"Add penalties argument allow regularization.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00109001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.10.9001","title":"sdmTMB 0.0.10.9001","text":"Fix Student-t degrees freedom randomized quantile residuals","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00109000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.10.9000","title":"sdmTMB 0.0.10.9000","text":"Fixed parameter initialization inverse links #35 Switched Gamma ‘phi’ parameter representing shape instead CV match glm(), glmmTMB(), etc.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0099000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.9.9000","title":"sdmTMB 0.0.9.9000","text":"Switched density/abundance index calculation use link function opposed hardcoded log() get_generic() function can used grab things like standardized average values response across grid. used log_total raw TMB output now link_total users shouldn’t notice difference.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0089000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.8.9000","title":"sdmTMB 0.0.8.9000","text":"Overhauled simulation function. function now called sdmTMB_sim() uses INLA functions instead RandomFields functions simulating random fields. simulation function can now accommodate families links takes INLA mesh input.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0079001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.7.9001","title":"sdmTMB 0.0.7.9001","text":"Allow specifying degrees freedom Student-t family #29","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0079000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.7.9000","title":"sdmTMB 0.0.7.9000","text":"Added tidy() method (broom broom.mixed) return data frame parameter estimates. function can extract fixed effects random effect parameters (variances, AR1 correlation, spatial range). Added argument extra_time sdmTMB(). introduces additional time slices can predict want interpolate forecast. Internally, uses Eric Ward’s ‘weights hack’. also useful data unevenly spaced time want gaps evenly spaced random walk AR1 process (add missing years extra_time). make_spde() now replaced make_mesh() make_spde() soft deprecated. make_mesh() carries x y column names predict function line tidyverse style taking data frame first. make_mesh() can accept cutoff argument (INLA), likely better default way specify mesh since scales across regions better line literature INLA. make_mesh() can use binary search algorithm find cutoff best matches desired number knots (thanks Kelli Johnson idea). Barrier meshes now possible. See add_barrier_mesh() example. pkgdown website now gets auto generated GitHub actions. start model description vignette. much work progress.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069009","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9009","title":"sdmTMB 0.0.6.9009","text":"Fixed bug dlnorm","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069005","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9005","title":"sdmTMB 0.0.6.9005","text":"Fixed bug predictions standard errors one(?) parameter (breakpoint parameter) passed initial instead MLE value.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069004","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9004","title":"sdmTMB 0.0.6.9004","text":"Fixed bug predictions new data models break points Overhauled cross validation function. function now: uses Eric’s weights hack can also used forecasting initializes subsequent folds MLE first fold considerable speed increases works parallel future plan initialized; see examples Added threshold parameters print method Added forecasting example weights hack Fixed bug linear break point models","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069002","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9002","title":"sdmTMB 0.0.6.9002","text":"Fixed GAM predictions 0s new data. Add linear logistic threshold models. #17","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0059000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.5.9000","title":"sdmTMB 0.0.5.9000","text":"Added parsing mgcv formulas splines. #16 Added ability predict standard errors population level. helps making marginal-effect plots. #15 Added optimization options aid convergence. Also added run_extra_optimization() run already fit models. Default extra optimization. Added binomial likelihood cross validation. Git hash ee3f3ba. Started keeping track news NEWS.md.","code":""}] +[{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"other-vignettes-available","dir":"Articles","previous_headings":"","what":"Other vignettes available","title":"sdmTMB model description","text":"vignette viewed CRAN, note many vignettes describing use sdmTMB available documentation site Articles.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"notation-conventions","dir":"Articles","previous_headings":"","what":"Notation conventions","title":"sdmTMB model description","text":"appendix uses following notation conventions, generally follow guidance Edwards & Auger-Méthé (2019): Greek symbols parameters, Latin/Roman alphabet data (except \\(\\boldsymbol{Q}\\) \\(\\boldsymbol{H}\\), used convention), bold symbols vectors matrices (e.g., \\(\\boldsymbol{\\omega}\\) vector \\(\\omega_{\\boldsymbol{s}}\\) value \\(\\boldsymbol{\\omega}\\) point space \\(\\boldsymbol{s}\\)), \\(\\phi\\) distribution dispersion parameters consistency code, \\(\\mathbb{E}[y]\\) define expected value (mean) variable \\(y\\), \\(\\mathrm{Var}[y]\\) define expected variance variable \\(y\\), \\(^*\\) superscript represents interpolated projected values opposed values knot locations (e.g., \\(\\boldsymbol{\\omega}\\) vs. \\(\\boldsymbol{\\omega}^*\\)), possible, notation chosen match VAST (Thorson 2019) maintain consistency (e.g., \\(\\boldsymbol{\\omega}\\) spatial fields \\(\\boldsymbol{\\epsilon}_t\\) spatiotemporal fields). include tables major indices (Table 1) symbols (Table 2). Table 1: Subscript notation Table 2: Symbol notation, code representation (model output model template code), descriptions.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"sdmtmb-model-structure","dir":"Articles","previous_headings":"","what":"sdmTMB model structure","title":"sdmTMB model description","text":"complete sdmTMB model can written \\[ \\begin{aligned} \\mathbb{E}[y_{\\boldsymbol{s},t}] &= \\mu_{\\boldsymbol{s},t},\\\\ \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta} + O_{\\boldsymbol{s},t} + \\alpha_g + \\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t} \\boldsymbol{\\gamma_t} + \\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s},t} \\zeta_{\\boldsymbol{s}} + \\omega_{\\boldsymbol{s}} + \\epsilon_{\\boldsymbol{s},t} \\right), \\end{aligned} \\] \\(y_{\\boldsymbol{s},t}\\) represents response data point \\(\\boldsymbol{s}\\) time \\(t\\); \\(\\mu\\) represents mean; \\(f\\) represents link function (e.g., log logit) \\(f^{-1}\\) represents inverse; \\(\\boldsymbol{X}^{\\mathrm{main}}\\), \\(\\boldsymbol{X}^{\\mathrm{tvc}}\\), \\(\\boldsymbol{X}^{\\mathrm{svc}}\\) represent design matrices (superscript identifiers ‘main’ = main effects, ‘tvc’ = time varying coefficients, ‘svc’ = spatially varying coefficients); \\(\\boldsymbol{\\beta}\\) represents vector fixed-effect coefficients; \\(O_{\\boldsymbol{s},t}\\) represents offset: covariate (usually log transformed) coefficient fixed one; \\(\\alpha_{g}\\) represents random intercepts group \\(g\\), \\(\\alpha_{g}\\sim \\mathrm{N}(0,\\sigma^2_\\alpha)\\); \\(\\gamma_{t}\\) represents time-varying coefficients (random walk), \\(\\gamma_{t} \\sim \\mathrm{N}(\\gamma_{t-1},\\sigma^2_\\gamma)\\); \\(\\zeta_{\\boldsymbol{s}}\\) represents spatially varying coefficients (random field), \\(\\zeta_{\\boldsymbol{s}} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_\\zeta)\\); \\(\\omega_{\\boldsymbol{s}}\\) represents spatial component (random field), \\(\\omega_{\\boldsymbol{s}} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_\\omega)\\); \\(\\epsilon_{\\boldsymbol{s},t}\\) represents spatiotemporal component (random field), \\(\\epsilon_{\\boldsymbol{s},t} \\sim \\mathrm{MVN}(\\boldsymbol{0},\\boldsymbol{\\Sigma}_{\\epsilon})\\). single sdmTMB model rarely, ever, contain components. Next, split model describe various parts detail using ‘\\(\\ldots\\)’ represent optional components.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"main-effects","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Main effects","title":"sdmTMB model description","text":"\\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta} \\ldots \\right) \\end{aligned} \\] Within sdmTMB(), \\(\\boldsymbol{X}^{\\mathrm{main}}_{\\boldsymbol{s},t} \\boldsymbol{\\beta}\\) defined formula argument represents main-effect model matrix corresponding vector coefficients. main effect formula can contain optional penalized smoothers non-linear functions defined .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"smoothers","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Smoothers","title":"sdmTMB model description","text":"Smoothers sdmTMB implemented formula syntax familiar mgcv (Wood 2017) users fitting GAMs (generalized additive models). Smooths implemented formula using + s(x), implements smooth mgcv::s(). Within smooths, syntax commonly used mgcv::s() can applied, e.g. 2-dimensional smooths may constructed + s(x, y); smooths can specific various factor levels, + s(x, = group); smooths can vary according continuous variable, + s(x, = x2); basis function dimensions may specified, e.g. + s(x, k = 4) (see ?mgcv::choose.k); various types splines may constructed cyclic splines model seasonality, e.g. + s(month, bs = \"cc\", k = 12). mgcv can fit unpenalized (e.g., B-splines) penalized splines (P-splines), sdmTMB implements penalized splines. penalized splines constructed sdmTMB using function mgcv::smooth2random(), transforms splines random effects (associated design matrices) estimable mixed-effects modelling framework. approach implemented R packages gamm4 (Wood & Scheipl 2020) brms (Bürkner 2017).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"linear-break-point-threshold-models","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Linear break-point threshold models","title":"sdmTMB model description","text":"linear break-point “hockey stick” model can used describe threshold asymptotic responses. function consists two pieces, \\(x < b_{1}\\), \\(s(x) = x \\cdot b_{0}\\), \\(x > b_{1}\\), \\(s(x) = b_{1} \\cdot b_{0}\\). cases, \\(b_{0}\\) represents slope function threshold, product \\(b_{1} \\cdot b_{0}\\) represents value asymptote. constraints placed parameters \\(b_{0}\\) \\(b_{1}\\). models can fit including + breakpt(x) model formula, x covariate. formula can contain single break-point covariate.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"logistic-threshold-models","dir":"Articles","previous_headings":"sdmTMB model structure > Main effects","what":"Logistic threshold models","title":"sdmTMB model description","text":"Models logistic threshold relationships predictor response can fit form \\[ s(x)=\\tau + \\psi\\ { \\left[ 1+{ e }^{ -\\ln \\left(19\\right) \\cdot \\left( x-s50 \\right) / \\left(s95 - s50 \\right) } \\right] }^{-1}, \\] \\(s\\) represents logistic function, \\(\\psi\\) scaling parameter (controlling height y-axis response; unconstrained), \\(\\tau\\) intercept, \\(s50\\) parameter controlling point function reaches 50% maximum (\\(\\psi\\)), \\(s95\\) parameter controlling point function reaches 95% maximum. parameter \\(s50\\) unconstrained \\(s95\\) constrained larger \\(s50\\). models can fit including + logistic(x) model formula, x covariate. formula can contain single logistic covariate.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatial-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatial random fields","title":"sdmTMB model description","text":"Spatial random fields, \\(\\omega_{\\boldsymbol{s}}\\), included spatial = '' (TRUE) omitted spatial = '' (FALSE). \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\omega_{\\boldsymbol{s}} + \\ldots \\right),\\\\ \\boldsymbol{\\omega} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_\\omega \\right),\\\\ \\end{aligned} \\] marginal standard deviation \\(\\boldsymbol{\\omega}\\) indicated Spatial SD printed model output sigma_O output sdmTMB::tidy(fit, \"ran_pars\"). ‘O’ ‘omega’ (\\(\\omega\\)). Internally, random fields follow Gaussian Markov random field (GMRF) \\[ \\boldsymbol{\\omega} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\omega^2 \\boldsymbol{Q}^{-1}_\\omega\\right), \\] \\(\\boldsymbol{Q}_\\omega\\) sparse precision matrix \\(\\sigma_\\omega^2\\) marginal variance.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatiotemporal random fields","title":"sdmTMB model description","text":"Spatiotemporal random fields included default multiple time elements (time argument NULL) can set IID (independent identically distributed, 'iid'; default), AR(1) ('ar1'), random walk ('rw'), ('') via spatiotemporal argument. text values case insensitive. Spatiotemporal random fields represented \\(\\boldsymbol{\\epsilon}_t\\) within sdmTMB. chosen match representation VAST (Thorson 2019). marginal standard deviation \\(\\boldsymbol{\\epsilon}_t\\) indicated Spatiotemporal SD printed model output sigma_E output sdmTMB::tidy(fit, \"ran_pars\"). ‘E’ ‘epsilon’ (\\(\\epsilon\\)).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"iid-spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"IID spatiotemporal random fields","title":"sdmTMB model description","text":"IID spatiotemporal random fields (spatiotemporal = 'iid') can represented \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\epsilon_{\\boldsymbol{s},t} + \\ldots \\right),\\\\ \\boldsymbol{\\epsilon_{t}} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right). \\end{aligned} \\] \\(\\epsilon_{\\boldsymbol{s},t}\\) represent random field deviations point \\(\\boldsymbol{s}\\) time \\(t\\). random fields assumed independent across time steps. Similarly spatial random fields, spatiotemporal random fields (including versions described ) parameterized internally sparse precision matrix (\\(\\boldsymbol{Q}_\\epsilon\\)) \\[ \\boldsymbol{\\epsilon_{t}} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\epsilon^2 \\boldsymbol{Q}^{-1}_\\epsilon\\right). \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"ar1-spatiotemporal-random-fields","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"AR(1) spatiotemporal random fields","title":"sdmTMB model description","text":"First-order auto regressive, AR(1), spatiotemporal random fields (spatiotemporal = 'ar1') add parameter defining correlation random field deviations one time step next. defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\delta_{\\boldsymbol{s},t} \\ldots \\right),\\\\ \\boldsymbol{\\delta}_{t=1} &\\sim \\operatorname{MVNormal} (\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon}),\\\\ \\boldsymbol{\\delta}_{t>1} &= \\rho \\boldsymbol{\\delta}_{t-1} + \\sqrt{1 - \\rho^2} \\boldsymbol{\\epsilon_{t}}, \\: \\boldsymbol{\\epsilon_{t}} \\sim \\operatorname{MVNormal} \\left(\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right), \\end{aligned} \\] \\(\\rho\\) correlation subsequent spatiotemporal random fields. \\(\\rho \\boldsymbol{\\delta}_{t-1} + \\sqrt{1 - \\rho^2}\\) term scales spatiotemporal variance correlation represents steady-state marginal variance. correlation \\(\\rho\\) allows mean-reverting spatiotemporal fields, constrained \\(-1 < \\rho < 1\\). Internally, parameter estimated ar1_phi, unconstrained. parameter ar1_phi transformed \\(\\rho\\) \\(\\rho = 2 \\left( \\mathrm{logit}^{-1}(\\texttt{ar1\\_phi}) - 1 \\right)\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"random-walk-spatiotemporal-random-fields-rw","dir":"Articles","previous_headings":"sdmTMB model structure > Spatiotemporal random fields","what":"Random walk spatiotemporal random fields (RW)","title":"sdmTMB model description","text":"Random walk spatiotemporal random fields (spatiotemporal = 'rw') represent model difference spatiotemporal deviations one time step next IID. defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\delta_{\\boldsymbol{s},t} + \\ldots \\right),\\\\ \\boldsymbol{\\delta}_{t=1} &\\sim \\operatorname{MVNormal} (\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon}),\\\\ \\boldsymbol{\\delta}_{t>1} &= \\boldsymbol{\\delta}_{t-1} + \\boldsymbol{\\epsilon_{t-1}}, \\: \\boldsymbol{\\epsilon_{t-1}} \\sim \\operatorname{MVNormal} \\left(\\boldsymbol{0}, \\boldsymbol{\\Sigma}_{\\epsilon} \\right), \\end{aligned} \\] distribution spatiotemporal field initial time step AR(1) model, absence \\(\\rho\\) parameter allows spatiotemporal field non-stationary time. Note , contrast AR(1) parametrization, variance longer steady-state marginal variance.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"time-varying-regression-parameters","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Time-varying regression parameters","title":"sdmTMB model description","text":"Parameters can modelled time-varying according random walk first-order autoregressive, AR(1), process. time-series model defined time_varying_type. types: \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t} \\boldsymbol{\\gamma_{t}} + \\ldots \\right), \\end{aligned} \\] \\(\\boldsymbol{\\gamma_t}\\) optional vector time-varying regression parameters \\(\\boldsymbol{X}^{\\mathrm{tvc}}_{\\boldsymbol{s},t}\\) corresponding model matrix covariate values. defined via time_varying argument, assuming time argument also supplied column name. time_varying takes one-sided formula. ~ 1 implies time-varying intercept. time_varying_type = 'rw', first time step estimated independently: \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Uniform} \\left(-\\infty, \\infty \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\gamma_{t-1}, \\sigma^2_{\\gamma} \\right). \\end{aligned} \\] case, first time-step value given implicit uniform prior. .e., variable appear fixed effect formula since initial value estimated part time-varying formula. formula time_varying = ~ 1 implicitly represents time-varying intercept (assuming time argument supplied) , case, intercept omitted main effects (formula ~ + 0 + ... formula ~ -1 + ...). time_varying_type = 'rw0', first time step estimated mean-zero prior: \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Normal} \\left(0, \\sigma^2_{\\gamma} \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\gamma_{t-1}, \\sigma^2_{\\gamma} \\right). \\end{aligned} \\] case, time-varying variable (including intercept) included main effects. suggest using formulation, leave 'rw' option legacy code works. time_varying_type = 'ar1': \\[ \\begin{aligned} \\gamma_{t=1} &\\sim \\operatorname{Normal} \\left(0, \\sigma^2_{\\gamma} \\right),\\\\ \\gamma_{t>1} &\\sim \\operatorname{Normal} \\left(\\rho_\\gamma\\gamma_{t-1}, \\sqrt{1 - \\rho_\\gamma^2} \\sigma^2_{\\gamma} \\right), \\end{aligned} \\] \\(\\rho_{\\gamma}\\) correlation subsequent time steps. first time step given mean-zero prior.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"spatially-varying-coefficients-svc","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Spatially varying coefficients (SVC)","title":"sdmTMB model description","text":"Spatially varying coefficient models defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s}, t} \\zeta_{\\boldsymbol{s}} + \\ldots \\right),\\\\ \\boldsymbol{\\zeta} &\\sim \\operatorname{MVNormal} \\left( \\boldsymbol{0}, \\boldsymbol{\\Sigma}_\\zeta \\right), \\end{aligned} \\] \\(\\boldsymbol{\\zeta}\\) random field representing spatially varying coefficient. Usually, \\(\\boldsymbol{X}^{\\mathrm{svc}}_{\\boldsymbol{s}, t}\\) represent prediction matrix constant spatially given time \\(t\\) defined one-sided formula supplied spatial_varying. example spatial_varying = ~ 0 + x, 0 omits intercept. random fields parameterized internally sparse precision matrix (\\(\\boldsymbol{Q}_\\zeta\\)) \\[ \\boldsymbol{\\zeta} \\sim \\mathrm{MVNormal}\\left(\\boldsymbol{0}, \\sigma_\\zeta^2 \\boldsymbol{Q}^{-1}_\\zeta\\right). \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"iid-random-or-multi-level-intercepts","dir":"Articles","previous_headings":"sdmTMB model structure","what":"IID random or multi-level intercepts","title":"sdmTMB model description","text":"Multilevel/hierarchical intercepts defined \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + \\alpha_{g} + \\ldots \\right),\\\\ \\alpha_g &\\sim \\operatorname{Normal} \\left(0, \\sigma_\\alpha^2 \\right),\\\\ \\end{aligned} \\] \\(\\alpha_g\\) example optional “random” intercept—intercept mean zero varies level \\(g\\) constrained \\(\\sigma_\\alpha\\). defined formula argument via (1 | g) syntax lme4 glmmTMB. can multiple random intercepts, despite showing one . E.g., (1 | g1) + (1 | g2), case assumed independent uncorrelated .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"offset-terms","dir":"Articles","previous_headings":"sdmTMB model structure","what":"Offset terms","title":"sdmTMB model description","text":"Offset terms can included offset argument sdmTMB(). included linear predictor \\[ \\begin{aligned} \\mu_{\\boldsymbol{s},t} &= f^{-1} \\left( \\ldots + O_{\\boldsymbol{s},t} + \\ldots \\right), \\end{aligned} \\] \\(O_{\\boldsymbol{s},t}\\) offset term—log transformed variable without coefficient (assuming log link). offset included prediction. Therefore, offset represents measure effort, example, prediction one unit effort (log(1) = 0).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"observation-model-families","dir":"Articles","previous_headings":"","what":"Observation model families","title":"sdmTMB model description","text":"describe main observation families available sdmTMB comment parametrization, statistical properties, utility, code representation sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"binomial","dir":"Articles","previous_headings":"Observation model families","what":"Binomial","title":"sdmTMB model description","text":"\\[ \\operatorname{Binomial} \\left(N, \\mu \\right) \\] \\(N\\) size number trials, \\(\\mu\\) probability success trial. \\(N = 1\\), distribution becomes Bernoulli distribution. Internally, distribution parameterized robust version TMB, numerically stable probabilities approach 0 1. Following structure stats::glm(), lme4, glmmTMB, binomial family can specified one 4 ways: response may factor (model classifies first level versus others) response may binomial (0/1) response can matrix form cbind(success, failure), response may observed proportions, weights argument used specify Binomial size (\\(N\\)) parameter (probabilty ~ ..., weights = N). Code defined within TMB. Example: family = binomial(link = \"logit\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"beta","dir":"Articles","previous_headings":"Observation model families","what":"Beta","title":"sdmTMB model description","text":"\\[ \\operatorname{Beta} \\left(\\mu \\phi, (1 - \\mu) \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) precision parameter. parametrization follows Ferrari & Cribari-Neto (2004) betareg R package (Cribari-Neto & Zeileis 2010). variance \\(\\mu (1 - \\mu) / (\\phi + 1)\\). Code defined within TMB. Example: family = Beta(link = \"logit\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gamma","dir":"Articles","previous_headings":"Observation model families","what":"Gamma","title":"sdmTMB model description","text":"\\[ \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu}{\\phi} \\right) \\] \\(\\phi\\) represents Gamma shape \\(\\mu / \\phi\\) represents scale. mean \\(\\mu\\) variance \\(\\mu \\cdot \\phi^2\\). Code defined within TMB. Example: family = Gamma(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gaussian","dir":"Articles","previous_headings":"Observation model families","what":"Gaussian","title":"sdmTMB model description","text":"\\[ \\operatorname{Normal} \\left( \\mu, \\phi^2 \\right) \\] \\(\\mu\\) mean \\(\\phi\\) standard deviation. variance \\(\\phi^2\\). Example: family = Gaussian(link = \"identity\") Code defined within TMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"lognormal","dir":"Articles","previous_headings":"Observation model families","what":"Lognormal","title":"sdmTMB model description","text":"sdmTMB uses bias-corrected lognormal distribution \\(\\phi\\) represents standard deviation log-space: \\[ \\operatorname{Lognormal} \\left( \\log \\mu - \\frac{\\phi^2}{2}, \\phi^2 \\right). \\] bias correction, \\(\\mathbb{E}[y] = \\mu\\) \\(\\mathrm{Var}[\\log y] = \\phi^2\\). Code defined within sdmTMB based TMB dnorm() normal density. Example: family = lognormal(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-1-nb1","dir":"Articles","previous_headings":"Observation model families","what":"Negative Binomial 1 (NB1)","title":"sdmTMB model description","text":"\\[ \\operatorname{NB1} \\left( \\mu, \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) dispersion parameter. variance scales linearly mean \\(\\mathrm{Var}[y] = \\mu + \\mu / \\phi\\) (Hilbe 2011). Internally, distribution parameterized robust version TMB. Code defined within sdmTMB based NB2 borrowed glmmTMB. Example: family = nbinom1(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-2-nb2","dir":"Articles","previous_headings":"Observation model families","what":"Negative Binomial 2 (NB2)","title":"sdmTMB model description","text":"\\[ \\operatorname{NB2} \\left( \\mu, \\phi \\right) \\] \\(\\mu\\) mean \\(\\phi\\) dispersion parameter. variance scales quadratically mean \\(\\mathrm{Var}[y] = \\mu + \\mu^2 / \\phi\\) (Hilbe 2011). NB2 parametrization commonly seen ecology NB1. Internally, distribution parameterized robust version TMB. Code defined within TMB. Example: family = nbinom2(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"poisson","dir":"Articles","previous_headings":"Observation model families","what":"Poisson","title":"sdmTMB model description","text":"\\[ \\operatorname{Poisson} \\left( \\mu \\right) \\] \\(\\mu\\) represents mean \\(\\mathrm{Var}[y] = \\mu\\). Code defined within TMB. Example: family = poisson(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"student-t","dir":"Articles","previous_headings":"Observation model families","what":"Student-t","title":"sdmTMB model description","text":"\\[ \\operatorname{Student-t} \\left( \\mu, \\phi, \\nu \\right) \\] \\(\\nu\\), degrees freedom (df), user-supplied fixed parameter. Lower values \\(\\nu\\) result heavier tails compared Gaussian distribution. approximately df = 20, distribution becomes similar Gaussian. Student-t distribution low degrees freedom (e.g., \\(\\nu \\le 7\\)) can helpful modelling data otherwise suitable Gaussian needs approach robust outliers (e.g., Anderson et al. 2017). Code defined within sdmTMB based dt() distribution TMB. Example: family = student(link = \"log\", df = 7)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"tweedie","dir":"Articles","previous_headings":"Observation model families","what":"Tweedie","title":"sdmTMB model description","text":"\\[ \\operatorname{Tweedie} \\left(\\mu, p, \\phi \\right), \\: 1 < p < 2 \\] \\(\\mu\\) mean, \\(p\\) power parameter constrained 1 2, \\(\\phi\\) dispersion parameter. Tweedie distribution can helpful modelling data positive continuous also contain zeros. Internally, \\(p\\) transformed \\(\\mathrm{logit}^{-1} (\\texttt{thetaf}) + 1\\) constrain 1 2 estimated unconstrained variable. source code implemented cplm package (Zhang 2013) based Dunn & Smyth (2005). TMB version defined . Example: family = tweedie(link = \"log\")","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"gamma-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Gamma mixture","title":"sdmTMB model description","text":"2 component mixture extends Gamma distribution, \\[ (1 - p) \\cdot \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu_{1}}{\\phi} \\right) + p \\cdot \\operatorname{Gamma} \\left( \\phi, \\frac{\\mu_{2}}{\\phi} \\right), \\] \\(\\phi\\) represents Gamma shape, \\(\\mu_{1} / \\phi\\) represents scale first (smaller component) distribution, \\(\\mu_{2} / \\phi\\) represents scale second (larger component) distribution, \\(p\\) controls contribution component mixture (also interpreted probability larger events). mean \\((1-p) \\cdot \\mu_{1} + p \\cdot \\mu_{2}\\) variance \\((1-p) ^ 2 \\cdot \\mu_{1} \\cdot \\phi^2 + (p) ^ 2 \\cdot \\mu_{2} \\cdot \\phi^2\\). , mixture distributions, probability larger mean can obtained plogis(fit$model$par[[\"logit_p_mix\"]]) ratio larger mean smaller mean can obtained 1 + exp(fit$model$par[[\"log_ratio_mix\"]]). standard errors available TMB sdreport: fit$sd_report. wish fix probability large (.e., extreme) mean, can hard estimate, can use map list. E.g.: Example: family = gamma_mix(link = \"log\"). See also family = delta_gamma_mix() extension incorporating distribution delta models.","code":"sdmTMB(..., control = sdmTMBcontrol( start = list(logit_p_mix = qlogis(0.05)), # 5% probability of 'mu2' map = list(logit_p_mix = factor(NA)) # don't estimate ) )"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"lognormal-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Lognormal mixture","title":"sdmTMB model description","text":"2 component mixture extends lognormal distribution, \\[ (1 - p) \\cdot \\operatorname{Lognormal} \\left( \\log \\mu_{1} - \\frac{\\phi^2}{2}, \\phi^2 \\right) + p \\cdot \\operatorname{Lognormal} \\left( \\log \\mu_{2} - \\frac{\\phi^2}{2}, \\phi^2 \\right). \\] bias correction, \\(\\mathbb{E}[y] = (1-p) \\cdot \\mu_{1} + p \\cdot \\mu_{2}\\) \\(\\mathrm{Var}[\\log y] = (1-p)^2 \\cdot \\phi^2 + p^2 \\cdot \\phi^2\\). Gamma mixture, \\(p\\) controls contribution component mixture (also interpreted probability larger events). Example: family = lognormal_mix(link = \"log\"). See also family = delta_lognormal_mix() extension incorporating distribution delta models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"negative-binomial-2-mixture","dir":"Articles","previous_headings":"Observation model families","what":"Negative binomial 2 mixture","title":"sdmTMB model description","text":"2 component mixture extends NB2 distribution, \\[ (1 - p) \\cdot \\operatorname{NB2} \\left( \\mu_1, \\phi \\right) + p \\cdot \\operatorname{NB2} \\left( \\mu_2, \\phi \\right) \\] \\(\\mu_1\\) mean first (smaller component) distribution, \\(\\mu_2\\) mean larger component, \\(p\\) controls contribution component mixture. Example: family = nbinom2_mix(link = \"log\")","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"matérn-parameterization","dir":"Articles","previous_headings":"Gaussian random fields","what":"Matérn parameterization","title":"sdmTMB model description","text":"Matérn defines covariance \\(\\Phi \\left( s_j, s_k \\right)\\) spatial locations \\(s_j\\) \\(s_k\\) \\[ \\Phi\\left( s_j,s_k \\right) = \\tau^2/\\Gamma(\\nu)2^{\\nu - 1} (\\kappa d_{jk})^\\nu K_\\nu \\left( \\kappa d_{jk} \\right), \\] \\(\\tau^2\\) controls spatial variance, \\(\\nu\\) controls smoothness, \\(\\Gamma\\) represents Gamma function, \\(d_{jk}\\) represents distance locations \\(s_j\\) \\(s_k\\), \\(K_\\nu\\) represents modified Bessel function second kind, \\(\\kappa\\) represents decorrelation rate. parameter \\(\\nu\\) set 1 take advantage Stochastic Partial Differential Equation (SPDE) approximation GRF greatly increase computational efficiency (Lindgren et al. 2011). Internally, parameters \\(\\kappa\\) \\(\\tau\\) converted range marginal standard deviation \\(\\sigma\\) \\(\\textrm{range} = \\sqrt{8} / \\kappa\\) \\(\\sigma = 1 / \\sqrt{4 \\pi \\exp \\left(2 \\log(\\tau) + 2 \\log(\\kappa) \\right) }\\). case spatiotemporal model spatial spatiotemporal fields, share_range = TRUE sdmTMB() (default), single \\(\\kappa\\) range estimated separate \\(\\sigma_\\omega\\) \\(\\sigma_\\epsilon\\). often makes sense since data often weakly informative \\(\\kappa\\). share_range = FALSE, separate \\(\\kappa_\\omega\\) \\(\\kappa_\\epsilon\\) estimated. spatially varying coefficient field always shares \\(\\kappa\\) spatial random field.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"projection-boldsymbola-matrix","dir":"Articles","previous_headings":"Gaussian random fields","what":"Projection \\(\\boldsymbol{A}\\) matrix","title":"sdmTMB model description","text":"values spatial variables knots multiplied projection matrix \\(\\boldsymbol{}\\) bilinearly interpolates knot locations values locations observed predicted data (Lindgren & Rue 2015) \\[ \\boldsymbol{\\omega}^* = \\boldsymbol{} \\boldsymbol{\\omega}, \\] \\(\\boldsymbol{\\omega}^*\\) represents values spatial random fields observed locations predicted data locations. matrix \\(\\boldsymbol{}\\) row data point prediction point column knot. Three non-zero elements row define weight neighbouring 3 knot locations location \\(\\boldsymbol{s}\\). bilinear interpolation happens spatiotemporal random fields \\[ \\boldsymbol{\\epsilon}_t^* = \\boldsymbol{} \\boldsymbol{\\epsilon}_t. \\]","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"anisotropy","dir":"Articles","previous_headings":"Gaussian random fields","what":"Anisotropy","title":"sdmTMB model description","text":"TMB allows anisotropy, spatial covariance may asymmetric respect latitude longitude (full details). Anisotropy can turned logical anisotropy argument sdmTMB(). number ways implement anisotropic covariance (Fuglstad et al. 2015), adopt 2-parameter rotation matrix \\(\\textbf{H}\\). elements \\(\\textbf{H}\\) defined parameter vector \\(\\boldsymbol{x}\\) \\(H_{1,1} = x_{1}\\), \\(H_{1,2} = H_{2,1} = x_{2}\\) \\(H_{2,2} = (1 + x_{2}^2) / x_{1}\\). model fitted sdmTMB(), anisotropy relationships may plotted using plot_anisotropy() function, takes fitted object argument. barrier mesh used, anisotropy disabled.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"incorporating-physical-barriers-into-the-spde","dir":"Articles","previous_headings":"Gaussian random fields","what":"Incorporating physical barriers into the SPDE","title":"sdmTMB model description","text":"cases spatial domain interest may complex bounded barrier land water (e.g., coastlines, islands, lakes). SPDE models allow physical barriers incorporated modelling (Bakka et al. 2019). sdmTMB() models, mesh construction occurs two steps: user (1) constructs mesh call sdmTMB::make_mesh(), (2) passes mesh sdmTMB::add_barrier_mesh(). barriers must constructed sf objects (Pebesma 2018) polygons defining barriers. See ?sdmTMB::add_barrier_mesh example. barrier implementation requires user select fraction value (range_fraction argument) defines fraction usual spatial range crossing barrier (Bakka et al. 2019). example, range estimated 10 km, range_fraction = 0.2 assume range 2 km across barrier. let spatial correlation decay 5 times faster distance. experimentation, values around 0.1 0.2 seem work well values much lower 0.1 can result convergence issues. website Francesco Serafini Haakon Bakka provides illustration INLA. implementation within TMB borrowed code written Olav Nikolai Breivik Hans Skaug TMB Case Studies Github site.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"optimization-details","dir":"Articles","previous_headings":"Optimization","what":"Optimization details","title":"sdmTMB model description","text":"sdmTMB model fit maximum marginal likelihood. Internally, TMB (Kristensen et al. 2016) model template calculates marginal log likelihood gradient, negative log likelihood minimized via non-linear optimization routine stats::nlminb() R (Gay 1990; R Core Team 2021). Random effects estimated values maximize log likelihood conditional estimated fixed effects integrated via Laplace approximation (Kristensen et al. 2016). Like AD Model Builder (Fournier et al. 2012), TMB allows parameters fit phases include multiphase argument sdmTMB::sdmTMBcontrol() allow . high-dimensional models (many fixed random effects), phased estimation may faster result stable convergence. sdmTMB, phased estimation proceeds first estimating fixed-effect parameters contributing likelihood (holding random effects constant initial values). second phase, random-effect parameters (variances) also estimated. Fixed-effect parameters also estimated second phase initialized estimates first phase. cases, single call stats::nlminb() may result convergence (e.g., maximum gradient marginal likelihood respect fixed-effect parameters small enough yet), algorithm may need run multiple times. sdmTMB::sdmTMBcontrol() function, include argument nlminb_loops restart optimization previous best values. number nlminb_loops generally small (e.g., 2 3 initially), defaults 1. sdmTMB models, Hessian may also unstable need re-evaluated. optionally stats::optimHess() routine call stats::nlminb(). stats::optimHess() function implements Newton optimization routine find Hessian, include argument newton_loops sdmTMB::sdmTMBcontrol() allow multiple function evaluations (starting previous best value). default, included newton_loops set 0. model already fit, function sdmTMB::run_extra_optimization() can run additional optimization loops either routine reduce maximum gradient.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/model-description.html","id":"assessing-convergence","dir":"Articles","previous_headings":"Optimization","what":"Assessing convergence","title":"sdmTMB model description","text":"Much guidance around diagnostics glmmTMB also applies sdmTMB, e.g. glmmTMB vignette troubleshooting. Optimization stats::nlminb() involves specifying number iterations evaluations (eval.max iter.max) tolerances (abs.tol, rel.tol, x.tol, xf.tol)—greater number iterations smaller tolerance thresholds increase chance optimal solution found, evaluations translates longer computation time. Warnings non-positive-definite Hessian matrices (accompanied parameters NAs standard errors) often mean models improperly specified given data. Standard errors can observed output print.sdmTMB() checking fit$sd_report. maximum gradient marginal likelihood respect fixed-effect parameters can checked inspecting (fit$gradients). Guidance varies, maximum gradient likely least \\(< 0.001\\) assuming fitting routine consistent convergence. maximum gradients already relatively small, can often reduced additional optimization calls beginning previous best parameter vector described sdmTMB::run_extra_optimization().","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"parameter-estimates","dir":"Articles > Web_only","previous_headings":"","what":"Parameter estimates","title":"Introduction to modelling with sdmTMB","text":"can view confidence intervals fixed effects using tidy function: similarly random effect variance parameters: Note standard errors reported coefficients log space, confidence intervals reported. parameters defined follows: range: derived parameter defines distance 2 points effectively independent (actually 13% correlated). share_range argument changed FALSE spatial spatiotemporal ranges unique, otherwise default share range. phi: Observation error scale parameter (e.g., SD Gaussian). sigma_O: SD spatial process (“Omega”). sigma_E: SD spatiotemporal process (“Epsilon”). tweedie_p: Tweedie p (power) parameter; 1 2. model used AR1 spatiotemporal fields : rho: Spatiotemporal correlation years; -1 1. model includes spatial_varying predictor : sigma_Z: SD spatially varying coefficient field (“Zeta”).","code":"tidy(m3, conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 1.86 0.208 1.45 2.26 #> 2 poly(log(depth), 2)1 -65.1 6.32 -77.5 -52.8 #> 3 poly(log(depth), 2)2 -96.5 5.98 -108. -84.8 tidy(m3, \"ran_pars\", conf.int = TRUE) #> # A tibble: 5 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 19.8 3.03 14.6 26.7 #> 2 phi 11.0 0.377 10.3 11.8 #> 3 sigma_O 1.40 0.162 1.12 1.76 #> 4 sigma_E 1.55 0.129 1.32 1.83 #> 5 tweedie_p 1.50 0.0119 1.48 1.52"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"model-diagnostics","dir":"Articles > Web_only","previous_headings":"","what":"Model diagnostics","title":"Introduction to modelling with sdmTMB","text":"can inspect randomized quantile residuals: fast calculate can look ‘’ even model consistent data. MCMC-based residuals reliable slow. can calculate help sdmTMBextra package. https://github.com/pbs-assess/sdmTMBextra. practice like want mcmc_iter mcmc_warmup. Total samples mcmc_iter - mcmc_warmup. also just use spatial model vignette builds quickly. See ?residuals.sdmTMB().","code":"pcod$resids <- residuals(m3) # randomized quantile residuals #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. qqnorm(pcod$resids) qqline(pcod$resids) ggplot(pcod, aes(X, Y, col = resids)) + scale_colour_gradient2() + geom_point() + facet_wrap(~year) + coord_fixed() set.seed(123) samps <- sdmTMBextra::predict_mle_mcmc(m3, mcmc_warmup = 100, mcmc_iter = 101) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.009999 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 99.99 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: WARNING: There aren't enough warmup iterations to fit the #> Chain 1: three stages of adaptation as currently configured. #> Chain 1: Reducing each adaptation stage to 15%/75%/10% of #> Chain 1: the given number of warmup iterations: #> Chain 1: init_buffer = 15 #> Chain 1: adapt_window = 75 #> Chain 1: term_buffer = 10 #> Chain 1: #> Chain 1: Iteration: 1 / 101 [ 0%] (Warmup) #> Chain 1: Iteration: 10 / 101 [ 9%] (Warmup) #> Chain 1: Iteration: 20 / 101 [ 19%] (Warmup) #> Chain 1: Iteration: 30 / 101 [ 29%] (Warmup) #> Chain 1: Iteration: 40 / 101 [ 39%] (Warmup) #> Chain 1: Iteration: 50 / 101 [ 49%] (Warmup) #> Chain 1: Iteration: 60 / 101 [ 59%] (Warmup) #> Chain 1: Iteration: 70 / 101 [ 69%] (Warmup) #> Chain 1: Iteration: 80 / 101 [ 79%] (Warmup) #> Chain 1: Iteration: 90 / 101 [ 89%] (Warmup) #> Chain 1: Iteration: 100 / 101 [ 99%] (Warmup) #> Chain 1: Iteration: 101 / 101 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 26.982 seconds (Warm-up) #> Chain 1: 0.197 seconds (Sampling) #> Chain 1: 27.179 seconds (Total) #> Chain 1: r <- residuals(m3, \"mle-mcmc\", mcmc_samples = samps) qqnorm(r) qqline(r)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"spatial-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Spatial predictions","title":"Introduction to modelling with sdmTMB","text":"Now, purposes example (e.g., visualization), want predict fine-scale grid entire survey domain. grid built package Queen Charlotte Sound named qcs_grid. prediction grid also needs covariates used model . can replicate grid across necessary years: Now make predictions new data: Let’s make small function help make maps. four kinds predictions get model. First, show predictions incorporate fixed effects random effects: can also look just fixed effects, quadratic effect depth: can look spatial random effects represent consistent deviations space time accounted fixed effects. words, deviations represent consistent biotic abiotic factors affecting biomass density accounted model. finally can look spatiotemporal random effects represent deviation fixed effect predictions spatial random effect deviations. represent biotic abiotic factors changing time accounted model. can also estimate uncertainty spatiotemporal density predictions using simulations joint precision matrix setting nsim > 0 predict function. generate 100 estimates use apply() calculate upper lower confidence intervals, standard deviation, coefficient variation (CV). Plot CV estimates:","code":"glimpse(qcs_grid) #> Rows: 7,314 #> Columns: 5 #> $ X 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 4… #> $ Y 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 56… #> $ depth 347.08345, 223.33479, 203.74085, 183.29868, 182.99983, 1… #> $ depth_scaled 1.56081222, 0.56976988, 0.36336929, 0.12570465, 0.122036… #> $ depth_scaled2 2.436134794, 0.324637712, 0.132037240, 0.015801659, 0.01… grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) predictions <- predict(m3, newdata = grid_yrs) plot_map <- function(dat, column) { ggplot(dat, aes(X, Y, fill = {{ column }})) + geom_raster() + coord_fixed() } plot_map(predictions, exp(est)) + scale_fill_viridis_c( trans = \"sqrt\", # trim extreme high values to make spatial variation more visible na.value = \"yellow\", limits = c(0, quantile(exp(predictions$est), 0.995)) ) + facet_wrap(~year) + ggtitle(\"Prediction (fixed effects + all random effects)\", subtitle = paste(\"maximum estimated biomass density =\", round(max(exp(predictions$est)))) ) plot_map(predictions, exp(est_non_rf)) + scale_fill_viridis_c(trans = \"sqrt\") + ggtitle(\"Prediction (fixed effects only)\") plot_map(predictions, omega_s) + scale_fill_gradient2() + ggtitle(\"Spatial random effects only\") plot_map(predictions, epsilon_st) + scale_fill_gradient2() + facet_wrap(~year) + ggtitle(\"Spatiotemporal random effects only\") sim <- predict(m3, newdata = grid_yrs, nsim = 100) sim_last <- sim[grid_yrs$year == max(grid_yrs$year), ] # just plot last year pred_last <- predictions[predictions$year == max(grid_yrs$year), ] pred_last$lwr <- apply(exp(sim_last), 1, quantile, probs = 0.025) pred_last$upr <- apply(exp(sim_last), 1, quantile, probs = 0.975) pred_last$sd <- round(apply(exp(sim_last), 1, function(x) sd(x)), 2) pred_last$cv <- round(apply(exp(sim_last), 1, function(x) sd(x) / mean(x)), 2) ggplot(pred_last, aes(X, Y, fill = cv)) + geom_raster() + scale_fill_viridis_c()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"conditional-effects","dir":"Articles > Web_only","previous_headings":"","what":"Conditional effects","title":"Introduction to modelling with sdmTMB","text":"can visualize conditional effect covariates feeding simplified data frames predict function fix covariate values want fixed (e.g., means) vary parameters want visualize (across range values): also visreg package. version link space residuals partial randomized quantile residuals. See scale argument visreg response scale plots. ggeffects package marginal effects plot. also faster since relies already estimated coefficients variance-covariance matrix.","code":"nd <- data.frame( depth = seq(min(pcod$depth), max(pcod$depth), length.out = 100 ), year = 2015L # a chosen year ) p <- predict(m3, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se) )) + geom_line() + geom_ribbon(alpha = 0.4) + scale_x_continuous() + coord_cartesian(expand = F) + labs(x = \"Depth (m)\", y = \"Biomass density (kg/km2)\") visreg::visreg(m3, \"depth\") ggeffects::ggeffect(m3, \"depth [0:500 by=1]\") %>% plot() #> Warning: Removed 1 row containing missing values or values outside the scale range #> (`geom_line()`)."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/basic-intro.html","id":"time-varying-effects","dir":"Articles > Web_only","previous_headings":"Conditional effects","what":"Time-varying effects","title":"Introduction to modelling with sdmTMB","text":"also let effect depth vary time. example, helps give year separate mean effect (.factor(year)). ~ 0 part formula omits intercept. models like take longer fit, might want set silent = FALSE can monitor progress. plot , make data frame contains combinations time-varying covariate time. easily created using expand.grid() tidyr::expand_grid().","code":"m4 <- sdmTMB( density ~ 0 + as.factor(year), data = pcod, time_varying = ~ 0 + depth_scaled + depth_scaled2, mesh = mesh, family = tweedie(link = \"log\"), spatial = \"on\", time = \"year\", spatiotemporal = \"IID\" ) #> Detected irregular time spacing with an AR(1) or random walk process. #> Consider filling in the missing time slices with `extra_time`. #> `extra_time = c(2006, 2008, 2010, 2012, 2014, 2016)` m4 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> as.factor(year)2003 3.36 0.30 #> as.factor(year)2004 4.04 0.28 #> as.factor(year)2005 3.77 0.28 #> as.factor(year)2007 2.64 0.30 #> as.factor(year)2009 2.65 0.29 #> as.factor(year)2011 3.72 0.29 #> as.factor(year)2013 3.51 0.27 #> as.factor(year)2015 3.76 0.28 #> as.factor(year)2017 3.21 0.30 #> #> Time-varying parameters: #> coef.est coef.se #> depth_scaled-2003 -0.96 0.08 #> depth_scaled-2004 -0.96 0.08 #> depth_scaled-2005 -0.96 0.08 #> depth_scaled-2007 -0.96 0.08 #> depth_scaled-2009 -0.96 0.08 #> depth_scaled-2011 -0.96 0.08 #> depth_scaled-2013 -0.96 0.08 #> depth_scaled-2015 -0.96 0.08 #> depth_scaled-2017 -0.96 0.08 #> depth_scaled2-2003 -1.50 0.23 #> depth_scaled2-2004 -1.70 0.17 #> depth_scaled2-2005 -1.68 0.22 #> depth_scaled2-2007 -1.82 0.28 #> depth_scaled2-2009 -0.99 0.17 #> depth_scaled2-2011 -2.02 0.25 #> depth_scaled2-2013 -1.09 0.12 #> depth_scaled2-2015 -1.80 0.22 #> depth_scaled2-2017 -2.10 0.26 #> #> Dispersion parameter: 10.86 #> Tweedie p: 1.50 #> Matérn range: 13.58 #> Spatial SD: 1.63 #> Spatiotemporal IID SD: 1.66 #> ML criterion at convergence: 6251.146 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** AIC(m4) #> [1] 12534.29 nd <- expand.grid( depth_scaled = seq(min(pcod$depth_scaled) + 0.2, max(pcod$depth_scaled) - 0.2, length.out = 50 ), year = unique(pcod$year) # all years ) nd$depth_scaled2 <- nd$depth_scaled^2 p <- predict(m4, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se), group = as.factor(year) )) + geom_line(aes(colour = year), lwd = 1) + geom_ribbon(aes(fill = year), alpha = 0.1) + scale_colour_viridis_c() + scale_fill_viridis_c() + scale_x_continuous(labels = function(x) round(exp(x * pcod$depth_sd[1] + pcod$depth_mean[1]))) + coord_cartesian(expand = F) + labs(x = \"Depth (m)\", y = \"Biomass density (kg/km2)\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"simulating-data","dir":"Articles > Web_only","previous_headings":"","what":"Simulating data","title":"Bayesian estimation with sdmTMB","text":"demonstrate using simulated dataset. Visualize simulated data:","code":"set.seed(123) predictor_dat <- data.frame( X = runif(500), Y = runif(500), a1 = rnorm(500) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) # plot(mesh) # mesh$mesh$n sim_dat <- sdmTMB_simulate( formula = ~a1, data = predictor_dat, mesh = mesh, family = gaussian(), range = 0.3, phi = 0.2, sigma_O = 0.2, seed = 123, B = c(0.8, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. ggplot(sim_dat, aes(X, Y, colour = observed)) + geom_point() + scale_color_viridis_c()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"fitting-the-model-with-marginal-likelihood","dir":"Articles > Web_only","previous_headings":"","what":"Fitting the model with marginal likelihood","title":"Bayesian estimation with sdmTMB","text":"First, fit spatial random field GLMM maximum likelihood:","code":"fit <- sdmTMB( observed ~ a1, data = sim_dat, mesh = mesh, family = gaussian(), spatial = \"on\" ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.8 0.06 #> a1 -0.4 0.01 #> #> Dispersion parameter: 0.20 #> Matérn range: 0.32 #> Spatial SD: 0.17 #> ML criterion at convergence: -65.939 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"adding-priors","dir":"Articles > Web_only","previous_headings":"","what":"Adding priors","title":"Bayesian estimation with sdmTMB","text":"first model fit use priors. case, priors implied uniform internal parameter space. However, sdmTMB provides option applying priors. show example applying Normal(0, 5) (mean, SD) prior intercept Normal(0, 1) prior slope parameter. guess model matrix structure based formula, can verify looking internal model matrix previous fit (using do_fit = FALSE save time didn’t want fit first time). column corresponds order b priors:","code":"head(fit$tmb_data$X_ij[[1]]) #> (Intercept) a1 #> 1 1 -0.60189285 #> 2 1 -0.99369859 #> 3 1 1.02678506 #> 4 1 0.75106130 #> 5 1 -1.50916654 #> 6 1 -0.09514745 fit <- sdmTMB( observed ~ a1, data = sim_dat, mesh = mesh, family = gaussian(), spatial = \"on\", priors = sdmTMBpriors( # location = vector of means; scale = vector of standard deviations: b = normal(location = c(0, 0), scale = c(5, 2)), ) ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.8 0.06 #> a1 -0.4 0.01 #> #> Dispersion parameter: 0.20 #> Matérn range: 0.32 #> Spatial SD: 0.17 #> ML criterion at convergence: -62.846 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"fixing-a-spatial-correlation-parameter-to-improve-convergence","dir":"Articles > Web_only","previous_headings":"","what":"Fixing a spatial correlation parameter to improve convergence","title":"Bayesian estimation with sdmTMB","text":"Sometimes spatial correlation parameters can challenging estimate Stan. One option apply penalized complexity (PC) priors sdmTMBpriors() Matérn parameters. Another option, can also used conjunction priors, fix one parameters maximum likelihood estimate (MLE) values. Frequently, fixing parameter ln_kappa can help convergence (e.g., Monnahan et al. 2021). estimated parameter transformed range estimate, controls rate spatial correlation decay. Now rebuild fitted object fixed (‘mapped’) ln_kappa parameters using update() function. ’ll use do_fit = FALSE avoid actually fitting updated model since ’s necessary.","code":"# grab the internal parameter list at estimated values: pars <- sdmTMB::get_pars(fit) # create a 'map' vector for TMB # factor NA values cause TMB to fix or map the parameter at the starting value: kappa_map <- factor(rep(NA, length(pars$ln_kappa))) # rebuild model updating some elements: fit_mle <- update( fit, control = sdmTMBcontrol( start = list( ln_kappa = pars$ln_kappa #< ), map = list( ln_kappa = kappa_map #< ) ), do_fit = FALSE #< ) #> ℹ Initiating `ln_kappa` at specified starting value(s) of: #> 2.173, 2.173 #> ℹ Fixing or mirroring `ln_kappa`"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"passing-the-model-to-tmbstan","dir":"Articles > Web_only","previous_headings":"","what":"Passing the model to tmbstan","title":"Bayesian estimation with sdmTMB","text":"Now can pass $tmb_obj element model tmbstan::tmbstan(). using 1000 iterations 2 chains vignette builds quickly. practice, likely want use (e.g., 2000 iterations, 4 chains). Sometimes may need adjust sampler settings : See Details section ?rstan::stan. can also ‘thin’ samples via thin argument working model predictions becomes cumbersome given large number required samples. can look model: Rhat values look reasonable (< 1.05). n_eff (number effective samples) values mostly look reasonable (> 100) inference mean parameters except intercept (b_j[1]). Furthermore, can see correlation MCMC samples b_j[1]. try running iterations chains /placing priors parameters described (highly recommended). Now can use various functions visualize posterior:","code":"fit_stan <- tmbstan::tmbstan( fit_mle$tmb_obj, iter = 1000, chains = 2, seed = 8217 # ensures repeatability ) tmbstan::tmbstan( ..., control = list(adapt_delta = 0.9, max_treedepth = 12) ) fit_stan #> Inference for Stan model: sdmTMB. #> 2 chains, each with iter=1000; warmup=500; thin=1; #> post-warmup draws per chain=500, total post-warmup draws=1000. #> #> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat #> b_j[1] 0.80 0.01 0.06 0.68 0.76 0.80 0.84 0.92 82 1.02 #> b_j[2] -0.40 0.00 0.01 -0.41 -0.40 -0.40 -0.39 -0.38 1747 1.00 #> ln_tau_O -1.67 0.01 0.14 -1.93 -1.76 -1.67 -1.57 -1.42 169 1.01 #> ln_phi -1.63 0.00 0.03 -1.69 -1.65 -1.63 -1.61 -1.56 1360 1.00 #> omega_s[1] -0.09 0.01 0.09 -0.26 -0.14 -0.09 -0.03 0.09 162 1.01 #> omega_s[2] -0.06 0.01 0.09 -0.25 -0.12 -0.06 0.01 0.11 196 1.01 #> omega_s[3] 0.01 0.01 0.10 -0.17 -0.05 0.01 0.08 0.20 196 1.01 #> omega_s[4] -0.21 0.01 0.09 -0.40 -0.27 -0.21 -0.15 -0.02 206 1.01 #> omega_s[5] -0.34 0.01 0.10 -0.53 -0.41 -0.33 -0.27 -0.13 247 1.00 #> omega_s[6] -0.08 0.01 0.10 -0.27 -0.15 -0.08 0.00 0.13 268 1.01 #> omega_s[7] -0.02 0.01 0.09 -0.19 -0.08 -0.02 0.04 0.15 172 1.01 #> omega_s[8] -0.23 0.01 0.10 -0.42 -0.29 -0.23 -0.16 -0.05 219 1.01 #> omega_s[9] -0.32 0.01 0.09 -0.50 -0.38 -0.32 -0.26 -0.13 166 1.02 #> omega_s[10] 0.29 0.01 0.09 0.11 0.23 0.28 0.35 0.46 147 1.01 #> omega_s[11] -0.16 0.01 0.09 -0.34 -0.22 -0.16 -0.09 0.02 208 1.01 #> omega_s[12] 0.00 0.01 0.10 -0.19 -0.07 0.01 0.07 0.21 205 1.01 #> omega_s[13] 0.19 0.01 0.09 0.02 0.13 0.19 0.25 0.36 166 1.01 #> omega_s[14] -0.09 0.01 0.10 -0.29 -0.16 -0.09 -0.03 0.11 253 1.01 #> omega_s[15] 0.22 0.01 0.09 0.06 0.16 0.22 0.28 0.40 152 1.01 #> omega_s[16] -0.02 0.01 0.10 -0.21 -0.08 -0.02 0.05 0.16 198 1.01 #> omega_s[17] -0.15 0.01 0.09 -0.34 -0.21 -0.14 -0.08 0.04 198 1.01 #> omega_s[18] -0.28 0.01 0.11 -0.50 -0.35 -0.28 -0.21 -0.09 270 1.00 #> omega_s[19] 0.00 0.01 0.10 -0.18 -0.06 0.00 0.07 0.19 211 1.01 #> omega_s[20] 0.03 0.01 0.08 -0.14 -0.03 0.02 0.09 0.19 180 1.01 #> omega_s[21] 0.08 0.01 0.10 -0.11 0.02 0.08 0.15 0.26 191 1.01 #> omega_s[22] -0.01 0.01 0.10 -0.21 -0.08 -0.01 0.05 0.17 212 1.00 #> omega_s[23] 0.12 0.01 0.09 -0.04 0.06 0.12 0.18 0.30 156 1.01 #> omega_s[24] 0.20 0.01 0.10 0.00 0.13 0.19 0.26 0.40 256 1.00 #> omega_s[25] 0.08 0.01 0.09 -0.09 0.01 0.07 0.14 0.26 167 1.01 #> omega_s[26] -0.01 0.01 0.10 -0.21 -0.08 -0.01 0.06 0.20 215 1.01 #> omega_s[27] -0.11 0.01 0.09 -0.30 -0.18 -0.10 -0.05 0.06 216 1.00 #> omega_s[28] 0.12 0.01 0.10 -0.08 0.05 0.11 0.18 0.32 229 1.00 #> omega_s[29] 0.30 0.01 0.09 0.12 0.23 0.30 0.36 0.47 212 1.01 #> omega_s[30] -0.04 0.01 0.09 -0.22 -0.10 -0.04 0.02 0.14 193 1.01 #> omega_s[31] 0.09 0.01 0.09 -0.08 0.04 0.09 0.15 0.26 154 1.01 #> omega_s[32] 0.05 0.01 0.12 -0.18 -0.02 0.05 0.14 0.28 244 1.01 #> omega_s[33] 0.08 0.01 0.09 -0.10 0.01 0.07 0.14 0.26 219 1.01 #> omega_s[34] 0.04 0.01 0.09 -0.13 -0.03 0.04 0.10 0.20 163 1.01 #> omega_s[35] 0.07 0.01 0.10 -0.10 0.00 0.07 0.14 0.26 230 1.01 #> omega_s[36] 0.14 0.01 0.09 -0.04 0.08 0.15 0.20 0.33 197 1.01 #> omega_s[37] 0.16 0.01 0.11 -0.06 0.09 0.16 0.24 0.39 275 1.00 #> omega_s[38] 0.12 0.01 0.10 -0.09 0.05 0.11 0.19 0.31 217 1.01 #> omega_s[39] -0.22 0.01 0.10 -0.40 -0.28 -0.22 -0.15 -0.04 186 1.01 #> omega_s[40] -0.03 0.01 0.09 -0.21 -0.09 -0.03 0.03 0.17 197 1.01 #> omega_s[41] 0.19 0.01 0.08 0.03 0.13 0.19 0.24 0.35 143 1.01 #> omega_s[42] 0.21 0.01 0.09 0.01 0.14 0.21 0.27 0.38 173 1.01 #> omega_s[43] 0.15 0.01 0.10 -0.04 0.07 0.15 0.21 0.35 221 1.01 #> omega_s[44] 0.14 0.01 0.10 -0.07 0.08 0.14 0.20 0.32 194 1.01 #> omega_s[45] 0.10 0.01 0.10 -0.10 0.02 0.10 0.16 0.30 248 1.00 #> omega_s[46] 0.06 0.01 0.10 -0.14 -0.01 0.06 0.12 0.26 187 1.01 #> omega_s[47] 0.31 0.01 0.09 0.13 0.24 0.31 0.37 0.50 166 1.01 #> omega_s[48] -0.24 0.01 0.10 -0.44 -0.31 -0.24 -0.18 -0.06 196 1.01 #> omega_s[49] 0.10 0.01 0.10 -0.10 0.04 0.10 0.17 0.32 255 1.01 #> omega_s[50] -0.09 0.01 0.09 -0.26 -0.14 -0.09 -0.03 0.08 178 1.01 #> omega_s[51] 0.25 0.01 0.11 0.04 0.17 0.25 0.32 0.48 247 1.01 #> omega_s[52] -0.21 0.01 0.11 -0.43 -0.29 -0.21 -0.14 -0.01 251 1.01 #> omega_s[53] 0.04 0.01 0.10 -0.16 -0.03 0.04 0.10 0.22 213 1.00 #> omega_s[54] 0.03 0.01 0.10 -0.16 -0.04 0.03 0.10 0.22 214 1.00 #> omega_s[55] -0.09 0.01 0.11 -0.30 -0.16 -0.09 -0.01 0.15 311 1.01 #> omega_s[56] -0.42 0.01 0.10 -0.62 -0.48 -0.41 -0.35 -0.24 229 1.01 #> omega_s[57] 0.01 0.01 0.11 -0.20 -0.07 0.00 0.08 0.24 274 1.00 #> omega_s[58] -0.21 0.01 0.10 -0.40 -0.28 -0.21 -0.14 -0.01 201 1.01 #> omega_s[59] 0.04 0.01 0.24 -0.43 -0.11 0.05 0.20 0.47 992 1.00 #> omega_s[60] -0.23 0.01 0.28 -0.78 -0.41 -0.23 -0.03 0.27 1087 1.00 #> omega_s[61] -0.26 0.01 0.24 -0.69 -0.41 -0.27 -0.10 0.20 662 1.00 #> omega_s[62] -0.26 0.01 0.23 -0.72 -0.42 -0.26 -0.11 0.19 693 1.00 #> omega_s[63] -0.27 0.01 0.23 -0.72 -0.43 -0.28 -0.12 0.18 807 1.00 #> omega_s[64] 0.08 0.01 0.22 -0.37 -0.07 0.09 0.23 0.51 866 1.00 #> omega_s[65] 0.17 0.01 0.22 -0.29 0.02 0.17 0.32 0.57 693 1.00 #> omega_s[66] 0.16 0.01 0.22 -0.27 0.02 0.16 0.31 0.60 525 1.00 #> omega_s[67] -0.03 0.01 0.22 -0.49 -0.17 -0.01 0.13 0.42 1154 1.00 #> omega_s[68] -0.02 0.01 0.25 -0.50 -0.17 -0.02 0.15 0.47 1152 1.00 #> omega_s[69] 0.00 0.01 0.22 -0.46 -0.15 0.00 0.15 0.43 458 1.01 #> omega_s[70] 0.01 0.01 0.21 -0.42 -0.13 0.01 0.15 0.40 431 1.00 #> omega_s[71] 0.17 0.01 0.24 -0.30 0.01 0.17 0.33 0.67 884 1.00 #> omega_s[72] -0.12 0.01 0.24 -0.62 -0.29 -0.11 0.04 0.35 1064 1.00 #> omega_s[73] -0.14 0.01 0.22 -0.58 -0.28 -0.15 0.01 0.30 600 1.00 #> omega_s[74] -0.14 0.01 0.22 -0.56 -0.29 -0.14 0.01 0.26 624 1.00 #> omega_s[75] -0.38 0.01 0.20 -0.76 -0.51 -0.38 -0.25 0.00 654 1.00 #> omega_s[76] 0.10 0.01 0.21 -0.31 -0.04 0.10 0.23 0.51 848 1.00 #> omega_s[77] 0.09 0.01 0.22 -0.34 -0.04 0.09 0.23 0.52 1053 1.00 #> omega_s[78] -0.06 0.01 0.21 -0.47 -0.19 -0.06 0.08 0.35 1693 1.00 #> omega_s[79] 0.06 0.01 0.16 -0.27 -0.05 0.06 0.17 0.37 622 1.00 #> omega_s[80] -0.18 0.01 0.23 -0.65 -0.33 -0.18 -0.02 0.27 632 1.00 #> omega_s[81] -0.07 0.01 0.20 -0.45 -0.20 -0.07 0.05 0.33 1165 1.00 #> omega_s[82] -0.14 0.01 0.21 -0.55 -0.28 -0.14 0.00 0.29 810 1.00 #> omega_s[83] -0.02 0.01 0.23 -0.47 -0.18 -0.01 0.14 0.44 1096 1.00 #> omega_s[84] 0.12 0.01 0.20 -0.26 -0.02 0.12 0.25 0.53 952 1.00 #> omega_s[85] -0.29 0.01 0.21 -0.68 -0.44 -0.30 -0.15 0.11 1111 1.00 #> lp__ 136.06 0.93 9.26 118.11 129.87 136.38 142.46 152.88 100 1.02 #> #> Samples were drawn using NUTS(diag_e) at Fri May 17 19:20:09 2024. #> For each parameter, n_eff is a crude measure of effective sample size, #> and Rhat is the potential scale reduction factor on split chains (at #> convergence, Rhat=1). plot(fit_stan) #> 'pars' not specified. Showing first 10 parameters by default. #> ci_level: 0.8 (80% intervals) #> outer_level: 0.95 (95% intervals) pars_plot <- c(\"b_j[1]\", \"b_j[2]\", \"ln_tau_O\", \"omega_s[1]\") bayesplot::mcmc_trace(fit_stan, pars = pars_plot) bayesplot::mcmc_pairs(fit_stan, pars = pars_plot)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"posterior-predictive-checks","dir":"Articles > Web_only","previous_headings":"","what":"Posterior predictive checks","title":"Bayesian estimation with sdmTMB","text":"can perform posterior predictive checks assess whether model can generate predictive data consistent observations. , can make use simulate.sdmTMB() passing Stan model. simulate.sdmTMB() take draws joint parameter posterior add observation error. need ensure nsim less equal total number post-warmup samples. See ?bayesplot::pp_check. solid line represents density observed data light blue lines represent density 50 posterior predictive simulations. case, simulated data seem consistent observed data.","code":"set.seed(19292) samps <- sdmTMBextra::extract_mcmc(fit_stan) s <- simulate(fit_mle, mcmc_samples = samps, nsim = 50) bayesplot::pp_check( sim_dat$observed, yrep = t(s), fun = bayesplot::ppc_dens_overlay )"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"plotting-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Plotting predictions","title":"Bayesian estimation with sdmTMB","text":"can make predictions Bayesian model supplying posterior samples mcmc_samples argument predict.sdmTMB(). output matrix row corresponds row predicted data column corresponds sample. can summarize draws various ways visualize : predict grid given value a1:","code":"pred <- predict(fit_mle, mcmc_samples = samps) dim(pred) #> [1] 500 1000 sim_dat$post_mean <- apply(pred, 1, mean) sim_dat$post_sd <- apply(pred, 1, sd) ggplot(sim_dat, aes(X, Y, colour = post_mean)) + geom_point() + scale_color_viridis_c() ggplot(sim_dat, aes(X, Y, colour = post_sd)) + geom_point() + scale_color_viridis_c() nd <- expand.grid( X = seq(0, 1, length.out = 70), Y = seq(0, 1, length.out = 70), a1 = 0 ) pred <- predict(fit_mle, newdata = nd, mcmc_samples = samps) nd$post_mean <- apply(pred, 1, mean) nd$post_sd <- apply(pred, 1, sd) ggplot(nd, aes(X, Y, fill = post_mean)) + geom_raster() + scale_fill_viridis_c() + coord_fixed() ggplot(nd, aes(X, Y, fill = post_sd)) + geom_raster() + scale_fill_viridis_c() + coord_fixed()"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"extracting-parameter-posterior-samples","dir":"Articles > Web_only","previous_headings":"","what":"Extracting parameter posterior samples","title":"Bayesian estimation with sdmTMB","text":"can extract posterior samples rstan::extract(), result list element corresponds parameter set parameters: example calculating derived parameter, calculate marginal spatial random field standard deviation:","code":"post <- rstan::extract(fit_stan) names(post) #> [1] \"b_j\" \"ln_tau_O\" \"ln_phi\" \"omega_s\" \"lp__\" hist(post$b_j[, 1]) ln_kappa <- get_pars(fit_mle)$ln_kappa[1] # 2 elements since 2nd would be for spatiotemporal ln_tau_O <- post$ln_tau_O sigma_O <- 1 / sqrt(4 * pi * exp(2 * ln_tau_O + 2 * ln_kappa)) hist(sigma_O)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/bayesian.html","id":"extracting-the-posterior-of-other-predicted-elements","dir":"Articles > Web_only","previous_headings":"","what":"Extracting the posterior of other predicted elements","title":"Bayesian estimation with sdmTMB","text":"default predict.sdmTMB() returns overall prediction link space tmbstan model passed . instead want element might find usual data frame returned predict.sdmTMB() applied regular sdmTMB model, can specify sims_var argument. example, let’s extract spatial random field values \"omega_s\". options documented ?predict.sdmTMB().","code":"fit_pred <- predict( fit_mle, newdata = nd, mcmc_samples = samps, sims_var = \"omega_s\" #< ) nd$spatial_rf_mean <- apply(fit_pred, 1, mean) nd$spatial_rf_sd <- apply(fit_pred, 1, sd) ggplot(nd, aes(X, Y, fill = spatial_rf_mean)) + geom_raster() + scale_fill_gradient2() + coord_fixed() ggplot(nd, aes(X, Y, fill = spatial_rf_sd)) + geom_raster() + scale_fill_viridis_c() + coord_fixed()"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"overview","dir":"Articles > Web_only","previous_headings":"","what":"Overview","title":"Cross-validation for model evaluation and comparison","text":"Cross-validation one best approaches can used quantify model performance compare sdmTMB models different structures (unlike AIC, approach also factor uncertainty random effects). Arguably challenging decision implementing cross-validation specify folds (fold representing subset data turn held used test set). Folds may vary number data partitioned, likely slightly different application. goals sdmTMB applications may focused spatial prediction; include making prediction new spatial regions (e.g. unsampled areas areas sampled every year). types models recommend exploring folds using blockCV spatialsample packages (Valavi et al. 2019; Silge 2021). general, spatial sampling approaches assign observations spatially autocorrelated fold. Accounting spatial correlation can lead better estimates covariate effects, well prediction errors. Alternatively, goals analysis sdmTMB may evaluate predictive accuracy model time (e.g. missing survey year, prediction future years). retrospective analyses, points within year may assigned fold (groups years fold). contrast, models forward looking use Leave Future Cross-Validation (LFOCV). LFOCV, data year \\(t\\) used predict observations \\(t+1\\), etc.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"cross-validation-in-sdmtmb","dir":"Articles > Web_only","previous_headings":"","what":"Cross validation in sdmTMB","title":"Cross-validation for model evaluation and comparison","text":"Cross validation sdmTMB implemented using sdmTMB_cv() function, k_folds argument specifying number folds (defaults 8). function uses parallelization default future::plan() set, can turned parallel argument. example, folds assigned randomly—can modified specific spatial temporal applications. Without getting complexities blockCV spatialsample packages, simply use kmeans generate spatial clusters, e.g. similarly, clusters assigned time—, year unique fold. Note year included factor spatiotemporal fields turned estimated missing years.","code":"data(pcod) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) pcod$fyear <- as.factor(pcod$year) # Set parallel processing if desired: library(future) plan(multisession, workers = 2) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 4 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. clust <- kmeans(pcod[, c(\"X\", \"Y\")], 20)$cluster m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. clust <- as.numeric(as.factor(pcod$year)) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled), data = pcod, mesh = mesh, fold_ids = clust, spatiotemporal = \"off\", family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"measuring-model-performance","dir":"Articles > Web_only","previous_headings":"","what":"Measuring model performance","title":"Cross-validation for model evaluation and comparison","text":"Lots measures predictive accuracy can used evaluate model performance. default, sdmTMB_cv() returns list contains sum log likelihoods left-fold total summed across left-folds. roughly equivalent expected log predictive density (ELPD) Bayesian literature can interpreted predictive ability model new observations. can accessed , inspecting quantities across folds may help elucidate whether particular folds difficult predict.","code":"m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 4 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m_cv$fold_loglik # fold log-likelihood #> [1] -1720.122 -1756.138 -1502.946 -1661.257 m_cv$sum_loglik # total log-likelihood #> [1] -6640.463"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"single-splits","dir":"Articles > Web_only","previous_headings":"","what":"Single splits","title":"Cross-validation for model evaluation and comparison","text":"cases single test set evaluated (e.g., 10% data), using sdmTMB_cv() function may overkill two sdmTMB() models fit, using function may worthwhile reduce coding errors (log-likelihood calculations). example, assign two folds, randomly holding 10% observations test set (test set given ID = 1, training set given ID = 2). can ignore total log-likelihood, just focus first element list list:","code":"clust <- sample(1:2, size = nrow(pcod), replace = TRUE, prob = c(0.1, 0.9)) m_cv <- sdmTMB_cv( density ~ 0 + s(depth_scaled) + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\"), k_folds = length(unique(clust)) ) m_cv$fold_loglik[[1]] #> [1] -608.5838"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"comparing-two-or-more-models","dir":"Articles > Web_only","previous_headings":"","what":"Comparing two or more models","title":"Cross-validation for model evaluation and comparison","text":"can use output sdmTMB_cv() compare two models. example, wanted evaluate support depth effect , 10-fold cross validation (’s important folds across two models). example, using either predictive log-likelihood ELPD lead one conclude including depth improves predictive accuracy model.","code":"clust <- sample(seq_len(10), size = nrow(pcod), replace = TRUE) m1 <- sdmTMB_cv( density ~ 0 + fyear, data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m2 <- sdmTMB_cv( density ~ 0 + fyear + s(depth_scaled), data = pcod, mesh = mesh, fold_ids = clust, family = tweedie(link = \"log\") ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Compare log-likelihoods -- higher is better! m1$sum_loglik #> [1] -6748.929 m2$sum_loglik #> [1] -6596.481"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/cross-validation.html","id":"model-ensembling","dir":"Articles > Web_only","previous_headings":"","what":"Model ensembling","title":"Cross-validation for model evaluation and comparison","text":"Finally, instead identifying single “best” models, may interested model averaging. sdmTMB package, ’ve implemented model stacking procedure described (Yao et al. 2018) sdmTMB_stacking() function. procedure uses optimization find normalized weights maximize total log-likelihood across models (metrics may also used). Inputs function list models (fictitious model_list), list element output call sdmTMB_cv(): default calculation uses data fold. instead, split data 10/90 split (example ), wouldn’t want use 2nd model fit generate weights. just wanted use predictions first fold onto 10% test set, specify using include_folds argument.","code":"weights <- sdmTMB_stacking(model_list) weights <- sdmTMB_stacking(model_list, include_folds = 1)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/delta-models.html","id":"example-with-built-in-delta-model","dir":"Articles > Web_only","previous_headings":"","what":"Example with built-in delta model","title":"Fitting delta (hurdle) models with sdmTMB","text":", show example fitting using built-delta functionality, well build model component separately combine. built-approach convenient, allows parameters shared across components, allows calculation derived quantities standardized indexes (get_index()) internally calculated standard errors. use dataset built sdmTMB package: trawl survey data Pacific Cod Queen Charlotte Sound, British Columbia, Canada. density units kg/km2. , X Y coordinates UTM zone 9. first create mesh use models. can fit model Pacific cod density using delta-gamma model, including smoothed effect depth. default built-delta models formula, spatial spatiotemporal structure, anisotropy shared two model components. However, elements (formula, spatial, spatiotemporal, share_range) can also specified independently model using list format within function argument (see examples ). first element list binomial component second element positive component (e.g., Gamma). elements must shared now (e.g., smoothers, spatially varying coefficients, time-varying coefficients). specify settings spatial spatiotemporal effects model component, create list settings within spatial spatiotemporal arguments. example, spatial = list(\"\", \"\"), spatiotemporal = list(\"\", \"rw\"). similarly specify different formula component model, using list(y ~ x1, y ~ x2) instance, include effect depth positive model, remove presence-absence model. However, currently limitations specifying separate formulas model component. two formulas : smoothers threshold effects random intercepts now, must specified single formula shared across two models. model component can similarly separate settings share_range, determines whether shared spatial spatiotemporal range parameter (TRUE) independent range parameters (FALSE), using list. Lastly, whether anisotropy included model determined logical argument anisotropy (.e., TRUE FALSE), separately specified model. anisotropy included, default shared across two model components. However can made unique model component using sdmTMBcontrol(map = ...) adding argument control fitting model. ‘maps’ anisotropy parameters unique across model components. fit delta model, can evaluate plot output, diagnostics, predictions similar sdmTMB models. printed model output show estimates standard errors parameters model separately. Using tidy() function turn sdmTMB model output data frame, argument model=1 model=2 specify model component extract dataframe. See tidy.sdmTMB() additional arguments options. built-delta models, default function return estimated response parameters grid cell model separately, notated 1 (presence/absence model) 2 (positive catch model) column name. See predict.sdmTMB() description values data frame. can use predictions built-delta model (making sure return_tmb_object=TRUE) get index values using get_index() function. can used predictions include first second models (.e., using default specifying model argument) predictions generated using model=NA. get_index() function automatically combine predictions first second model calculating index values. modelling purposes creating index see vignette Index standardization sdmTMB. can plot conditional effects covariates (depth example model) using package visreg specifying model component model=1 presence-absence model model=2 positive catch model. Currently, plotting effects built-delta models ggeffects supported. See vignette using visreg sdmTMB information. built-delta models can also evaluated residuals() functions sdmTMB. Similarly generating predictions, can specify model components want return residuals using model argument specifying =1 =2. See residuals.sdmTMB() additional options evaluating residuals sdmTMB models. can also simulate new observations fitted delta model. functions, can specify model simulate using argument model=1 presence/absence, model=2 positive catches, model=NA combined predictions. See simulate.sdmTMB() details simulation options.","code":"pcod_mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 15) fit_dg <- sdmTMB(density ~ 1 + s(depth), data = pcod, mesh = pcod_mesh, time = \"year\", family = delta_gamma() ) print(fit_dg) #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 1 + s(depth) #> Mesh: pcod_mesh (isotropic covariance) #> Time column: year #> Data: pcod #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.34 0.61 #> sdepth 1.28 2.91 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 14.38 #> #> Matérn range: 61.41 #> Spatial SD: 1.71 #> Spatiotemporal IID SD: 0.81 #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 3.67 0.12 #> sdepth 0.31 1.29 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 5.41 #> #> Dispersion parameter: 1.03 #> Matérn range: 14.80 #> Spatial SD: 0.69 #> Spatiotemporal IID SD: 1.45 #> #> ML criterion at convergence: 6126.400 #> #> See ?tidy.sdmTMB to extract these values as a data frame. tidy(fit_dg) # model = 1 is default #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.343 0.614 tidy(fit_dg, model = 1) #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.343 0.614 tidy(fit_dg, model = 1, \"ran_pars\", conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 61.4 14.1 39.2 96.3 #> 2 sigma_O 1.71 0.265 1.26 2.32 #> 3 sigma_E 0.806 0.142 0.570 1.14 tidy(fit_dg, model = 2) #> # A tibble: 1 × 3 #> term estimate std.error #> #> 1 (Intercept) 3.67 0.120 tidy(fit_dg, model = 2, \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 14.8 5.02 7.62 28.8 #> 2 phi 1.03 0.0502 0.939 1.14 #> 3 sigma_O 0.691 0.228 0.361 1.32 #> 4 sigma_E 1.45 0.336 0.919 2.28 grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) p <- predict(fit_dg, newdata = grid_yrs) str(p) #> 'data.frame': 65826 obs. of 16 variables: #> $ X : num 456 458 460 462 464 466 468 470 472 474 ... #> $ Y : num 5636 5636 5636 5636 5636 ... #> $ depth : num 347 223 204 183 183 ... #> $ depth_scaled : num 1.561 0.57 0.363 0.126 0.122 ... #> $ depth_scaled2: num 2.4361 0.3246 0.132 0.0158 0.0149 ... #> $ year : int 2003 2003 2003 2003 2003 2003 2003 2003 2003 2003 ... #> $ est1 : num -5.804 -0.796 0.021 0.87 0.98 ... #> $ est2 : num 3.2 3.71 4.02 4.39 4.43 ... #> $ est_non_rf1 : num -5.508 -0.598 0.12 0.871 0.882 ... #> $ est_non_rf2 : num 2.83 3.31 3.59 3.94 3.94 ... #> $ est_rf1 : num -0.296138 -0.197484 -0.09883 -0.000177 0.098477 ... #> $ est_rf2 : num 0.368 0.398 0.428 0.459 0.489 ... #> $ omega_s1 : num -0.00543 0.09317 0.19178 0.29039 0.38899 ... #> $ omega_s2 : num 0.108 0.119 0.129 0.139 0.15 ... #> $ epsilon_st1 : num -0.291 -0.291 -0.291 -0.291 -0.291 ... #> $ epsilon_st2 : num 0.26 0.28 0.299 0.319 0.339 ... p2 <- predict(fit_dg, newdata = grid_yrs, return_tmb_object = TRUE) ind_dg <- get_index(p2, bias_correct = FALSE) visreg_delta(fit_dg, xvar = \"depth\", model = 1, gg = TRUE) #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. visreg_delta(fit_dg, xvar = \"depth\", model = 2, gg = TRUE) simulations <- simulate(fit_dg, nsim = 5, seed = 5090, model = NA)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/delta-models.html","id":"delta-models-by-fitting-two-components-separately-and-combining-predictions","dir":"Articles > Web_only","previous_headings":"","what":"Delta models by fitting two components separately and combining predictions","title":"Fitting delta (hurdle) models with sdmTMB","text":"Next, show example implement delta-gamma model sdmTMB, component fit separately combined. approach gives maximum flexibility model lets develop time. limitations calculating index abundance want share parameters. necessary use mesh models, one can updating first mesh match reduced data frame shown : delta-gamma model similar Tweedie model Intro modelling sdmTMB vignette, except use s() depth effect. One can use different covariates model, case just let depth effect wiggly specifying k = 3. Next, need way combining predictions across two models. need point predictions, can just multiply predictions two models applying inverse link: measure uncertainty required, can simulate joint parameter precision matrix using predict() function number simulations selected (e.g., sims = 500). predictions come simulated draws parameter covariance matrix, predictions become consistent larger number draws. However, greater number draws takes longer calculate use memory (larger matrix), fewer draws (~100) may fine experimentation. larger number (say ~1000) may appropriate final model runs. p_combined_sim matrix row row data predicted width nsim. can process matrix however like. can save median predictions upper lower 95% confidence intervals: can calculate spatial uncertainty:","code":"glimpse(pcod) #> Rows: 2,143 #> Columns: 12 #> $ year 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 20… #> $ X 446.4752, 446.4594, 448.5987, 436.9157, 420.6101, 417.71… #> $ Y 5793.426, 5800.136, 5801.687, 5802.305, 5771.055, 5772.2… #> $ depth 201, 212, 220, 197, 256, 293, 410, 387, 285, 270, 381, 1… #> $ density 113.138476, 41.704922, 0.000000, 15.706138, 0.000000, 0.… #> $ present 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,… #> $ lat 52.28858, 52.34890, 52.36305, 52.36738, 52.08437, 52.094… #> $ lon -129.7847, -129.7860, -129.7549, -129.9265, -130.1586, -… #> $ depth_mean 5.155194, 5.155194, 5.155194, 5.155194, 5.155194, 5.1551… #> $ depth_sd 0.4448783, 0.4448783, 0.4448783, 0.4448783, 0.4448783, 0… #> $ depth_scaled 0.3329252, 0.4526914, 0.5359529, 0.2877417, 0.8766077, 1… #> $ depth_scaled2 0.11083919, 0.20492947, 0.28724555, 0.08279527, 0.768440… mesh1 <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 20) # coarse for vignette speed dat2 <- subset(pcod, density > 0) mesh2 <- make_mesh(dat2, xy_cols = c(\"X\", \"Y\"), mesh = mesh1$mesh ) m1 <- sdmTMB( formula = present ~ 0 + as.factor(year) + s(depth, k = 3), data = pcod, mesh = mesh1, time = \"year\", family = binomial(link = \"logit\"), spatiotemporal = \"iid\", spatial = \"on\" ) m1 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: present ~ 0 + as.factor(year) + s(depth, k = 3) #> Mesh: mesh1 (isotropic covariance) #> Time column: year #> Data: pcod #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> as.factor(year)2003 -0.76 0.42 #> as.factor(year)2004 -0.40 0.42 #> as.factor(year)2005 -0.42 0.42 #> as.factor(year)2007 -1.40 0.42 #> as.factor(year)2009 -1.16 0.42 #> as.factor(year)2011 -1.56 0.42 #> as.factor(year)2013 -0.38 0.42 #> as.factor(year)2015 -0.65 0.42 #> as.factor(year)2017 -1.56 0.42 #> sdepth -5.66 0.50 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 85.9 #> #> Matérn range: 28.70 #> Spatial SD: 1.89 #> Spatiotemporal IID SD: 0.90 #> ML criterion at convergence: 1054.414 #> #> See ?tidy.sdmTMB to extract these values as a data frame. m2 <- sdmTMB( formula = density ~ 0 + as.factor(year) + s(depth), data = dat2, mesh = mesh2, time = \"year\", family = Gamma(link = \"log\"), spatiotemporal = \"iid\", spatial = \"on\" ) m2 #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) + s(depth) #> Mesh: mesh2 (isotropic covariance) #> Time column: year #> Data: dat2 #> Family: Gamma(link = 'log') #> #> coef.est coef.se #> as.factor(year)2003 4.06 0.20 #> as.factor(year)2004 4.22 0.20 #> as.factor(year)2005 4.19 0.20 #> as.factor(year)2007 3.38 0.20 #> as.factor(year)2009 3.71 0.21 #> as.factor(year)2011 4.51 0.21 #> as.factor(year)2013 4.02 0.19 #> as.factor(year)2015 4.13 0.20 #> as.factor(year)2017 3.84 0.22 #> sdepth -0.28 0.36 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 1.89 #> #> Dispersion parameter: 0.94 #> Matérn range: 0.01 #> Spatial SD: 727.73 #> Spatiotemporal IID SD: 2066.17 #> ML criterion at convergence: 5102.136 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** pred <- grid_yrs # use the grid as template for saving our predictions p_bin <- predict(m1, newdata = grid_yrs) p_pos <- predict(m2, newdata = grid_yrs) p_bin_prob <- m1$family$linkinv(p_bin$est) p_pos_exp <- m2$family$linkinv(p_pos$est) pred$est_exp <- p_bin_prob * p_pos_exp set.seed(28239) p_bin_sim <- predict(m1, newdata = grid_yrs, nsim = 100) p_pos_sim <- predict(m2, newdata = grid_yrs, nsim = 100) p_bin_prob_sim <- m1$family$linkinv(p_bin_sim) p_pos_exp_sim <- m2$family$linkinv(p_pos_sim) p_combined_sim <- p_bin_prob_sim * p_pos_exp_sim pred$median <- apply(p_combined_sim, 1, median) plot(pred$est_exp, pred$median) ggplot(subset(pred, year == 2017), aes(X, Y, fill = median)) + geom_raster() + coord_fixed() + scale_fill_viridis_c(trans = \"sqrt\") pred$cv <- apply(p_combined_sim, 1, function(x) sd(x) / mean(x)) ggplot(subset(pred, year == 2017), aes(X, Y, fill = cv)) + # 2017 as an example geom_raster() + coord_fixed() + scale_fill_viridis_c(trans = \"log10\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/ggeffects.html","id":"example-with-pacific-cod-presence","dir":"Articles > Web_only","previous_headings":"","what":"Example with Pacific cod presence","title":"Visualizing marginal effects in sdmTMB models with ggeffects","text":"start, use Pacific cod example data. fit model fish presence/absence covariates depth fixed effect year using Tweedie distribution. can use ggeffects::ggeffect() see effect depth probability Pacific cod present. can control range interval depths predicted within function (e.g. [0:500 =1]). can also plot effects year. can add data points can also use ggeffect plot multiple variables listing terms = c(), first term listed indicating variable plotted x-axis, remaining listed terms (four total) indicating groups. Adding facet = TRUE show year separate plot, instead overlain one plot. Adding facet = TRUE show year separate plot, instead overlain one plot. can also use make ggplot plot calling ggeffects object dat data frame. Plotting using continuous response (density) rather presence-similar. instance: can fit model interaction two continuous variables: plotting two continuous variables, ggeffect() make non-target (2nd) variable discrete selecting different levels. specify levels rather letting ggeffect() choose , use brackets selected values within term list, instance","code":"pcod$fyear <- as.factor(pcod$year) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 20) fit <- sdmTMB(present ~ poly(depth, 2) + fyear, data = pcod, mesh = mesh, spatial = \"on\", family = binomial() ) g <- ggeffect(fit, \"depth [0:500 by=1]\") plot(g) g2 <- ggeffect(fit, \"fyear\") plot(g2) plot(g, add.data = TRUE) #> Data points may overlap. Use the `jitter` argument to add some amount of #> random variation to the location of data points and avoid overplotting. dat <- ggeffect(fit, terms = c(\"depth [0:350 by=5]\", \"fyear\")) plot(dat) plot(dat, facet = TRUE) ggplot(dat, aes(x, predicted, colour = group)) + geom_line() g5 <- ggeffect(fit3, terms = c(\"depth_scaled [-3:2.7 by=0.01]\", \"numeric_year\")) plot(g5) plot(g5, facet = TRUE) g6 <- ggeffect(fit3, terms = c(\"depth_scaled [-3:2.7 by=0.01]\", \"numeric_year [1,7,15]\")) plot(g6)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"introduction","dir":"Articles > Web_only","previous_headings":"","what":"Introduction","title":"Poisson-link delta models","text":"Jim Thorson introduced Poisson-link delta model CJFAS paper (Thorson 2018). ’s useful model family dealing positive continuous data zeroes. can used circumstances use Tweedie traditional delta-gamma delta-lognormal model logit log links. Poisson-link delta formulation describes go linear predictors link space expected values entered data likelihood. likelihood first component Bernoulli (.e., binomial single trials) likelihood second component can gamma lognormal. sdmTMB, families specified delta_gamma(type = \"poisson-link\") delta_lognormal(type = \"poisson-link\").","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"the-model","dir":"Articles > Web_only","previous_headings":"","what":"The model","title":"Poisson-link delta models","text":"Thorson (2018) describes process model : \\[ \\begin{aligned} p &= 1 - \\exp(-n),\\\\ r &= \\frac{n w}{p}, \\end{aligned} \\] \\(p\\) represents encounter probability, \\(n\\) represents group numbers density, \\(r\\) represents positive catch rate (.e., catch rate given encounter), \\(w\\) represents weight per group. linear predictors represent log group numbers density (\\(\\log (n)\\)) log weight per group (\\(\\log (w)\\)): \\[ \\begin{aligned} \\log (n) &= \\boldsymbol{X_1} \\boldsymbol{\\beta_1} + \\ldots,\\\\ \\log (w) &= \\boldsymbol{X_2} \\boldsymbol{\\beta_2} + \\ldots, \\end{aligned} \\] \\(\\boldsymbol{X}\\)s represent design matrices, \\(\\boldsymbol{\\beta}\\)s represent coefficient vectors, \\(\\ldots\\) represents possible model components linear link space including random fields. transformed process equations generate \\(p\\) \\(r\\). model evaluates following likelihood components. encounter probability \\(p\\) \\[ \\operatorname{Bernoulli} (p), \\] equivalently \\[ \\operatorname{Binomial} (1, p), \\] positive rate \\(r\\), either gamma lognormal likelihood \\[ \\operatorname{Gamma} \\left( \\phi, \\frac{r}{\\phi} \\right), \\] \\(\\phi\\) represents gamma shape \\(r / \\phi\\) represents scale, \\[ \\operatorname{Lognormal} \\left( \\log (r) - \\frac{\\phi^2}{2}, \\phi^2 \\right), \\] \\(\\log (r) - \\frac{\\phi^2}{2}\\) represents bias-corrected log mean \\(\\phi\\) represents standard deviation log-space.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"data","dir":"Articles > Web_only","previous_headings":"An example","what":"Data","title":"Poisson-link delta models","text":"work Pacific Spiny Dogfish observations trawl survey west coast Vancouver Island, Canada. dataset dogfish contained within sdmTMB package.","code":"library(ggplot2) theme_set(theme_light()) library(dplyr) library(sdmTMB) dogfish$log_depth <- log(dogfish$depth) head(dogfish) #> # A tibble: 6 × 10 #> year longitude latitude X Y present catch_weight area_swept depth #> #> 1 2004 -125. 48.7 780. 5399. 1 22.7 0.103 73 #> 2 2004 -126. 48.2 735. 5346. 0 0 0.103 455 #> 3 2004 -126. 48.3 738. 5355. 0 0 0.116 171 #> 4 2004 -126. 48.3 749. 5354. 1 221. 0.122 137 #> 5 2004 -126. 48.4 744. 5362. 1 440. 0.0964 140 #> 6 2004 -126. 48.4 737. 5362. 1 48.2 0.122 145 #> # ℹ 1 more variable: log_depth mesh <- make_mesh(dogfish, c(\"X\", \"Y\"), cutoff = 10)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"a-conventional-delta-gamma-model","dir":"Articles > Web_only","previous_headings":"An example","what":"A conventional delta-gamma model:","title":"Poisson-link delta models","text":"First, lets fit conventional delta-gamma model logit log links illustrate limitation. can show effect depth catch weight? one curve, two components use different links (logit + log), different catch-weight depth relationship depending expected catch weight coefficients (year also given point space spatial random field). example, curves look different years: one curve! depends value year every point space different random field value.","code":"fit_dg <- sdmTMB(catch_weight ~ 0 + as.factor(year) + s(log_depth), family = delta_gamma(), spatial = \"on\", mesh = mesh, data = dogfish, anisotropy = FALSE, reml = TRUE, offset = log(dogfish$area_swept), silent = FALSE ) sanity(fit_dg) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameters don't look unreasonably large nd <- expand.grid( log_depth = seq(min(dogfish$log_depth), max(dogfish$log_depth), length.out = 200), year = as.factor(unique(dogfish$year)) ) p <- predict(fit_dg, newdata = nd, re_form = NA) ggplot(p, aes(log_depth, log(plogis(est1) * exp(est2)), colour = year)) + geom_line() + ylab(\"log expected catch weight\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"a-poisson-link-delta-gamma-alternative","dir":"Articles > Web_only","previous_headings":"An example","what":"A Poisson-link-delta-gamma alternative","title":"Poisson-link delta models","text":"Instead, let’s fit Poisson-link delta-gamma model: make plot: Note lines now parallel. predictors shift curve affect shape combined prediction use log link.","code":"fit_dpg <- sdmTMB(catch_weight ~ 0 + as.factor(year) + s(log_depth), family = delta_gamma(type = \"poisson-link\"), spatial = \"on\", mesh = mesh, data = dogfish, anisotropy = TRUE, reml = TRUE, offset = log(dogfish$area_swept), silent = FALSE ) sanity(fit_dpg) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameters don't look unreasonably large summary(fit_dpg) #> Spatial model fit by REML ['sdmTMB'] #> Formula: catch_weight ~ 0 + as.factor(year) + s(log_depth) #> Mesh: mesh (anisotropic covariance) #> Data: dogfish #> Family: delta_gamma(link1 = 'log', link2 = 'log', type = 'poisson-link') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'log') #> coef.est coef.se #> as.factor(year)2004 1.96 0.77 #> as.factor(year)2006 2.89 0.77 #> as.factor(year)2008 2.57 0.76 #> as.factor(year)2010 2.43 0.77 #> as.factor(year)2012 1.94 0.76 #> as.factor(year)2014 1.93 0.76 #> as.factor(year)2016 2.20 0.76 #> as.factor(year)2018 2.03 0.76 #> as.factor(year)2021 1.18 0.76 #> as.factor(year)2022 1.75 0.76 #> slog_depth 0.15 0.54 #> #> Smooth terms: #> Std. Dev. #> sds(log_depth) 2.38 #> #> Matérn anisotropic range (spatial): 26.1 to 381.1 at 142 deg. #> Spatial SD: 1.18 #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> as.factor(year)2004 3.59 0.37 #> as.factor(year)2006 2.78 0.33 #> as.factor(year)2008 2.47 0.32 #> as.factor(year)2010 3.50 0.34 #> as.factor(year)2012 2.77 0.33 #> as.factor(year)2014 2.45 0.33 #> as.factor(year)2016 2.09 0.32 #> as.factor(year)2018 2.60 0.32 #> as.factor(year)2021 1.69 0.33 #> as.factor(year)2022 1.98 0.33 #> slog_depth -0.20 0.82 #> #> Smooth terms: #> Std. Dev. #> sds(log_depth) 5.09 #> #> Dispersion parameter: 0.59 #> Matérn anisotropic range (spatial): 4.2 to 60.8 at 142 deg. #> Spatial SD: 1.97 #> #> REML criterion at convergence: 5851.613 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> See ?plot_anisotropy to plot the anisotropic range. p_dpg <- predict(fit_dpg, newdata = nd, re_form = NA) ggplot(p_dpg, aes(log_depth, est1 + est2, colour = year)) + geom_line() + ylab(\"log expected catch weight\")"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"examining-the-model-components-and-how-they-combine","dir":"Articles > Web_only","previous_headings":"An example","what":"Examining the model components and how they combine","title":"Poisson-link delta models","text":"’ll make predictions across depths single year simplicity: can extract components theoretical deconstruction catch group numbers density, weight per group, encounter probability, positive rate: can come overall predictions two ways: n * w: group numbers \\(\\times\\) weight per group. equivalently exp(est1 + est2), est1 est2 linear predictors link space. p * r: encounter probability \\(\\times\\) positive catch rate. give identical answers: Let’s plot components possible combinations:","code":"nd2010 <- dplyr::filter(nd, year == 2010) p_pdg <- predict(fit_dpg, newdata = nd2010, re_form = NA) n <- exp(p_pdg$est1) w <- exp(p_pdg$est2) p <- 1 - exp(-n) r <- (n * w) / p lims <- c(0, max(p * r)) plot(n * w, p * r, xlim = lims, ylim = lims) abline(0, 1) g1 <- ggplot(p_pdg, aes(log_depth, n)) + geom_line() + ggtitle(\"Expected group density\") g2 <- ggplot(p_pdg, aes(log_depth, w)) + geom_line() + ggtitle(\"Expected weight per group\") g3 <- ggplot(p_pdg, aes(log_depth, p)) + geom_line() + ylim(0, 1) + ggtitle(\"Expected encounter probability\") g4 <- ggplot(p_pdg, aes(log_depth, r)) + geom_line() + ggtitle(\"Expected catch given encounter\") g5 <- ggplot(p_pdg, aes(log_depth, n * w)) + geom_line() + ggtitle(\"Expected catch\") g6 <- ggplot(p_pdg, aes(log_depth, p * r)) + geom_line() + ggtitle(\"Expected catch\") cowplot::plot_grid(g1, g2, g3, g4, g5, g6, ncol = 2)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-is-a-group-and-how-does-the-model-know-about-numbers","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What is a ‘group’ and how does the model know about numbers!?","title":"Poisson-link delta models","text":"model represents process groups fish (observations, course) encountered certain numbers (“group numbers density”) group certain weight (“weight per group”). theoretical construct reflecting model can best parse two components according properties observed data. Since predicted response value \\(n \\cdot w\\), can get value multiplying \\(n\\) dividing \\(w\\) amount. numbers less weight per group fewer numbers weight per group get place. However, balance two, given covariates random effects, best fits data entered likelihood \\(p\\) \\(r\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-is-the-connection-to-the-complementary-log-log-link-cloglog-and-the-poisson","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What is the connection to the complementary log-log link (‘cloglog’) and the Poisson?","title":"Poisson-link delta models","text":"Wikipedia: “cloglog model corresponds applications observe either zero events (e.g., defects) one , number events assumed follow Poisson distribution.” following based around entry. Poisson assumes probability observing zero given expected number \\(n\\) \\(\\exp(-n)\\). .e., \\[ \\mathrm{Pr}(0) = \\exp(-n) \\] \\(p\\) probability observing non-zero (.e., encounter), \\[ \\exp(-n) = 1 - p = \\mathrm{Pr}(0). \\] can re-arrange \\[ n = -\\log(1 - p). \\] since want linear predictor take values negative positive infinity (therefore keep predicted number densities positive exponentiating ), work log space: \\[ \\log (n) = \\log(-\\log(1 - p)). \\] right side known ‘cloglog’ link function. link following inverse link function: \\[ p = 1 - \\exp(-\\exp(\\log n)). \\] can check R: can see cloglog inverse link first part Poisson-link delta model. However, ‘trick’ group density \\(n\\) affects encounter probability \\(p\\) (shown ) positive catch rates \\(r\\): \\[ r = \\frac{n w}{p}. \\] , going linear predictors (log links) expected values going data likelihood (binomial + lognormal/gamma), first linear predictor plays double duty appears delta model expected values.","code":"p <- 0.78 log_n <- log(-log(1 - p)) log_n #> [1] 0.4148395 1 - exp(-exp(log_n)) #> [1] 0.78"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"what-are-the-advantages-of-using-such-a-model","dir":"Articles > Web_only","previous_headings":"FAQ","what":"What are the advantages of using such a model?","title":"Poisson-link delta models","text":"poisson-link families flexibility delta model, practice often helpful better predictions. checked AIC, better yet, cross validation. Like delta models, decomposition process two theoretical parts. can help interpretation (can make things complicated interpret!). , parts can rearranged represent two ways thinking two components (\\(n\\) \\(w\\) \\(p\\) \\(r\\)). Compared traditional delta-gamma model logit log link, two linear predictors log links, coefficients interpretable multiplicative effects, effects can combined. E.g., coefficients can added log space predictions can added log space generate single response curve given predictor.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"where-does-the-offset-come-in","dir":"Articles > Web_only","previous_headings":"FAQ","what":"Where does the offset come in?","title":"Poisson-link delta models","text":"offset added linear predictor \\(\\log n\\), .e., exp(offset) * n. example \\(\\) represents area swept (measure effort) log area swept entered model ‘offset’, , \\[ p = 1 - \\exp(-\\cdot n). \\] Therefore, encounter probability goes 1 area swept (effort) underlying group numbers density increase towards infinity. gets carried positive rate \\(r\\) via \\(p\\) \\(r = nw/p\\).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"why-call-it-a-poisson-link","dir":"Articles > Web_only","previous_headings":"FAQ","what":"Why call it a Poisson-link?","title":"Poisson-link delta models","text":"can guess. cloglog function derived theory Poisson although cloglog function appears ‘Poisson-link’ model, interaction two model components makes different pure cloglog assume needed another name.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/poisson-link.html","id":"these-equations-dont-look-anything-like-the-sdmtmb-source-code","dir":"Articles > Web_only","previous_headings":"FAQ","what":"These equations don’t look anything like the sdmTMB source code!","title":"Poisson-link delta models","text":"’s calculations done log space computational stability calculations fastest stable done slightly differently easily described equations .","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"residual-checking-with-worked-examples","dir":"Articles > Web_only","previous_headings":"","what":"Residual checking with worked examples","title":"Residual checking with sdmTMB","text":"start data simulated scratch. simulate NB2 negative binomial observation model, spatial random field, intercept, one predictor named ‘a1’ linear effect observed data. Next, fit model configurations various families predictors. first model use Poisson instead NB2. 2nd model match simulated data. third model missing ‘a1’ predictor. ’ll use penalized complexity (PC) prior Matérn parameters aid estimation. can see just looking fits Poisson model inflates spatial random field standard deviation (SD) compared truth. model missing ‘a1’ predictor lesser degree.","code":"library(sdmTMB) set.seed(1) predictor_dat <- data.frame(X = runif(1000), Y = runif(1000), a1 = rnorm(1000)) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, mesh = mesh, family = nbinom2(link = \"log\"), phi = 0.4, range = 0.4, sigma_O = 0.4, seed = 1, B = c(0.2, 0.8) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. pc <- pc_matern(range_gt = 0.1, sigma_lt = 1) fit_pois <- sdmTMB(observed ~ 1 + a1, data = dat, family = poisson(), mesh = mesh, priors = sdmTMBpriors(matern_s = pc)) fit_pois #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 + a1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: poisson(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.27 0.17 #> a1 0.82 0.02 #> #> Matérn range: 0.12 #> Spatial SD: 1.20 #> ML criterion at convergence: 2887.957 #> #> See ?tidy.sdmTMB to extract these values as a data frame. fit_nb2 <- update(fit_pois, family = nbinom2()) fit_nb2 #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 + a1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.52 0.14 #> a1 0.75 0.06 #> #> Dispersion parameter: 0.41 #> Matérn range: 0.29 #> Spatial SD: 0.42 #> ML criterion at convergence: 1735.452 #> #> See ?tidy.sdmTMB to extract these values as a data frame. fit_nb2_miss <- update(fit_nb2, formula. = observed ~ 1) fit_nb2_miss #> Spatial model fit by ML ['sdmTMB'] #> Formula: observed ~ 1 #> Mesh: mesh (isotropic covariance) #> Data: dat #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 0.77 0.14 #> #> Dispersion parameter: 0.30 #> Matérn range: 0.21 #> Spatial SD: 0.56 #> ML criterion at convergence: 1817.332 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"analytical-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"Analytical randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"randomized quantile residuals fixed effect MLEs (Maximum Likelihood Estimates) random effects taken single sample approximate distribution (details ): use randomized quantile approach Dunn Smyth (1996). also known PIT (probability-integral-transform) residuals. apply randomization integer response values, transform residuals using distribution function (e.g., pnorm()) reflect uniform(0, 1) distribution, transform values normal(0, 1) consistent model. can see source code https://github.com/pbs-assess/sdmTMB/blob/master/R/residuals.R can see likely issues Poisson model tails.","code":"set.seed(123) rq_res <- residuals(fit_pois, type = \"mle-mvn\") rq_res <- rq_res[is.finite(rq_res)] # some Inf qqnorm(rq_res);abline(0, 1) set.seed(123) rq_res <- residuals(fit_nb2, type = \"mle-mvn\") qqnorm(rq_res);abline(0, 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"mcmc-based-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"MCMC-based randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"approach assumes observation random effects can approximated multivariate normal distribution. want relax assumption, can sample random effects MCMC fixed effects held MLEs. sdmTMBextra::predict_mle_mcmc() function sdmTMBextra.","code":"set.seed(123) samps <- sdmTMBextra::predict_mle_mcmc(fit_nb2, mcmc_iter = 800, mcmc_warmup = 400) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.000973 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.73 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: Iteration: 1 / 800 [ 0%] (Warmup) #> Chain 1: Iteration: 80 / 800 [ 10%] (Warmup) #> Chain 1: Iteration: 160 / 800 [ 20%] (Warmup) #> Chain 1: Iteration: 240 / 800 [ 30%] (Warmup) #> Chain 1: Iteration: 320 / 800 [ 40%] (Warmup) #> Chain 1: Iteration: 400 / 800 [ 50%] (Warmup) #> Chain 1: Iteration: 401 / 800 [ 50%] (Sampling) #> Chain 1: Iteration: 480 / 800 [ 60%] (Sampling) #> Chain 1: Iteration: 560 / 800 [ 70%] (Sampling) #> Chain 1: Iteration: 640 / 800 [ 80%] (Sampling) #> Chain 1: Iteration: 720 / 800 [ 90%] (Sampling) #> Chain 1: Iteration: 800 / 800 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 6.762 seconds (Warm-up) #> Chain 1: 4.824 seconds (Sampling) #> Chain 1: 11.586 seconds (Total) #> Chain 1: mcmc_res <- residuals(fit_nb2, type = \"mle-mcmc\", mcmc_samples = samps) qqnorm(mcmc_res) abline(0, 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"simulation-based-randomized-quantile-residuals","dir":"Articles > Web_only","previous_headings":"Residual checking with worked examples","what":"Simulation-based randomized-quantile residuals","title":"Residual checking with sdmTMB","text":"can also take simulations fitted model use simulation-based randomized quantile residuals: return matrix row represents row data column simulation draw: can look whether fitted models consistent observed number zeros: obviously zeros data simulated Poisson model NB2 model seems reasonable. Plot DHARMa residuals: also return DHARMa object, lets us use DHARMa tools: QQ residual plots clearly see evidence overdispersion compared Poisson. Note values clumping near 1.0 observed axis deviating downwards towards 0.0 observed. indicative many zeros variance scaling rapidly mean (resulting large outlying value) Poisson distribution. Lets try correct model: Everything looks fine. model missing predictor? plot right represents simulated residuals prediction without random effects, just intercept. Lets try plotting residuals missing predictor: can see trend residuals ‘a1’ since missed including model. can also see difference log likelihood AIC: AIC also supports including ‘a1’ predictor. help interpreting DHARMa residual plots, see vignette(\"DHARMa\", package=\"DHARMa\").","code":"s_pois <- simulate(fit_pois, nsim = 500, type = \"mle-mvn\") s_nb2_miss <- simulate(fit_nb2_miss, nsim = 500, type = \"mle-mvn\") s_nb2 <- simulate(fit_nb2, nsim = 500, type = \"mle-mvn\") dim(s_pois) #> [1] 1000 500 sum(dat$observed == 0) / length(dat$observed) #> [1] 0.527 sum(s_pois == 0)/length(s_pois) #> [1] 0.292788 sum(s_nb2 == 0)/length(s_nb2) #> [1] 0.524644 dharma_residuals(s_pois, fit_pois) r_pois <- dharma_residuals(s_pois, fit_pois, return_DHARMa = TRUE) plot(r_pois) DHARMa::testResiduals(r_pois) #> $uniformity #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: simulationOutput$scaledResiduals #> D = 0.23338, p-value < 2.2e-16 #> alternative hypothesis: two-sided #> #> #> $dispersion #> #> DHARMa nonparametric dispersion test via sd of residuals fitted vs. #> simulated #> #> data: simulationOutput #> dispersion = 8.6989, p-value < 2.2e-16 #> alternative hypothesis: two.sided #> #> #> $outliers #> #> DHARMa outlier test based on exact binomial test with approximate #> expectations #> #> data: simulationOutput #> outliers at both margin(s) = 111, observations = 1000, p-value < #> 2.2e-16 #> alternative hypothesis: true probability of success is not equal to 0.003992016 #> 95 percent confidence interval: #> 0.09219791 0.13212606 #> sample estimates: #> frequency of outliers (expected: 0.00399201596806387 ) #> 0.111 #> $uniformity #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: simulationOutput$scaledResiduals #> D = 0.23338, p-value < 2.2e-16 #> alternative hypothesis: two-sided #> #> #> $dispersion #> #> DHARMa nonparametric dispersion test via sd of residuals fitted vs. #> simulated #> #> data: simulationOutput #> dispersion = 8.6989, p-value < 2.2e-16 #> alternative hypothesis: two.sided #> #> #> $outliers #> #> DHARMa outlier test based on exact binomial test with approximate #> expectations #> #> data: simulationOutput #> outliers at both margin(s) = 111, observations = 1000, p-value < #> 2.2e-16 #> alternative hypothesis: true probability of success is not equal to 0.003992016 #> 95 percent confidence interval: #> 0.09219791 0.13212606 #> sample estimates: #> frequency of outliers (expected: 0.00399201596806387 ) #> 0.111 DHARMa::testSpatialAutocorrelation(r_pois, x = dat$X, y = dat$Y) #> #> DHARMa Moran's I test for distance-based autocorrelation #> #> data: r_pois #> observed = -0.0022978, expected = -0.0010010, sd = 0.0026264, p-value = #> 0.6215 #> alternative hypothesis: Distance-based autocorrelation DHARMa::testZeroInflation(r_pois) #> #> DHARMa zero-inflation test via comparison to expected zeros with #> simulation under H0 = fitted model #> #> data: simulationOutput #> ratioObsSim = 1.7999, p-value < 2.2e-16 #> alternative hypothesis: two.sided r_nb2 <- dharma_residuals(s_nb2, fit_nb2, return_DHARMa = TRUE) plot(r_nb2) DHARMa::testZeroInflation(r_nb2) #> #> DHARMa zero-inflation test via comparison to expected zeros with #> simulation under H0 = fitted model #> #> data: simulationOutput #> ratioObsSim = 1.0045, p-value = 0.908 #> alternative hypothesis: two.sided r_nb2_miss <- dharma_residuals(s_nb2_miss, fit_nb2_miss, return_DHARMa = TRUE) plot(r_nb2_miss) DHARMa::plotResiduals(r_nb2_miss, form = dat$a1) AIC(fit_nb2_miss, fit_nb2) #> df AIC #> fit_nb2_miss 4 3642.665 #> fit_nb2 5 3480.904"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"the-need-for-one-sample-residuals","dir":"Articles > Web_only","previous_headings":"","what":"The need for one-sample residuals","title":"Residual checking with sdmTMB","text":"used random effects drawn observed . approach described Waagepetersen (2006) summarized nicely unexported function oneSamplePosterior within TMB. Thygesen et al. (2017) also describes context one-sample MCMC residuals. show necessary. ’ll start simulating data Gaussian observation error spatial spatiotemporal random effects. use empirical Bayes (EB) random effect values (values random effects maximize log likelihood conditional estimated fixed effects), residuals look even though model perfectly matched simulated data: Indeed, test (incorrectly) rejects null hypothesis \\(r_1 \\sim \\operatorname{N}(0, 1)\\), calculated correctly know come \\(\\operatorname{N}(0, 1)\\) instead returned single sample assumed MVN random effect distribution, get ‘correct’ residuals: , (correctly) fail reject hypothesis \\(r_2 \\sim \\operatorname{N}(0, 1)\\). also sample observation random effects using MCMC (fixed effects still held MLEs), relaxes assumptions, much time intensive large models. gets us something similar (correctly) fail reject hypothesis \\(r_3 \\sim \\operatorname{N}(0, 1)\\). similar issue applies simulation-based quantile residuals, implemented DHARMa package. Instead can use draw random effects ‘posterior’ assuming MVN distribution. now looks correct. However, happens sample random effects simulation? get back something incorrect distribution comparison! , need single random effects sample per set simulations.","code":"set.seed(123) predictor_dat <- data.frame( X = runif(1000), Y = runif(1000), year = rep(1:5, each = 200) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) sim_dat <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.3, sigma_E = 0.3, phi = 0.1, sigma_O = 0.4, seed = 1, B = 0.2 # intercept ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit <- sdmTMB(observed ~ 1, data = sim_dat, time = \"year\", mesh = mesh) set.seed(1) r1 <- residuals(fit, type = \"mle-eb\") qqnorm(r1);abline(0, 1) ks.test(r1, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r1 #> D = 0.058629, p-value = 0.002067 #> alternative hypothesis: two-sided set.seed(1) r2 <- residuals(fit, type = \"mle-mvn\") qqnorm(r2);abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.020639, p-value = 0.7879 #> alternative hypothesis: two-sided samp <- sdmTMBextra::predict_mle_mcmc(fit, mcmc_iter = 400, mcmc_warmup = 200) #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: #> Chain 1: Gradient evaluation took 0.002087 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 20.87 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: #> Chain 1: Iteration: 1 / 400 [ 0%] (Warmup) #> Chain 1: Iteration: 40 / 400 [ 10%] (Warmup) #> Chain 1: Iteration: 80 / 400 [ 20%] (Warmup) #> Chain 1: Iteration: 120 / 400 [ 30%] (Warmup) #> Chain 1: Iteration: 160 / 400 [ 40%] (Warmup) #> Chain 1: Iteration: 200 / 400 [ 50%] (Warmup) #> Chain 1: Iteration: 201 / 400 [ 50%] (Sampling) #> Chain 1: Iteration: 240 / 400 [ 60%] (Sampling) #> Chain 1: Iteration: 280 / 400 [ 70%] (Sampling) #> Chain 1: Iteration: 320 / 400 [ 80%] (Sampling) #> Chain 1: Iteration: 360 / 400 [ 90%] (Sampling) #> Chain 1: Iteration: 400 / 400 [100%] (Sampling) #> Chain 1: #> Chain 1: Elapsed Time: 31.436 seconds (Warm-up) #> Chain 1: 30.667 seconds (Sampling) #> Chain 1: 62.103 seconds (Total) #> Chain 1: #> Warning: The largest R-hat is 1.08, indicating chains have not mixed. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#r-hat #> Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#bulk-ess #> Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable. #> Running the chains for more iterations may help. See #> https://mc-stan.org/misc/warnings.html#tail-ess r3 <- residuals(fit, type = \"mle-mcmc\", mcmc_samples = samp) qqnorm(r3);abline(0, 1) ks.test(r3, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r3 #> D = 0.024522, p-value = 0.5845 #> alternative hypothesis: two-sided set.seed(1) simulate(fit, nsim = 500, type = \"mle-eb\") |> dharma_residuals(fit) #> Warning: It is recommended to use `simulate.sdmTMB(fit, type = 'mle-mvn')` if simulating #> for DHARMa residuals. See the description in ?residuals.sdmTMB under the types #> of residuals section. set.seed(1) simulate(fit, nsim = 500, type = \"mle-mvn\") |> dharma_residuals(fit) set.seed(1) s <- replicate(200, simulate(fit, nsim = 1, type = \"mle-mvn\"), simplify = \"matrix\") attr(s, \"type\") <- \"mle-mvn\" dharma_residuals(s, fit)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-much-this-matters-depends-on-the-ratio-of-observation-error-variance-vs--random-effect-variance","dir":"Articles > Web_only","previous_headings":"","what":"How much this matters depends on the ratio of observation error variance vs. random effect variance","title":"Residual checking with sdmTMB","text":"Lets simulate data large observation error (phi , Gaussian error SD case) smaller levels random field variance (sigma_E sigma_O): Now, doesn’t really matter since ‘incorrect’ random effect distribution swamped observation error effect distribution. Technically, first set ‘wrong’ second set ‘right’, functionally ’d come similar conclusion case.","code":"set.seed(123) sim_dat2 <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.3, sigma_E = 0.1, # smaller than before sigma_O = 0.1, # smaller than before phi = 0.5, # bigger than before seed = 1, B = 0.2 ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit2 <- sdmTMB(observed ~ 1, data = sim_dat2, time = \"year\", mesh = mesh) sanity(fit2) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large set.seed(1) r1 <- residuals(fit2, type = \"mle-eb\") qqnorm(r1);abline(0, 1) ks.test(r1, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r1 #> D = 0.021085, p-value = 0.7656 #> alternative hypothesis: two-sided r2 <- residuals(fit2, type = \"mle-mvn\") qqnorm(r2);abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.016869, p-value = 0.9385 #> alternative hypothesis: two-sided"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"notes-on-uniform-vs--normal-quantile-residuals","dir":"Articles > Web_only","previous_headings":"","what":"Notes on uniform vs. normal quantile residuals","title":"Residual checking with sdmTMB","text":"randomized quantile residuals residuals.sdmTMB() returned normal(0, 1) model consistent data. DHARMa residuals, however, returned uniform(0, 1) circumstances. valid, use preference, ’s important appreciate changes appearance expected residuals. Analytical normal(0, 1): Analytical uniform(0, 1): Simulation-based uniform(0, 1): Simulation-based normal(0, 1): Conclusions: normal(0, 1) residuals probably familiar people. normal(0, 1) residuals put emphasis tails. good bad: ’s easier examine tail behaviour, can often look ‘’ even model fine (example) observations tails distribution definition rarely observed. Uniform(0, 1) residuals give data points equal visual weight emphasize consistency overall distribution rather tails. Either valid, need switch mindset expect see accordingly. example, poor tail behaviour may look like minor issue uniform residuals; conversely tails normal(0, 1) residuals unlikely ever look ‘perfect’ without large sample sizes.","code":"r2 <- residuals(fit2, type = \"mle-mvn\") hist(r2) qqnorm(r2) abline(0, 1) ks.test(r2, pnorm) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: r2 #> D = 0.025614, p-value = 0.528 #> alternative hypothesis: two-sided u <- pnorm(r2) hist(u) n <- length(u) m <- seq_len(n) / (n + 1) qqplot(m, u) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.025614, p-value = 0.528 #> alternative hypothesis: two-sided abline(0, 1) set.seed(1) s <- simulate(fit2, nsim = 500, type = \"mle-mvn\") |> dharma_residuals(fit2, return_DHARMa = TRUE) hist(s$scaledResiduals) u <- s$scaledResiduals m <- seq_len(length(u)) / (length(u)+ 1) qqplot(m, u) abline(0, 1) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.026, p-value = 0.5085 #> alternative hypothesis: two-sided set.seed(1) s <- simulate(fit2, nsim = 1500, type = \"mle-mvn\") |> dharma_residuals(fit2, return_DHARMa = TRUE) u <- s$scaledResiduals r <- qnorm(u) qqnorm(r) abline(0, 1) ks.test(u, punif) #> #> Asymptotic one-sample Kolmogorov-Smirnov test #> #> data: u #> D = 0.028, p-value = 0.4131 #> alternative hypothesis: two-sided"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-do-those-randomized-quantile-residuals-work","dir":"Articles > Web_only","previous_headings":"","what":"How do those randomized-quantile residuals work?","title":"Residual checking with sdmTMB","text":"Let’s work simple example gamma distribution: get quantile residuals, transform uniform(0, 1) using pgamma() (optionally) convert normal(0, 1) qnorm(): works distribution can define quantile function. integer values, need add randomization additional step. Let’s work Poisson sample: gamma example illustrated can use distribution function (pgamma()) take gamma-distributed variable turn uniform-distributed variable. Now need Poisson equivalent: ppois(). ppois(y) function gives us cumulative probability density value y. Say Poisson variable mean (lambda) 5 observation value 3. can calculate density value 3 : .e., : , naively apply ppois() observed values ’ll end discrete cumulative probabilities aren’t useful comparing continuous uniform. Instead, need get probability density value one observed “fill ” values observed value desired uniformly distributed samples. First, get density value observed value: can add randomization using runif() since expectation uniform distribution stage fill values : optionally apply qnorm():","code":"set.seed(1) mu <- rep(2, 500) phi <- 0.5 y <- rgamma(length(mu), shape = phi, scale = mu / phi) u <- pgamma(q = y, shape = phi, scale = mu / phi) hist(u) r <- qnorm(u) hist(r) set.seed(1) mu <- rep(2, 500) y <- rpois(length(mu), mu) lambda <- 5 ppois(3, lambda) #> [1] 0.2650259 dpois(0, lambda) + dpois(1, lambda) + dpois(2, lambda) + dpois(3, lambda) #> [1] 0.2650259 hist(ppois(y, mu)) a <- ppois(y - 1, mu) hist(a) b <- ppois(y, mu) hist(b) u <- runif(n = length(y), min = a, max = b) hist(u) r <- qnorm(u) hist(r)"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"how-do-those-simulation-based-residuals-work","dir":"Articles > Web_only","previous_headings":"","what":"How do those simulation-based residuals work?","title":"Residual checking with sdmTMB","text":"DHARMa uses simulation-based quantile residuals. result, don’t need define quantile function analytically. , instead line like : simulate model repeatedly, see observation falls within simulated values, get quantile way. example, instead : :","code":"u <- pgamma(q = y, shape = phi, scale = mu / phi) pnorm(2.2, mean = 0.5, sd = 1) #> [1] 0.9554345 set.seed(1) s <- rnorm(1e6, 0.5, 1) # equivalent of simulate()ing from our model mean(s < 2.2) # equivalent of pnorm() #> [1] 0.955308"},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html","id":"references","dir":"Articles > Web_only","previous_headings":"","what":"References","title":"Residual checking with sdmTMB","text":"Dunn, P.K., Smyth, G.K. 1996. Randomized Quantile Residuals. Journal Computational Graphical Statistics 5(3): 236–244. Waagepetersen, R. 2006. Simulation-Based Goodness--Fit Test Random Effects Generalized Linear Mixed Models. Scandinavian Journal Statistics 33(4): 721–731. Thygesen, U.H., Albertsen, C.M., Berg, C.W., Kristensen, K., Nielsen, . 2017. Validation ecological state space models using Laplace approximation. Environ Ecol Stat 24(2): 317–339.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/articles/web_only/visreg.html","id":"delta-models","dir":"Articles > Web_only","previous_headings":"","what":"Delta models","title":"Visualizing sdmTMB conditional effects using visreg","text":"visreg() can also used plot output delta models sdmTMB() using similar code previous plots, using sdmTMB wrapper function visreg_delta() specifying model = 1 encounter (0 vs. non-zero) model model = 2 positive component model (e.g., Gamma, lognormal). example: Note plotting visreg_delta(), categorical variables like year need designated factor data frame, example fyear, rather model formula (e.g., + .factor(year)).","code":"fit_dg <- sdmTMB( density ~ s(depth_scaled, year, k = 8), data = pcod_2011, mesh = pcod_mesh_2011, spatial = \"off\", # for vignette speed family = delta_gamma() ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, gg = TRUE) #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, gg = TRUE) #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component."},{"path":"https://pbs-assess.github.io/sdmTMB/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Sean C. Anderson. Author, maintainer. Eric J. Ward. Author. Philina . English. Author. Lewis . K. Barnett. Author. James T. Thorson. Author, copyright holder. VAST author Joe Watson. Contributor. Censored Poisson Julia Indivero. Contributor. Vignette writing Jillian C. Dunic. Contributor. Cole C. Monnahan. Contributor, copyright holder. VAST contributor Mollie Brooks. Contributor, copyright holder. glmmTMB author Ben Bolker. Contributor, copyright holder. glmmTMB author Kasper Kristensen. Contributor, copyright holder. TMB/glmmTMB author Martin Maechler. Contributor, copyright holder. glmmTMB author Arni Magnusson. Contributor, copyright holder. glmmTMB author Hans J. Skaug. Contributor, copyright holder. glmmTMB author, SPDE barrier Anders Nielsen. Contributor, copyright holder. glmmTMB author Casper Berg. Contributor, copyright holder. glmmTMB author Koen van Bentham. Contributor, copyright holder. glmmTMB author Olav Nikolai Breivik. Contributor, copyright holder. SPDE barrier Simon Wood. Contributor, copyright holder. mgcv: smoother prediction Paul-Christian Bürkner. Contributor, copyright holder. brms: smoother matrix parsing Majesty King Right Canada, represented Minister Department Fisheries Oceans. Copyright holder.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Anderson SC, Ward EJ, English PA, Barnett LAK, Thorson JT (2024). “sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields.” bioRxiv, 2022.03.24.485545. doi:10.1101/2022.03.24.485545.","code":"@Article{, title = {sdmTMB: an R package for fast, flexible, and user-friendly generalized linear mixed effects models with spatial and spatiotemporal random fields}, author = {Sean C. Anderson and Eric J. Ward and Philina A. English and Lewis A. K. Barnett and James T. Thorson}, year = {2024}, journal = {bioRxiv}, volume = {2022.03.24.485545}, doi = {10.1101/2022.03.24.485545}, }"},{"path":"https://pbs-assess.github.io/sdmTMB/header.html","id":null,"dir":"","previous_headings":"","what":"sdmTMB ","title":"sdmTMB ","text":"Spatial spatiotemporal GLMMs TMB sdmTMB R package fits spatial spatiotemporal GLMMs (Generalized Linear Mixed Effects Models) using Template Model Builder (TMB), R-INLA, Gaussian Markov random fields. One common application species distribution models (SDMs). See documentation site preprint: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett, J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"sdmtmb-","dir":"","previous_headings":"","what":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Spatial spatiotemporal GLMMs TMB sdmTMB R package fits spatial spatiotemporal GLMMs (Generalized Linear Mixed Effects Models) using Template Model Builder (TMB), R-INLA, Gaussian Markov random fields. One common application species distribution models (SDMs). See documentation site preprint: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett, J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Installation Overview Getting help Citation Related software Basic use Time-varying coefficients Spatially varying coefficients (SVC) Random intercepts Breakpoint threshold effects Simulating data Sampling joint precision matrix Calculating uncertainty spatial predictions Cross validation Priors Bayesian MCMC sampling Stan Turning random fields Using custom fmesher mesh Barrier meshes","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB can installed CRAN: Assuming C++ compiler installed, development version can installed: extra utilities sdmTMBextra package. Importantly, recommended use optimized BLAS library, result major speed improvements TMB () models R (e.g., often 8-fold speed increases sdmTMB models). Suggested installation instructions Mac users, Linux users, Windows users. check ’ve successfully linked optimized BLAS, start new session run: result take fraction second (e.g., 0.03 s), multiple seconds.","code":"install.packages(\"sdmTMB\", dependencies = TRUE) # install.packages(\"remotes\") remotes::install_github(\"pbs-assess/sdmTMB\", dependencies = TRUE) m <- 1e4; n <- 1e3; k <- 3e2 X <- matrix(rnorm(m*k), nrow=m); Y <- matrix(rnorm(n*k), ncol=n) system.time(X %*% Y)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"overview","dir":"","previous_headings":"","what":"Overview","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Analyzing geostatistical data (coordinate-referenced observations underlying spatial process) becoming increasingly common ecology. sdmTMB implements geostatistical spatial spatiotemporal GLMMs using TMB model fitting R-INLA set SPDE (stochastic partial differential equation) matrices. One common application species distribution models (SDMs), hence package name. goal sdmTMB provide fast, flexible, user-friendly interface—similar popular R package glmmTMB—focus spatial spatiotemporal models SPDE approach. extend generalized linear mixed models (GLMMs) familiar ecologists include following optional features: spatial random fields spatiotemporal random fields may independent year modelled random walks autoregressive processes smooth terms covariates, using familiar s() notation mgcv breakpoint (hockey-stick) logistic covariates time-varying covariates (coefficients modelled random walks) spatially varying coefficient models (SVCs) interpolation forecasting missing future time slices wide range families: standard R families plus tweedie(), nbinom1(), nbinom2(), lognormal(), student(), plus truncated censored families delta/hurdle models including delta_gamma(), delta_lognormal(), delta_truncated_nbinom2() Estimation performed sdmTMB via maximum marginal likelihood objective function calculated TMB minimized R via stats::nlminb() random effects integrated via Laplace approximation. sdmTMB package also allows models passed Stan via tmbstan, allowing Bayesian model estimation. See ?sdmTMB ?predict.sdmTMB complete examples. Also see vignettes (‘Articles’) documentation site preprint appendices linked .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"questions use sdmTMB interpret models, please post discussion board. email question, likely respond discussion board anonymized version question (without data) think helpful others. Please let us know don’t want us . bugs feature requests, please post issue tracker. Slides recordings workshop sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"cite sdmTMB publications use: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett., J.T. Thorson. 2024. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi: https://doi.org/10.1101/2022.03.24.485545 list (known) publications use sdmTMB can found . Please use citation can track publications.","code":"citation(\"sdmTMB\")"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"related-software","dir":"","previous_headings":"","what":"Related software","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB heavily inspired VAST R package: Thorson, J.T. 2019. Guidance decisions using Vector Autoregressive Spatio-Temporal (VAST) package stock, ecosystem, habitat climate assessments. Fisheries Research 210: 143–161. https://doi.org/10.1016/j.fishres.2018.10.013. glmmTMB R package: Brooks, M.E., Kristensen, K., van Benthem, K.J., Magnusson, ., Berg, C.W., Nielsen, ., Skaug, H.J., Maechler, M., Bolker, B.M. 2017. glmmTMB balances speed flexibility among packages zero-inflated generalized linear mixed modeling. R Journal 9(2): 378–400. https://doi.org/10.32614/rj-2017-066. INLA inlabru can fit many models sdmTMB (many ) approximate Bayesian inference framework. mgcv can fit similar SPDE-based Gaussian random field models code included Miller et al. (2019). table sdmTMB preprint describes functionality timing comparisons sdmTMB, VAST, INLA/inlabru, mgcv discussion makes suggestions might choose one package another.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"basic-use","dir":"","previous_headings":"","what":"Basic use","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB model requires data frame contains response column, columns predictors, columns spatial coordinates. usually makes sense convert spatial coordinates equidistant projection UTMs distance remains constant throughout study region [e.g., using sf::st_transform()]. , illustrate spatial model fit Pacific cod (Gadus macrocephalus) trawl survey data Queen Charlotte Sound, BC, Canada. model contains main effect depth penalized smoother, spatial random field, Tweedie observation error. data frame pcod (built package) column year year survey, density density Pacific cod given survey tow, present whether density > 0, depth depth meters tow, spatial coordinates X Y, UTM coordinates kilometres. start creating mesh object contains matrices apply SPDE approach. , cutoff defines minimum allowed distance points units X Y (km). Alternatively, created mesh via fmesher INLA packages supplied make_mesh(). can inspect mesh object associated plotting method plot(mesh). Fit spatial model smoother depth: Print model fit: output indicates model fit maximum (marginal) likelihood (ML). also see formula, mesh, fitted data, family. Next see estimated main effects including linear component smoother (sdepth), standard deviation smoother weights (sds(depth)), Tweedie dispersion power parameters, Matérn range distance (distance points effectively independent), marginal spatial field standard deviation, negative log likelihood convergence. can extract parameters data frame: Run basic sanity checks model: Use ggeffects package plot smoother effect: depth effect parametric penalized smoother, alternatively used ggeffects::ggeffect() fast marginal effect plot. Predict new data: switch presence-absence model changing response column family: hurdle/delta model changing family: instead fit spatiotemporal model specifying time column spatiotemporal structure: wanted create area-weighted standardized population index, predict grid covering entire survey (qcs_grid) grid cell area 4 (2 x 2 km) pass predictions get_index(): center gravity: basic features, see vignettes Intro modelling sdmTMB Index standardization sdmTMB.","code":"library(dplyr) library(ggplot2) library(sdmTMB) head(pcod) #> # A tibble: 3 × 6 #> year density present depth X Y #> #> 1 2003 113. 1 201 446. 5793. #> 2 2003 41.7 1 212 446. 5800. #> 3 2003 0 0 220 449. 5802. mesh <- make_mesh(pcod, xy_cols = c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( density ~ s(depth), data = pcod, mesh = mesh, family = tweedie(link = \"log\"), spatial = \"on\" ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.37 0.21 #> sdepth 0.62 2.53 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.93 #> #> Dispersion parameter: 12.69 #> Tweedie p: 1.58 #> Matérn range: 16.39 #> Spatial SD: 1.86 #> ML criterion at convergence: 6402.136 #> #> See ?tidy.sdmTMB to extract these values as a data frame. tidy(fit, conf.int = TRUE) #> # A tibble: 1 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 2.37 0.215 1.95 2.79 tidy(fit, effects = \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 16.4 4.47 9.60 28.0 #> 2 phi 12.7 0.406 11.9 13.5 #> 3 sigma_O 1.86 0.218 1.48 2.34 #> 4 tweedie_p 1.58 0.00998 1.56 1.60 sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large ggeffects::ggpredict(fit, \"depth [50:400, by=2]\") |> plot() p <- predict(fit, newdata = qcs_grid) head(p) #> # A tibble: 3 × 7 #> X Y depth est est_non_rf est_rf omega_s #> #> 1 456 5636 347. -3.06 -3.08 0.0172 0.0172 #> 2 458 5636 223. 2.03 1.99 0.0460 0.0460 #> 3 460 5636 204. 2.89 2.82 0.0747 0.0747 ggplot(p, aes(X, Y, fill = exp(est))) + geom_raster() + scale_fill_viridis_c(trans = \"sqrt\") fit <- sdmTMB( present ~ s(depth), data = pcod, mesh = mesh, family = binomial(link = \"logit\") ) fit <- sdmTMB( density ~ s(depth), data = pcod, mesh = mesh, family = delta_gamma(link1 = \"logit\", link2 = \"log\"), ) fit_spatiotemporal <- sdmTMB( density ~ s(depth, k = 5), data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatial = \"off\", spatiotemporal = \"ar1\" ) grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) p_st <- predict(fit_spatiotemporal, newdata = grid_yrs, return_tmb_object = TRUE) index <- get_index(p_st, area = rep(4, nrow(grid_yrs))) ggplot(index, aes(year, est)) + geom_ribbon(aes(ymin = lwr, ymax = upr), fill = \"grey90\") + geom_line(lwd = 1, colour = \"grey30\") + labs(x = \"Year\", y = \"Biomass (kg)\") cog <- get_cog(p_st, format = \"wide\") ggplot(cog, aes(est_x, est_y, colour = year)) + geom_pointrange(aes(xmin = lwr_x, xmax = upr_x)) + geom_pointrange(aes(ymin = lwr_y, ymax = upr_y)) + scale_colour_viridis_c()"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"time-varying-coefficients","dir":"","previous_headings":"Advanced functionality","what":"Time-varying coefficients","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Time-varying intercept: Time-varying (random walk) effect depth: See vignette Intro modelling sdmTMB details.","code":"fit <- sdmTMB( density ~ 0 + s(depth, k = 5), time_varying = ~ 1, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), silent = FALSE # see progress ) fit <- sdmTMB( density ~ 1, time_varying = ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatial = \"off\", spatiotemporal = \"ar1\", silent = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"spatially-varying-coefficients-svc","dir":"","previous_headings":"Advanced functionality","what":"Spatially varying coefficients (SVC)","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Spatially varying effect time: See zeta_s output, represents coefficient varying space. ’ll want ensure set model ballpark mean 0 (e.g., including formula ). See vignette Fitting spatial trend models sdmTMB details.","code":"pcod$year_scaled <- as.numeric(scale(pcod$year)) fit <- sdmTMB( density ~ s(depth, k = 5) + year_scaled, spatial_varying = ~ year_scaled, data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\"), spatiotemporal = \"off\" ) grid_yrs <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) grid_yrs$year_scaled <- (grid_yrs$year - mean(pcod$year)) / sd(pcod$year) p <- predict(fit, newdata = grid_yrs) %>% subset(year == 2011) # any year ggplot(p, aes(X, Y, fill = zeta_s_year_scaled)) + geom_raster() + scale_fill_gradient2()"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"random-intercepts","dir":"","previous_headings":"Advanced functionality","what":"Random intercepts","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can use syntax (1 | group) lme4 glmmTMB fit random intercepts:","code":"pcod$year_factor <- as.factor(pcod$year) fit <- sdmTMB( density ~ s(depth, k = 5) + (1 | year_factor), data = pcod, mesh = mesh, time = \"year\", family = tweedie(link = \"log\") )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"breakpoint-and-threshold-effects","dir":"","previous_headings":"Advanced functionality","what":"Breakpoint and threshold effects","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"See vignette Threshold modeling sdmTMB details.","code":"fit <- sdmTMB( present ~ 1 + breakpt(depth_scaled), data = pcod, mesh = mesh, family = binomial(link = \"logit\") ) fit <- sdmTMB( present ~ 1 + logistic(depth_scaled), data = pcod, mesh = mesh, family = binomial(link = \"logit\") )"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"simulating-data-from-scratch","dir":"","previous_headings":"Advanced functionality > Simulating data","what":"Simulating data from scratch","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Fit simulated data: See ?sdmTMB_simulate details.","code":"predictor_dat <- expand.grid( X = seq(0, 1, length.out = 100), Y = seq(0, 1, length.out = 100) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.05) sim_dat <- sdmTMB_simulate( formula = ~ 1, data = predictor_dat, mesh = mesh, family = poisson(link = \"log\"), range = 0.3, sigma_O = 0.4, seed = 1, B = 1 # B0 = intercept ) head(sim_dat) #> # A tibble: 6 × 7 #> X Y omega_s mu eta observed `(Intercept)` #> #> 1 0 0 -0.154 2.33 0.846 1 1 #> 2 0.0101 0 -0.197 2.23 0.803 0 1 #> 3 0.0202 0 -0.240 2.14 0.760 2 1 #> 4 0.0303 0 -0.282 2.05 0.718 2 1 #> 5 0.0404 0 -0.325 1.96 0.675 3 1 #> 6 0.0505 0 -0.367 1.88 0.633 2 1 # sample 200 points for fitting: set.seed(1) sim_dat_obs <- sim_dat[sample(seq_len(nrow(sim_dat)), 200), ] ggplot(sim_dat, aes(X, Y)) + geom_raster(aes(fill = exp(eta))) + # mean without observation error geom_point(aes(size = observed), data = sim_dat_obs, pch = 21) + scale_fill_viridis_c() + scale_size_area() + coord_cartesian(expand = FALSE) mesh <- make_mesh(sim_dat_obs, xy_cols = c(\"X\", \"Y\"), cutoff = 0.05) fit <- sdmTMB( observed ~ 1, data = sim_dat_obs, mesh = mesh, family = poisson() )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"simulating-from-an-existing-fit","dir":"","previous_headings":"Advanced functionality > Simulating data","what":"Simulating from an existing fit","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"See vignette Residual checking sdmTMB, ?simulate.sdmTMB, ?dharma_residuals details.","code":"s <- simulate(fit, nsim = 500) dim(s) #> [1] 969 500 s[1:3,1:4] #> [,1] [,2] [,3] [,4] #> [1,] 0 59.40310 83.20888 0.00000 #> [2,] 0 34.56408 0.00000 19.99839 #> [3,] 0 0.00000 0.00000 0.00000"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"sampling-from-the-joint-precision-matrix","dir":"","previous_headings":"Advanced functionality","what":"Sampling from the joint precision matrix","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can take samples implied parameter distribution assuming MVN covariance matrix internal parameterization: See ?gather_sims ?get_index_sims details.","code":"samps <- gather_sims(fit, nsim = 1000) ggplot(samps, aes(.value)) + geom_histogram() + facet_wrap(~.variable, scales = \"free_x\") #> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`."},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"calculating-uncertainty-on-spatial-predictions","dir":"","previous_headings":"Advanced functionality","what":"Calculating uncertainty on spatial predictions","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"fastest way get point-wise prediction uncertainty use MVN samples:","code":"p <- predict(fit, newdata = predictor_dat, nsim = 500) predictor_dat$se <- apply(p, 1, sd) ggplot(predictor_dat, aes(X, Y, fill = se)) + geom_raster() + scale_fill_viridis_c(option = \"A\") + coord_cartesian(expand = FALSE)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"cross-validation","dir":"","previous_headings":"Advanced functionality","what":"Cross validation","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"sdmTMB built-functionality cross-validation. set future::plan(), folds fit parallel: See ?sdmTMB_cv details.","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 10) ## Set parallel processing if desired: # library(future) # plan(multisession) m_cv <- sdmTMB_cv( density ~ s(depth, k = 5), data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Sum of log likelihoods of left-out data: m_cv$sum_loglik #> [1] -6756.28"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"priors","dir":"","previous_headings":"Advanced functionality","what":"Priors","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Priors/penalties can placed parameters. example, place PC (penalized complexity) prior Matérn random field parameters, standard normal prior effect depth, Normal(0, 10^2) prior intercept, half-normal prior Tweedie dispersion parameter (phi): can visualize PC Matérn prior: See ?sdmTMBpriors details.","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( density ~ depth_scaled, data = pcod, mesh = mesh, family = tweedie(), priors = sdmTMBpriors( matern_s = pc_matern(range_gt = 10, sigma_lt = 5), b = normal(c(0, 0), c(1, 10)), phi = halfnormal(0, 15) ) ) plot_pc_matern(range_gt = 10, sigma_lt = 5)"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"bayesian-mcmc-sampling-with-stan","dir":"","previous_headings":"Advanced functionality","what":"Bayesian MCMC sampling with Stan","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"fitted model can passed tmbstan package sample posterior Stan. See Bayesian vignette.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"turning-off-random-fields","dir":"","previous_headings":"Advanced functionality","what":"Turning off random fields","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"can turn random fields model comparison:","code":"fit_sdmTMB <- sdmTMB( present ~ poly(depth_scaled, 2), data = pcod, mesh = mesh, spatial = \"off\", family = binomial() ) fit_glm <- glm( present ~ poly(depth_scaled, 2), data = pcod, family = binomial() ) tidy(fit_sdmTMB) #> # A tibble: 3 × 3 #> term estimate std.error #> #> 1 (Intercept) -0.426 0.0573 #> 2 poly(depth_scaled, 2)1 -31.7 3.03 #> 3 poly(depth_scaled, 2)2 -66.9 4.09 broom::tidy(fit_glm) #> # A tibble: 3 × 5 #> term estimate std.error statistic p.value #> #> 1 (Intercept) -0.426 0.0573 -7.44 1.03e-13 #> 2 poly(depth_scaled, 2)1 -31.7 3.03 -10.5 1.20e-25 #> 3 poly(depth_scaled, 2)2 -66.9 4.09 -16.4 3.50e-60"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"using-a-custom-fmesher-mesh","dir":"","previous_headings":"Advanced functionality","what":"Using a custom fmesher mesh","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"Defining mesh directly INLA:","code":"bnd <- INLA::inla.nonconvex.hull(cbind(pcod$X, pcod$Y), convex = -0.1) mesh_inla <- INLA::inla.mesh.2d( boundary = bnd, max.edge = c(25, 50) ) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), mesh = mesh_inla) plot(mesh) fit <- sdmTMB( density ~ s(depth, k = 5), data = pcod, mesh = mesh, family = tweedie(link = \"log\") )"},{"path":"https://pbs-assess.github.io/sdmTMB/index.html","id":"barrier-meshes","dir":"","previous_headings":"Advanced functionality","what":"Barrier meshes","title":"Spatial and Spatiotemporal SPDE-Based GLMMs with TMB","text":"barrier mesh limits correlation across barriers (e.g., land water). See add_barrier_mesh() sdmTMBextra.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate effects — Effect.sdmTMB","title":"Calculate effects — Effect.sdmTMB","text":"Used effects package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate effects — Effect.sdmTMB","text":"","code":"Effect.sdmTMB(focal.predictors, mod, ...)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate effects — Effect.sdmTMB","text":"focal.predictors character vector one predictors model order. mod regression model object. specific method exists class mod, Effect.default called. ... arguments passed .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate effects — Effect.sdmTMB","text":"Output effects::effect(). Can plotted associated plot() method.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/Effect.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate effects — Effect.sdmTMB","text":"","code":"fit <- sdmTMB(present ~ depth_scaled, data = pcod_2011, family = binomial(), spatial = \"off\") effects::effect(\"depth_scaled\", fit) #> #> depth_scaled effect #> depth_scaled #> -3 -2 -0.1 1 3 #> 0.7511661 0.6634557 0.4673280 0.3544365 0.1897228 plot(effects::effect(\"depth_scaled\", fit))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"Moved sdmTMBextra package. Make sure load sdmTMBextra sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"","code":"add_barrier_mesh( spde_obj = deprecated(), barrier_sf = deprecated(), range_fraction = 0.2, proj_scaling = 1, plot = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"spde_obj Output make_mesh(). barrier_sf sf object polygons defining barriers. example, coastline dataset ocean data. Note object must projection data used generate x y columns spde_obj. range_fraction fraction spatial range barrier triangles . proj_scaling spde_obj created scaling coordinates projection (e.g., dividing UTMs 1000 spatial range reasonable scale) x y values spde_obj multiplied scaling factor applying projection barrier_sf. plot Logical.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"Deprecated. See sdmTMBextra package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_barrier_mesh.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform a mesh object into a mesh with correlation barriers — add_barrier_mesh","text":"","code":"if (FALSE) { add_barrier_mesh() }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":null,"dir":"Reference","previous_headings":"","what":"Add UTM coordinates to a data frame — add_utm_columns","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"Add UTM (Universal Transverse Mercator) coordinates data frame. useful since geostatistical modeling generally performed equal-distance projection. can separately sf::st_as_sf(), sf::st_transform(), sf::st_coordinates() functions sf package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"","code":"add_utm_columns( dat, ll_names = c(\"longitude\", \"latitude\"), ll_crs = 4326, utm_names = c(\"X\", \"Y\"), utm_crs = get_crs(dat, ll_names), units = c(\"km\", \"m\") ) get_crs(dat, ll_names = c(\"longitude\", \"latitude\"))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"dat Data frame contains longitude latitude columns. ll_names Longitude latitude column names. Note order. ll_crs Input CRS value ll_names. utm_names Output column names UTM columns. utm_crs Output CRS value UTM zone; tries detect get_crs() can specified manually. units UTM units.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"copy input data frame new columns UTM coordinates.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"Note longitudes west prime meridian encoded running -180 0 degrees. may wish work km's rather standard UTM meters range parameter estimate small, can cause computational issues. depends scale data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/add_utm_columns.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add UTM coordinates to a data frame — add_utm_columns","text":"","code":"d <- data.frame(lat = c(52.1, 53.4), lon = c(-130.0, -131.4)) get_crs(d, c(\"lon\", \"lat\")) #> Detected UTM zone 9N; CRS = 32609. #> Visit https://epsg.io/32609 to verify. #> [1] 32609 add_utm_columns(d, c(\"lon\", \"lat\")) #> Detected UTM zone 9N; CRS = 32609. #> Visit https://epsg.io/32609 to verify. #> lat lon X Y #> 1 52.1 -130.0 431.5034 5772.632 #> 2 53.4 -131.4 340.4411 5919.452"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":null,"dir":"Reference","previous_headings":"","what":"DHARMa residuals — dharma_residuals","title":"DHARMa residuals — dharma_residuals","text":"Plot (possibly return) DHARMa residuals. wrapper function around DHARMa::createDHARMa() facilitate use sdmTMB() models. Note: recommended set type = \"mle-mvn\" simulate.sdmTMB() resulting residuals expected distribution. default.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"DHARMa residuals — dharma_residuals","text":"","code":"dharma_residuals( simulated_response, object, plot = TRUE, return_DHARMa = FALSE, expected_distribution = c(\"uniform\", \"normal\"), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"DHARMa residuals — dharma_residuals","text":"simulated_response Output simulate.sdmTMB(). recommended set type = \"mle-mvn\" call simulate.sdmTMB() residuals expected distribution. object Output sdmTMB(). plot Logical. return_DHARMa Logical. expected_distribution Experimental: expected distribution comparison: uniform(0, 1) normal(0, 1). Traditional DHARMa residuals uniform. \"normal\", pnorm() transformation applied. First, simulated quantiles 0 (simulations smaller observation) set arbitrary value 1/(n*10) n number simulated replicated. simulated quantiles 1 (simulations larger observation) set arbitrary value 1 - 1/(n*10). points shown crosses overlaid. ... arguments pass DHARMa::createDHARMa().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"DHARMa residuals — dharma_residuals","text":"data frame observed expected values invisibly returned, can set plot = FALSE assign output object wish plot residuals . See examples. return_DHARMa = TRUE, object DHARMa::createDHARMa() returned subsequent DHARMa functions can applied.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"DHARMa residuals — dharma_residuals","text":"Advantages residuals ones residuals.sdmTMB() method (1) work delta/hurdle models combined predictions, just two parts separately, (2) work families, just families worked analytical quantile function, (3) can used various diagnostic tools plots DHARMa package. Disadvantages (1) slower calculate since one must first simulate model, (2) stability distribution residuals depends sufficient number simulation draws, (3) uniformly distributed residuals put less emphasis tails visually (may desired). Note DHARMa returns residuals uniform(0, 1) data consistent model whereas randomized quantile residuals residuals.sdmTMB() expected normal(0, 1). experimental option expected_distribution included transform distributions normal(0, 1) expectation.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/dharma_residuals.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"DHARMa residuals — dharma_residuals","text":"","code":"# Try Tweedie family: fit <- sdmTMB(density ~ as.factor(year) + s(depth, k = 3), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), spatial = \"on\") # The `simulated_response` argument is first so the output from # simulate() can be piped to dharma_residuals(). # We will work with 100 simulations for fast examples, but you'll # likely want to work with more than this (enough that the results # are stable from run to run). # not great: set.seed(123) simulate(fit, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit) # \\donttest{ # delta-lognormal looks better: set.seed(123) fit_dl <- update(fit, family = delta_lognormal()) simulate(fit_dl, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit) # or skip the pipe: set.seed(123) s <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") # and manually plot it: r <- dharma_residuals(s, fit_dl, plot = FALSE) head(r) #> observed expected #> 1 0.0002512885 0.001030928 #> 2 0.0003998549 0.002061856 #> 3 0.0017916820 0.003092784 #> 4 0.0030243763 0.004123711 #> 5 0.0032777465 0.005154639 #> 6 0.0060709249 0.006185567 plot(r$expected, r$observed) abline(0, 1) # return the DHARMa object and work with the DHARMa methods ret <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") |> dharma_residuals(fit, return_DHARMa = TRUE) plot(ret) # try normal(0, 1) residuals: s <- simulate(fit_dl, nsim = 100, type = \"mle-mvn\") dharma_residuals(s, fit, expected_distribution = \"normal\") # note the points in the top right corner that had Inf quantiles # because of pnorm(1) # work with the residuals themselves: r <- dharma_residuals(s, fit, return_DHARMa = TRUE) plot(fitted(fit), r$scaledResiduals) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"Methods using emmeans package sdmTMB. emmeans package computes estimated marginal means fixed effects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"https://aosmith.rbind.io/2019/03/25/getting-started--emmeans/","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/emmeans.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Estimated marginal means with the emmeans package with sdmTMB — emmeans.sdmTMB","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 20) fit <- sdmTMB( present ~ as.factor(year), data = pcod_2011, mesh = mesh, family = binomial() ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: present ~ as.factor(year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.61 0.55 #> as.factor(year)2013 0.99 0.22 #> as.factor(year)2015 0.75 0.22 #> as.factor(year)2017 0.01 0.22 #> #> Matérn range: 48.45 #> Spatial SD: 1.84 #> ML criterion at convergence: 564.495 #> #> See ?tidy.sdmTMB to extract these values as a data frame. emmeans::emmeans(fit, ~ year) #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 emmeans::emmeans(fit, pairwise ~ year) #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -4.467 0.0001 #> year2011 - year2015 -0.7496 0.220 963 -3.404 0.0039 #> year2011 - year2017 -0.0127 0.221 963 -0.057 0.9999 #> year2013 - year2015 0.2405 0.217 963 1.110 0.6837 #> year2013 - year2017 0.9774 0.223 963 4.390 0.0001 #> year2015 - year2017 0.7369 0.222 963 3.320 0.0052 #> #> Results are given on the log odds ratio (not the response) scale. #> P value adjustment: tukey method for comparing a family of 4 estimates #> emmeans::emmeans(fit, pairwise ~ year, type = \"response\") #> $emmeans #> year prob SE df lower.CL upper.CL #> 2011 0.353 0.126 963 0.156 0.617 #> 2013 0.595 0.133 963 0.333 0.812 #> 2015 0.536 0.137 963 0.281 0.773 #> 2017 0.356 0.126 963 0.158 0.619 #> #> Confidence level used: 0.95 #> Intervals are back-transformed from the logit scale #> #> $contrasts #> contrast odds.ratio SE df null t.ratio p.value #> year2011 / year2013 0.372 0.0823 963 1 -4.467 0.0001 #> year2011 / year2015 0.473 0.1041 963 1 -3.404 0.0039 #> year2011 / year2017 0.987 0.2182 963 1 -0.057 0.9999 #> year2013 / year2015 1.272 0.2757 963 1 1.110 0.6837 #> year2013 / year2017 2.658 0.5917 963 1 4.390 0.0001 #> year2015 / year2017 2.089 0.4638 963 1 3.320 0.0052 #> #> P value adjustment: tukey method for comparing a family of 4 estimates #> Tests are performed on the log odds ratio scale #> emmeans::emmeans(fit, pairwise ~ year, adjust = \"none\") #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -4.467 <.0001 #> year2011 - year2015 -0.7496 0.220 963 -3.404 0.0007 #> year2011 - year2017 -0.0127 0.221 963 -0.057 0.9543 #> year2013 - year2015 0.2405 0.217 963 1.110 0.2675 #> year2013 - year2017 0.9774 0.223 963 4.390 <.0001 #> year2015 - year2017 0.7369 0.222 963 3.320 0.0009 #> #> Results are given on the log odds ratio (not the response) scale. #> e <- emmeans::emmeans(fit, ~ year) plot(e) e <- emmeans::emmeans(fit, pairwise ~ year) confint(e) #> $emmeans #> year emmean SE df lower.CL upper.CL #> 2011 -0.606 0.551 963 -1.688 0.475 #> 2013 0.384 0.550 963 -0.695 1.463 #> 2015 0.143 0.551 963 -0.937 1.224 #> 2017 -0.594 0.551 963 -1.674 0.487 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df lower.CL upper.CL #> year2011 - year2013 -0.9901 0.222 963 -1.560 -0.420 #> year2011 - year2015 -0.7496 0.220 963 -1.316 -0.183 #> year2011 - year2017 -0.0127 0.221 963 -0.581 0.556 #> year2013 - year2015 0.2405 0.217 963 -0.317 0.798 #> year2013 - year2017 0.9774 0.223 963 0.404 1.550 #> year2015 - year2017 0.7369 0.222 963 0.166 1.308 #> #> Results are given on the log odds ratio (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: tukey method for comparing a family of 4 estimates #> summary(e, infer = TRUE) #> $emmeans #> year emmean SE df lower.CL upper.CL t.ratio p.value #> 2011 -0.606 0.551 963 -1.688 0.475 -1.100 0.2715 #> 2013 0.384 0.550 963 -0.695 1.463 0.698 0.4854 #> 2015 0.143 0.551 963 -0.937 1.224 0.260 0.7948 #> 2017 -0.594 0.551 963 -1.674 0.487 -1.078 0.2812 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df lower.CL upper.CL t.ratio p.value #> year2011 - year2013 -0.9901 0.222 963 -1.560 -0.420 -4.467 0.0001 #> year2011 - year2015 -0.7496 0.220 963 -1.316 -0.183 -3.404 0.0039 #> year2011 - year2017 -0.0127 0.221 963 -0.581 0.556 -0.057 0.9999 #> year2013 - year2015 0.2405 0.217 963 -0.317 0.798 1.110 0.6837 #> year2013 - year2017 0.9774 0.223 963 0.404 1.550 4.390 0.0001 #> year2015 - year2017 0.7369 0.222 963 0.166 1.308 3.320 0.0052 #> #> Results are given on the log odds ratio (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: tukey method for comparing a family of 4 estimates #> P value adjustment: tukey method for comparing a family of 4 estimates #> as.data.frame(e) #> Warning: Note: 'as.data.frame' has combined your 2 sets of results into one object, #> and this affects things like adjusted P values. Refer to the annotations. #> year contrast emmean SE df lower.CL upper.CL #> 2011 . -0.6063952 0.5511170 963 -2.1569729 0.9441824 #> 2013 . 0.3836816 0.5497815 963 -1.1631386 1.9305018 #> 2015 . 0.1431957 0.5505275 963 -1.4057236 1.6921150 #> 2017 . -0.5937169 0.5506319 963 -2.1429298 0.9554960 #> . year2011 - year2013 -0.9900768 0.2216228 963 -1.6136166 -0.3665369 #> . year2011 - year2015 -0.7495909 0.2201979 963 -1.3691217 -0.1300601 #> . year2011 - year2017 -0.0126783 0.2209364 963 -0.6342868 0.6089302 #> . year2013 - year2015 0.2404859 0.2167459 963 -0.3693327 0.8503044 #> . year2013 - year2017 0.9773985 0.2226493 963 0.3509706 1.6038264 #> . year2015 - year2017 0.7369126 0.2219749 963 0.1123823 1.3614430 #> #> Results are given on the logit (not the response) scale. #> Confidence level used: 0.95 #> Conf-level adjustment: bonferroni method for 10 estimates # interaction of factor with continuous predictor: fit2 <- sdmTMB( present ~ depth_scaled * as.factor(year), data = pcod_2011, mesh = mesh, family = binomial() ) fit2 #> Spatial model fit by ML ['sdmTMB'] #> Formula: present ~ depth_scaled * as.factor(year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.75 0.48 #> depth_scaled -0.98 0.25 #> as.factor(year)2013 1.03 0.23 #> as.factor(year)2015 0.79 0.23 #> as.factor(year)2017 0.01 0.23 #> depth_scaled:as.factor(year)2013 -0.16 0.26 #> depth_scaled:as.factor(year)2015 0.03 0.26 #> depth_scaled:as.factor(year)2017 -0.01 0.26 #> #> Matérn range: 33.38 #> Spatial SD: 2.19 #> ML criterion at convergence: 546.074 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # slopes for each level: emmeans::emtrends(fit2, ~ year, var = \"depth_scaled\") #> year depth_scaled.trend SE df lower.CL upper.CL #> 2011 -0.980 0.250 959 -1.47 -0.490 #> 2013 -1.140 0.247 959 -1.63 -0.655 #> 2015 -0.950 0.238 959 -1.42 -0.483 #> 2017 -0.987 0.244 959 -1.47 -0.507 #> #> Confidence level used: 0.95 # test difference in slopes: emmeans::emtrends(fit2, pairwise ~ year, var = \"depth_scaled\") #> $emtrends #> year depth_scaled.trend SE df lower.CL upper.CL #> 2011 -0.980 0.250 959 -1.47 -0.490 #> 2013 -1.140 0.247 959 -1.63 -0.655 #> 2015 -0.950 0.238 959 -1.42 -0.483 #> 2017 -0.987 0.244 959 -1.47 -0.507 #> #> Confidence level used: 0.95 #> #> $contrasts #> contrast estimate SE df t.ratio p.value #> year2011 - year2013 0.16009 0.261 959 0.613 0.9281 #> year2011 - year2015 -0.03052 0.265 959 -0.115 0.9995 #> year2011 - year2017 0.00651 0.261 959 0.025 1.0000 #> year2013 - year2015 -0.19061 0.258 959 -0.738 0.8817 #> year2013 - year2017 -0.15358 0.259 959 -0.593 0.9342 #> year2015 - year2017 0.03703 0.263 959 0.141 0.9990 #> #> P value adjustment: tukey method for comparing a family of 4 estimates #> emmeans::emmip(fit2, year ~ depth_scaled, at = list(depth_scaled = seq(-2.5, 2.5, length.out = 50)), CIs = TRUE)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"Moved sdmTMBextra package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"","code":"extract_mcmc(object = deprecated())"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"object Deprecated See sdmTMBextra package. Make sure load sdmTMBextra sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"Deprecated. See sdmTMBextra package.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/extract_mcmc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract MCMC samples from a model fit with tmbstan. — extract_mcmc","text":"","code":"if (FALSE) { extract_mcmc() }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":null,"dir":"Reference","previous_headings":"","what":"Additional families — Families","title":"Additional families — Families","text":"Additional families compatible sdmTMB().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Additional families — Families","text":"","code":"Beta(link = \"logit\") lognormal(link = \"log\") gengamma(link = \"log\") gamma_mix(link = \"log\") lognormal_mix(link = \"log\") nbinom2_mix(link = \"log\") nbinom2(link = \"log\") nbinom1(link = \"log\") truncated_nbinom2(link = \"log\") truncated_nbinom1(link = \"log\") student(link = \"identity\", df = 3) tweedie(link = \"log\") censored_poisson(link = \"log\") delta_gamma(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_gamma_mix(link1 = \"logit\", link2 = \"log\") delta_gengamma(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_lognormal(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_lognormal_mix(link1, link2 = \"log\", type = c(\"standard\", \"poisson-link\")) delta_truncated_nbinom2(link1 = \"logit\", link2 = \"log\") delta_truncated_nbinom1(link1 = \"logit\", link2 = \"log\") delta_poisson_link_gamma(link1 = \"log\", link2 = \"log\") delta_poisson_link_lognormal(link1 = \"log\", link2 = \"log\") delta_beta(link1 = \"logit\", link2 = \"logit\")"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Additional families — Families","text":"link Link. df Student-t degrees freedom fixed value parameter. link1 Link first part delta/hurdle model. Defaults \"logit\" type = \"standard\" \"log\" type = \"poisson-link\". link2 Link second part delta/hurdle model. type Delta/hurdle family type. \"standard\" classic hurdle model. \"poisson-link\" Poisson-link delta model (Thorson 2018).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Additional families — Families","text":"list elements common standard R family objects including family, link, linkfun, linkinv. Delta/hurdle model families also elements delta (logical) type (standard vs. Poisson-link).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Additional families — Families","text":"delta_poisson_link_gamma() delta_poisson_link_lognormal() deprecated favour delta_gamma(type = \"poisson-link\") delta_lognormal(type = \"poisson-link\"). gengamma() family implemented J.T. Thorson uses Prentice (1974) parameterization lognormal occurs internal parameter gengamma_Q (reported print() \"Generalized gamma lambda\") approaches 0. families ending _mix() 2-component mixtures distribution mean shared scale parameter. (Thorson et al. 2011). See model-description vignette details. parameter plogis(log_p_mix) probability extreme (larger) mean exp(log_ratio_mix) + 1 ratio larger extreme mean \"regular\" mean. can see parameters model$sd_report. nbinom2 negative binomial parameterization NB2 variance grows quadratically mean (Hilbe 2011). nbinom1 negative binomial parameterization lets variance grow linearly mean (Hilbe 2011). student(), degrees freedom parameter currently estimated fixed df.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Additional families — Families","text":"Generalized gamma family: Prentice, R.L. 1974. log gamma model maximum likelihood estimation. Biometrika 61(3): 539–544. doi:10.1093/biomet/61.3.539 Stacy, E.W. 1962. Generalization Gamma Distribution. Annals Mathematical Statistics 33(3): 1187–1192. Institute Mathematical Statistics. Families ending _mix(): Thorson, J.T., Stewart, .J., Punt, .E. 2011. Accounting fish shoals single- multi-species survey data using mixture distribution models. Can. J. Fish. Aquat. Sci. 68(9): 1681–1693. doi:10.1139/f2011-086 . Negative binomial families: Hilbe, J. M. 2011. Negative binomial regression. Cambridge University Press. Poisson-link delta families: Thorson, J.T. 2018. Three problems conventional delta-model biomass sampling data, computationally efficient alternative. Canadian Journal Fisheries Aquatic Sciences, 75(9), 1369-1382. doi:10.1139/cjfas-2017-0266","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/families.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Additional families — Families","text":"","code":"Beta(link = \"logit\") #> #> Family: Beta #> Link function: logit #> lognormal(link = \"log\") #> #> Family: lognormal #> Link function: log #> gengamma(link = \"log\") #> #> Family: gengamma #> Link function: log #> gamma_mix(link = \"log\") #> #> Family: gamma_mix #> Link function: log #> lognormal_mix(link = \"log\") #> #> Family: lognormal_mix #> Link function: log #> nbinom2_mix(link = \"log\") #> #> Family: nbinom2_mix #> Link function: log #> nbinom2(link = \"log\") #> #> Family: nbinom2 #> Link function: log #> nbinom1(link = \"log\") #> #> Family: nbinom1 #> Link function: log #> truncated_nbinom2(link = \"log\") #> #> Family: truncated_nbinom2 #> Link function: log #> truncated_nbinom1(link = \"log\") #> #> Family: truncated_nbinom1 #> Link function: log #> student(link = \"identity\") #> #> Family: student #> Link function: identity #> tweedie(link = \"log\") #> #> Family: tweedie #> Link function: log #> censored_poisson(link = \"log\") #> #> Family: censored_poisson #> Link function: log #> delta_gamma() #> #> Family: binomial Gamma #> Link function: logit log #> delta_gamma_mix() #> #> Family: binomial gamma_mix #> Link function: logit log #> delta_gengamma() #> #> Family: binomial gengamma #> Link function: logit log #> delta_lognormal() #> #> Family: binomial lognormal #> Link function: logit log #> delta_lognormal_mix() #> #> Family: binomial lognormal_mix #> Link function: logit log #> delta_truncated_nbinom2() #> #> Family: binomial truncated_nbinom2 #> Link function: logit log #> delta_truncated_nbinom1() #> #> Family: binomial truncated_nbinom1 #> Link function: logit log #> delta_beta() #> #> Family: binomial Beta #> Link function: logit logit #>"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract parameter simulations from the joint precision matrix — spread_sims","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"spread_sims() returns wide-format data frame. gather_sims() returns long-format data frame. format matches format tidybayes spread_draws() gather_draws() functions.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"","code":"spread_sims(object, nsim = 200, n_sims = deprecated()) gather_sims(object, nsim = 200, n_sims = deprecated())"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"object Output sdmTMB(). nsim number simulation draws. n_sims Deprecated: please use nsim.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"data frame. gather_sims() returns long-format data frame: .iteration: sample ID .variable: parameter name .value: parameter sample value spread_sims() returns wide-format data frame: .iteration: sample ID columns parameter sample per row","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/gather_sims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract parameter simulations from the joint precision matrix — spread_sims","text":"","code":"m <- sdmTMB(density ~ depth_scaled, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie()) head(spread_sims(m, nsim = 10)) #> .iteration X.Intercept. depth_scaled range phi tweedie_p sigma_O #> 1 1 3.393053 -0.4756917 35.10857 16.62507 1.579221 1.973057 #> 2 2 2.453699 -0.5529437 40.29486 15.67956 1.595062 1.604046 #> 3 3 2.498889 -0.6424470 17.06384 15.05068 1.579885 3.030274 #> 4 4 2.437776 -0.6143827 13.19682 14.84068 1.586556 2.367892 #> 5 5 3.115919 -0.6334488 18.37589 15.03649 1.586183 3.218231 #> 6 6 3.600610 -0.5350240 14.00011 15.24467 1.592803 2.162490 head(gather_sims(m, nsim = 10)) #> .iteration .variable .value #> 1 1 X.Intercept. 2.460426 #> 2 2 X.Intercept. 3.154042 #> 3 3 X.Intercept. 3.013656 #> 4 4 X.Intercept. 2.634319 #> 5 5 X.Intercept. 2.963111 #> 6 6 X.Intercept. 3.258671 samps <- gather_sims(m, nsim = 1000) if (require(\"ggplot2\", quietly = TRUE)) { ggplot(samps, aes(.value)) + geom_histogram() + facet_wrap(~.variable, scales = \"free_x\") } #> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract a relative biomass/abundance index or a center of gravity — get_index","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"Extract relative biomass/abundance index center gravity","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"","code":"get_index( obj, bias_correct = FALSE, level = 0.95, area = 1, silent = TRUE, ... ) get_cog( obj, bias_correct = FALSE, level = 0.95, format = c(\"long\", \"wide\"), area = 1, silent = TRUE, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"obj Output predict.sdmTMB() return_tmb_object = TRUE. bias_correct bias correction implemented TMB::sdreport()? level confidence level. area Grid cell area. vector length newdata predict.sdmTMB() value length 1, repeated internally match. silent Silent? ... Passed TMB::sdreport(). format Long wide.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"get_index(): data frame columns time, estimate, lower upper confidence intervals, log estimate, standard error log estimate. get_cog(): data frame columns time, estimate (center gravity x y coordinates), lower upper confidence intervals, standard error center gravity coordinates.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"Geostatistical random-field model-based indices abundance (along many newer papers): Shelton, .O., Thorson, J.T., Ward, E.J., Feist, B.E. 2014. Spatial semiparametric models improve estimates species abundance distribution. Canadian Journal Fisheries Aquatic Sciences 71(11): 1655--1666. doi:10.1139/cjfas-2013-0508 Thorson, J.T., Shelton, .O., Ward, E.J., Skaug, H.J. 2015. Geostatistical delta-generalized linear mixed models improve precision estimated abundance indices West Coast groundfishes. ICES J. Mar. Sci. 72(5): 1297–1310. doi:10.1093/icesjms/fsu243 Geostatistical model-based centre gravity: Thorson, J.T., Pinsky, M.L., Ward, E.J. 2016. Model-based inference estimating shifts species distribution, area occupied centre gravity. Methods Ecol Evol 7(8): 990–1002. doi:10.1111/2041-210X.12567 Bias correction: Thorson, J.T., Kristensen, K. 2016. Implementing generic method bias correction statistical models using random effects, spatial population dynamics examples. Fisheries Research 175: 66–74. doi:10.1016/j.fishres.2015.11.016","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract a relative biomass/abundance index or a center of gravity — get_index","text":"","code":"# \\donttest{ # Use a small number of knots for this example to make it fast: pcod_spde <- make_mesh(pcod, c(\"X\", \"Y\"), n_knots = 60, type = \"kmeans\") m <- sdmTMB( data = pcod, formula = density ~ 0 + as.factor(year), time = \"year\", mesh = pcod_spde, family = tweedie(link = \"log\") ) # make prediction grid: nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) # Note `return_tmb_object = TRUE` and the prediction grid: predictions <- predict(m, newdata = nd, return_tmb_object = TRUE) ind <- get_index(predictions) #> Bias correction is turned off. #> It is recommended to turn this on for final inference. if (require(\"ggplot2\", quietly = TRUE)) { ggplot(ind, aes(year, est)) + geom_line() + geom_ribbon(aes(ymin = lwr, ymax = upr), alpha = 0.4) } cog <- get_cog(predictions) cog #> year est lwr upr se coord #> 1 2003 463.5260 446.4142 480.6378 8.730670 X #> 2 2004 476.7402 466.4506 487.0297 5.249871 X #> 3 2005 470.6887 457.7494 483.6280 6.601796 X #> 4 2007 480.8948 464.5560 497.2336 8.336280 X #> 5 2009 477.2029 457.9185 496.4872 9.839144 X #> 6 2011 470.5112 457.6004 483.4221 6.587284 X #> 7 2013 471.9877 455.6078 488.3676 8.357252 X #> 8 2015 463.0289 449.6443 476.4136 6.829028 X #> 9 2017 470.5219 455.4189 485.6249 7.705734 X #> 10 2003 5757.8611 5739.8547 5775.8675 9.187109 Y #> 11 2004 5732.5037 5720.8788 5744.1285 5.931164 Y #> 12 2005 5763.0315 5750.1526 5775.9104 6.570990 Y #> 13 2007 5738.2313 5716.8428 5759.6199 10.912733 Y #> 14 2009 5734.0288 5713.3608 5754.6968 10.545101 Y #> 15 2011 5747.1037 5733.6282 5760.5792 6.875389 Y #> 16 2013 5747.6446 5728.9691 5766.3201 9.528488 Y #> 17 2015 5753.9697 5736.8439 5771.0956 8.737855 Y #> 18 2017 5755.9728 5739.6443 5772.3014 8.331045 Y # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"Calculate population index via simulation joint precision matrix. Compared get_index(), version can faster bias correction turned get_index() approximately equivalent. experimental function. function usually works reasonably well, make guarantees. recommended use get_index() bias_correct = TRUE final inference.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"","code":"get_index_sims( obj, level = 0.95, return_sims = FALSE, area = rep(1, nrow(obj)), est_function = stats::median, area_function = function(x, area) x + log(area), agg_function = function(x) sum(exp(x)) )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"obj predict.sdmTMB() output nsim > 0. level confidence level. return_sims Logical. Return simulation draws? default (FALSE) quantile summary simulation draws. area vector grid cell/polyon areas year-grid cell (row data) obj. Adjust cells unit area area (e.g., cells partially land/water). Note area vector added log(area) raw values obj. words, function assumes log link, typically makes sense. est_function Function summarize estimate (expected value). mean() alternative median(). area_function Function apply area weighting. Assuming log link, function(x, area) x + log(area) default makes sense. natural space, function(x, area) x * area makes sense. agg_function Function aggregate samples within time slice. Assuming log link, function(x) sum(exp(x)) default makes sense. natural space, function(x) sum(x) makes sense.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"data frame. return_sims = FALSE: name column (e.g. year) supplied sdmTMB() time argument est: estimate lwr: lower confidence interval value upr: upper confidence interval value log_est: log estimate se: standard error log estimate return_sims = TRUE, samples index values long-format data frame: name column (e.g. year) supplied sdmTMB() time argument .value: sample value .iteration: sample number","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"Can also used produce index model fit tmbstan. function nothing summarize reshape matrix simulation draws data frame.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_index_sims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate a population index via simulation from the joint precision matrix — get_index_sims","text":"","code":"# \\donttest{ m <- sdmTMB(density ~ 0 + as.factor(year), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), time = \"year\" ) qcs_grid_2011 <- replicate_df(qcs_grid, \"year\", unique(pcod_2011$year)) p <- predict(m, newdata = qcs_grid_2011, nsim = 100) x <- get_index_sims(p) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. x_sims <- get_index_sims(p, return_sims = TRUE) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. if (require(\"ggplot2\", quietly = TRUE)) { ggplot(x, aes(year, est, ymin = lwr, ymax = upr)) + geom_line() + geom_ribbon(alpha = 0.4) ggplot(x_sims, aes(as.factor(year), .value)) + geom_violin() } # Demo custom functions if working in natural space: ind <- get_index_sims( exp(p), agg_function = function(x) sum(x), area_function = function(x, area) x * area ) #> We generally recommend using `get_index(..., bias_correct = TRUE)` #> rather than `get_index_sims()`. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":null,"dir":"Reference","previous_headings":"","what":"Get TMB parameter list — get_pars","title":"Get TMB parameter list — get_pars","text":"Get TMB parameter list","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get TMB parameter list — get_pars","text":"","code":"get_pars(object)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get TMB parameter list — get_pars","text":"object Fit sdmTMB()","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get TMB parameter list — get_pars","text":"named list parameter values","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/get_pars.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get TMB parameter list — get_pars","text":"","code":"fit <- sdmTMB(present ~ 1, data = pcod_2011, family = binomial(), spatial = \"off\") pars <- get_pars(fit) names(pars) #> [1] \"ln_H_input\" \"b_j\" \"b_j2\" #> [4] \"bs\" \"ln_tau_O\" \"ln_tau_Z\" #> [7] \"ln_tau_E\" \"ln_kappa\" \"thetaf\" #> [10] \"gengamma_Q\" \"logit_p_mix\" \"log_ratio_mix\" #> [13] \"ln_phi\" \"ln_tau_V\" \"rho_time_unscaled\" #> [16] \"ar1_phi\" \"ln_tau_G\" \"RE\" #> [19] \"b_rw_t\" \"omega_s\" \"zeta_s\" #> [22] \"epsilon_st\" \"b_threshold\" \"b_epsilon\" #> [25] \"ln_epsilon_re_sigma\" \"epsilon_re\" \"b_smooth\" #> [28] \"ln_smooth_sigma\""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if ggplot2 installed — ggplot2_installed","title":"Check if ggplot2 installed — ggplot2_installed","text":"Check ggplot2 installed","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if ggplot2 installed — ggplot2_installed","text":"","code":"ggplot2_installed()"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/ggplot2_installed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if ggplot2 installed — ggplot2_installed","text":"Returns TRUE FALSE.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":null,"dir":"Reference","previous_headings":"","what":"Construct an SPDE mesh for sdmTMB — make_mesh","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"Construct SPDE mesh use sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"","code":"make_mesh( data, xy_cols, type = c(\"kmeans\", \"cutoff\", \"cutoff_search\"), cutoff, n_knots, seed = 42, mesh = NULL, fmesher_func = fmesher::fm_rcdt_2d_inla, convex = NULL, concave = convex, ... ) # S3 method for sdmTMBmesh plot(x, ...)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"data data frame. xy_cols character vector x y column names contained data. likely equal distance projection. helper function convert UTMs, see add_utm_columns(). type Method create mesh. Also see mesh argument supply mesh. cutoff optional cutoff type \"cutoff\". minimum allowed triangle edge length. n_knots number desired knots type \"cutoff\". seed Random seed. Affects stats::kmeans() determination knot locations type = \"kmeans\". mesh optional mesh created via fmesher instead using convenience options. fmesher_func fmesher function use. Options include fmesher::fm_rcdt_2d_inla() fmesher::fm_mesh_2d_inla() along version without _inla end. convex specified, passed fmesher::fm_nonconvex_hull(). Distance extend non-convex hull data. concave specified, passed fmesher::fm_nonconvex_hull(). \"Minimum allowed reentrant curvature\". Defaults convex. ... Passed graphics::plot(). x Output make_mesh().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"make_mesh(): list class sdmTMBmesh. element mesh output fmesher_func (default fmesher::fm_mesh_2d_inla()). See mesh$mesh$n number vertices. plot.sdmTMBmesh(): plot mesh data points. ggplot2 installed, ggplot2 object returned, otherwise base graphics R plot returned. make , pass your_mesh$mesh inlabru::gg().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/make_mesh.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Construct an SPDE mesh for sdmTMB — make_mesh","text":"","code":"# Extremely simple cutoff: mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 5, type = \"cutoff\") plot(mesh) # Using a k-means algorithm to assign vertices: mesh <- make_mesh(pcod, c(\"X\", \"Y\"), n_knots = 50, type = \"kmeans\") plot(mesh) # \\donttest{ # But, it's better to develop more tailored meshes: # Pass arguments via '...' to fmesher::fm_mesh_2d_inla(): mesh <- make_mesh( pcod, c(\"X\", \"Y\"), fmesher_func = fmesher::fm_mesh_2d_inla, cutoff = 8, # minimum triangle edge length max.edge = c(20, 40), # inner and outer max triangle lengths offset = c(5, 40) # inner and outer border widths ) plot(mesh) # Or define a mesh directly with fmesher (formerly in INLA): inla_mesh <- fmesher::fm_mesh_2d_inla( loc = cbind(pcod$X, pcod$Y), # coordinates max.edge = c(25, 50), # max triangle edge length; inner and outer meshes offset = c(5, 25), # inner and outer border widths cutoff = 5 # minimum triangle edge length ) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), mesh = inla_mesh) plot(mesh) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot anisotropy from an sdmTMB model — plot_anisotropy","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"Anisotropy spatial correlation directionally dependent. sdmTMB(), default spatial correlation isotropic, anisotropy can enabled anisotropy = TRUE. plotting functions help visualize estimated anisotropy.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"","code":"plot_anisotropy(object, return_data = FALSE) plot_anisotropy2(object, model = 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"object object sdmTMB(). return_data Logical. Return data frame? plot_anisotropy() . model model delta model (plot_anisotropy2(); plot_anisotropy() always plots ).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"plot_anisotropy(): One ellipses illustrating estimated anisotropy. ellipses centered coordinates zero space X-Y coordinates modeled. ellipses show spatial /spatiotemporal range (distance correlation effectively independent) direction zero. Uses ggplot2. anisotropy turned fitting model, NULL returned instead ggplot2 object. plot_anisotropy2(): plot eigenvectors illustrating estimated anisotropy. list plotted data invisibly returned. Uses base graphics. anisotropy turned fitting model, NULL returned instead plot object.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"Code adapted VAST R package","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_anisotropy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot anisotropy from an sdmTMB model — plot_anisotropy","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), n_knots = 80, type = \"kmeans\") fit <- sdmTMB( data = pcod_2011, formula = density ~ 1, mesh = mesh, family = tweedie(), share_range = FALSE, time = \"year\", anisotropy = TRUE #< ) plot_anisotropy(fit) plot_anisotropy2(fit)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot PC Matérn priors — plot_pc_matern","title":"Plot PC Matérn priors — plot_pc_matern","text":"Plot PC Matérn priors","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot PC Matérn priors — plot_pc_matern","text":"","code":"plot_pc_matern( range_gt, sigma_lt, range_prob = 0.05, sigma_prob = 0.05, range_lims = c(range_gt * 0.1, range_gt * 10), sigma_lims = c(0, sigma_lt * 2), plot = TRUE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot PC Matérn priors — plot_pc_matern","text":"range_gt value one expects spatial spatiotemporal range greater 1 - range_prob probability. sigma_lt value one expects spatial spatiotemporal marginal standard deviation (sigma_O sigma_E internally) less 1 - sigma_prob probability. range_prob Probability. See description range_gt. sigma_prob Probability. See description sigma_lt. range_lims Plot range variable limits. sigma_lims Plot sigma variable limits. plot Logical controlling whether plot drawn (defaults TRUE).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot PC Matérn priors — plot_pc_matern","text":"plot image(). Invisibly returns underlying matrix data. rows sigmas. columns ranges. Column row names provided.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_pc_matern.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot PC Matérn priors — plot_pc_matern","text":"","code":"plot_pc_matern(range_gt = 5, sigma_lt = 1) plot_pc_matern(range_gt = 5, sigma_lt = 10) plot_pc_matern(range_gt = 5, sigma_lt = 1, sigma_prob = 0.2) plot_pc_matern(range_gt = 5, sigma_lt = 1, range_prob = 0.2)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot a smooth term from an sdmTMB model — plot_smooth","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"Deprecated: use visreg::visreg(). See visreg_delta() examples.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"","code":"plot_smooth( object, select = 1, n = 100, level = 0.95, ggplot = FALSE, rug = TRUE, return_data = FALSE )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"object sdmTMB() model. select smoother term plot. n number equally spaced points evaluate smoother along. level confidence level. ggplot Logical: use ggplot2 package? rug Logical: add rug lines along lower axis? return_data Logical: return predicted data instead making plot?","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"plot smoother term.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"Note: numeric predictor set mean factor predictor set first-level value time element (present) set minimum value x y coordinates set mean values","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/plot_smooth.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot a smooth term from an sdmTMB model — plot_smooth","text":"","code":"d <- subset(pcod, year >= 2000 & density > 0) pcod_spde <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) m <- sdmTMB( data = d, formula = log(density) ~ s(depth_scaled) + s(year, k = 5), mesh = pcod_spde ) plot_smooth(m) #> This function may be deprecated. #> Consider using `visreg::visreg()` or `visreg_delta()`. #> See ?visreg_delta() for examples."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict from an sdmTMB model — predict.sdmTMB","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"Make predictions sdmTMB model; can predict original new data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"","code":"# S3 method for sdmTMB predict( object, newdata = NULL, type = c(\"link\", \"response\"), se_fit = FALSE, re_form = NULL, re_form_iid = NULL, nsim = 0, sims_var = \"est\", model = c(NA, 1, 2), offset = NULL, mcmc_samples = NULL, return_tmb_object = FALSE, return_tmb_report = FALSE, return_tmb_data = FALSE, tmbstan_model = deprecated(), sims = deprecated(), area = deprecated(), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"object model fitted sdmTMB(). newdata data frame make predictions . data frame predictor columns fitted data time column (spatiotemporal model) name fitted data. type est column link (default) response space? se_fit standard errors predictions new locations given newdata calculated? Warning: current implementation can slow large data sets high-resolution projections unless re_form = NA (omitting random fields). faster option approximate point-wise uncertainty use nsim argument. re_form NULL specify including spatial/spatiotemporal random effects predictions. ~0 NA population-level predictions. Likely used conjunction se_fit = TRUE. affect get_index() calculations. re_form_iid NULL specify including random intercepts predictions. ~0 NA population-level predictions. options (e.g., random intercepts) implemented yet. affects predictions newdata. affects get_index(). nsim > 0, simulate joint precision matrix nsim draws. Returns matrix nrow(data) nsim representing estimates linear predictor (.e., link space). Can useful deriving uncertainty predictions (e.g., apply(x, 1, sd)) propagating uncertainty. currently fastest way characterize uncertainty predictions space sdmTMB. sims_var Experimental: TMB reported variable model extracted joint precision matrix simulation draws? Defaults link-space predictions. Options include: \"omega_s\", \"zeta_s\", \"epsilon_st\", \"est_rf\" (described ). options passed verbatim. model Type prediction delta/hurdle model nsim > 0 mcmc_samples supplied: NA returns combined prediction components link scale positive component; 1 2 return first second model component link response scale depending argument type. regular prediction delta models, sets predictions returned. offset numeric vector optional offset values. left default NULL, offset implicitly left 0. mcmc_samples See extract_mcmc() sdmTMBextra package details Bayesian vignette. specified, predict function return matrix similar form nsim > 0 representing Bayesian posterior samples Stan model. return_tmb_object Logical. TRUE, include TMB object list format output. Necessary get_index() get_cog() functions. return_tmb_report Logical: return output TMB report? regular prediction, reported variables MLE parameter values. nsim > 0 mcmc_samples supplied, list element sample contents element output report sample. return_tmb_data Logical: return formatted data TMB? Used internally. tmbstan_model Deprecated. See mcmc_samples. sims Deprecated. Please use nsim instead. area Deprecated. Please use area get_index(). ... implemented.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"return_tmb_object = FALSE (nsim = 0 mcmc_samples = NULL): data frame: est: Estimate link space (everything link space) est_non_rf: Estimate everything random field est_rf: Estimate random fields combined omega_s: Spatial (intercept) random field constant time zeta_s: Spatial slope random field epsilon_st: Spatiotemporal (intercept) random fields, (zero), IID, AR1, random walk return_tmb_object = TRUE (nsim = 0 mcmc_samples = NULL): list: data: data frame described report: TMB report parameter values obj: TMB object returned prediction run fit_obj: original TMB model object case, likely need data element end user. elements included functions. nsim > 0 mcmc_samples NULL: matrix: Columns represent samples Rows represent predictions one row per row newdata","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/predict.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict from an sdmTMB model — predict.sdmTMB","text":"","code":"d <- pcod_2011 mesh <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) # a coarse mesh for example speed m <- sdmTMB( data = d, formula = density ~ 0 + as.factor(year) + depth_scaled + depth_scaled2, time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) # Predictions at original data locations ------------------------------- predictions <- predict(m) head(predictions) #> # A tibble: 6 × 17 #> year X Y depth density present lat lon depth_mean depth_sd #> #> 1 2011 435. 5718. 241 245. 1 51.6 -130. 5.16 0.445 #> 2 2011 487. 5719. 52 0 0 51.6 -129. 5.16 0.445 #> 3 2011 490. 5717. 47 0 0 51.6 -129. 5.16 0.445 #> 4 2011 545. 5717. 157 0 0 51.6 -128. 5.16 0.445 #> 5 2011 404. 5720. 398 0 0 51.6 -130. 5.16 0.445 #> 6 2011 420. 5721. 486 0 0 51.6 -130. 5.16 0.445 #> # ℹ 7 more variables: depth_scaled , depth_scaled2 , est , #> # est_non_rf , est_rf , omega_s , epsilon_st predictions$resids <- residuals(m) # randomized quantile residuals #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. library(ggplot2) ggplot(predictions, aes(X, Y, col = resids)) + scale_colour_gradient2() + geom_point() + facet_wrap(~year) hist(predictions$resids) qqnorm(predictions$resids);abline(a = 0, b = 1) # Predictions onto new data -------------------------------------------- qcs_grid_2011 <- replicate_df(qcs_grid, \"year\", unique(pcod_2011$year)) predictions <- predict(m, newdata = qcs_grid_2011) # \\donttest{ # A short function for plotting our predictions: plot_map <- function(dat, column = est) { ggplot(dat, aes(X, Y, fill = {{ column }})) + geom_raster() + facet_wrap(~year) + coord_fixed() } plot_map(predictions, exp(est)) + scale_fill_viridis_c(trans = \"sqrt\") + ggtitle(\"Prediction (fixed effects + all random effects)\") plot_map(predictions, exp(est_non_rf)) + ggtitle(\"Prediction (fixed effects and any time-varying effects)\") + scale_fill_viridis_c(trans = \"sqrt\") plot_map(predictions, est_rf) + ggtitle(\"All random field estimates\") + scale_fill_gradient2() plot_map(predictions, omega_s) + ggtitle(\"Spatial random effects only\") + scale_fill_gradient2() plot_map(predictions, epsilon_st) + ggtitle(\"Spatiotemporal random effects only\") + scale_fill_gradient2() # Visualizing a marginal effect ---------------------------------------- # See the visreg package or the ggeffects::ggeffect() or # ggeffects::ggpredict() functions # To do this manually: nd <- data.frame(depth_scaled = seq(min(d$depth_scaled), max(d$depth_scaled), length.out = 100)) nd$depth_scaled2 <- nd$depth_scaled^2 # Because this is a spatiotemporal model, you'll need at least one time # element. If time isn't also a fixed effect then it doesn't matter what you pick: nd$year <- 2011L # L: integer to match original data p <- predict(m, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se))) + geom_line() + geom_ribbon(alpha = 0.4) # Plotting marginal effect of a spline --------------------------------- m_gam <- sdmTMB( data = d, formula = density ~ 0 + as.factor(year) + s(depth_scaled, k = 5), time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) if (require(\"visreg\", quietly = TRUE)) { visreg::visreg(m_gam, \"depth_scaled\") } # or manually: nd <- data.frame(depth_scaled = seq(min(d$depth_scaled), max(d$depth_scaled), length.out = 100)) nd$year <- 2011L p <- predict(m_gam, newdata = nd, se_fit = TRUE, re_form = NA) ggplot(p, aes(depth_scaled, exp(est), ymin = exp(est - 1.96 * est_se), ymax = exp(est + 1.96 * est_se))) + geom_line() + geom_ribbon(alpha = 0.4) # Forecasting ---------------------------------------------------------- mesh <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 15) unique(d$year) #> [1] 2011 2013 2015 2017 m <- sdmTMB( data = d, formula = density ~ 1, spatiotemporal = \"AR1\", # using an AR1 to have something to forecast with extra_time = 2019L, # `L` for integer to match our data spatial = \"off\", time = \"year\", mesh = mesh, family = tweedie(link = \"log\") ) # Add a year to our grid: grid2019 <- qcs_grid_2011[qcs_grid_2011$year == max(qcs_grid_2011$year), ] grid2019$year <- 2019L # `L` because `year` is an integer in the data qcsgrid_forecast <- rbind(qcs_grid_2011, grid2019) predictions <- predict(m, newdata = qcsgrid_forecast) plot_map(predictions, exp(est)) + scale_fill_viridis_c(trans = \"log10\") plot_map(predictions, epsilon_st) + scale_fill_gradient2() # Estimating local trends ---------------------------------------------- d <- pcod d$year_scaled <- as.numeric(scale(d$year)) mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) m <- sdmTMB(data = d, formula = density ~ depth_scaled + depth_scaled2, mesh = mesh, family = tweedie(link = \"log\"), spatial_varying = ~ 0 + year_scaled, time = \"year\", spatiotemporal = \"off\") nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) nd$year_scaled <- (nd$year - mean(d$year)) / sd(d$year) p <- predict(m, newdata = nd) plot_map(subset(p, year == 2003), zeta_s_year_scaled) + # pick any year ggtitle(\"Spatial slopes\") + scale_fill_gradient2() plot_map(p, est_rf) + ggtitle(\"Random field estimates\") + scale_fill_gradient2() plot_map(p, exp(est_non_rf)) + ggtitle(\"Prediction (fixed effects only)\") + scale_fill_viridis_c(trans = \"sqrt\") plot_map(p, exp(est)) + ggtitle(\"Prediction (fixed effects + all random effects)\") + scale_fill_viridis_c(trans = \"sqrt\") # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":null,"dir":"Reference","previous_headings":"","what":"Prior distributions — sdmTMBpriors","title":"Prior distributions — sdmTMBpriors","text":"Optional priors/penalties model parameters. results penalized likelihood within TMB can used priors model passed tmbstan (see Bayesian vignette). Note Jacobian adjustments made bayesian = TRUE sdmTMB() model fit. .e., final model fit tmbstan priors specified bayesian set TRUE. Otherwise, leave bayesian = FALSE. pc_matern() Penalized Complexity prior Matern covariance function.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prior distributions — sdmTMBpriors","text":"","code":"sdmTMBpriors( matern_s = pc_matern(range_gt = NA, sigma_lt = NA), matern_st = pc_matern(range_gt = NA, sigma_lt = NA), phi = halfnormal(NA, NA), ar1_rho = normal(NA, NA), tweedie_p = normal(NA, NA), b = normal(NA, NA), sigma_G = halfnormal(NA, NA) ) normal(location = 0, scale = 1) halfnormal(location = 0, scale = 1) mvnormal(location = 0, scale = diag(length(location))) pc_matern(range_gt, sigma_lt, range_prob = 0.05, sigma_prob = 0.05)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prior distributions — sdmTMBpriors","text":"matern_s PC (Penalized Complexity) prior (pc_matern()) spatial random field Matérn parameters. matern_st matern_s spatiotemporal random field. Note likely want set share_fields = FALSE choose set spatial spatiotemporal Matérn PC prior since include prior spatial range parameter. phi halfnormal() prior dispersion parameter observation distribution. ar1_rho normal() prior AR1 random field parameter. Note parameter support -1 < ar1_rho < 1. tweedie_p normal() prior Tweedie power parameter. Note parameter support 1 < tweedie_p < 2 choose mean appropriately. b normal() priors main population-level 'beta' effects. sigma_G halfnormal() priors random intercept SDs. location Location parameter(s). scale Scale parameter. normal()/halfnormal(): standard deviation(s). mvnormal(): variance-covariance matrix. range_gt value one expects spatial spatiotemporal range greater 1 - range_prob probability. sigma_lt value one expects spatial spatiotemporal marginal standard deviation (sigma_O sigma_E internally) less 1 - sigma_prob probability. range_prob Probability. See description range_gt. sigma_prob Probability. See description sigma_lt.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Prior distributions — sdmTMBpriors","text":"named list values specified priors.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Prior distributions — sdmTMBpriors","text":"Meant passed priors argument sdmTMB(). normal() halfnormal() define normal half-normal priors , point, must location (mean) parameter 0. halfnormal() normal() can used make syntax clearer. intended used parameters support > 0. See https://arxiv.org/abs/1503.00256 description PC prior Gaussian random fields. Quoting discussion (substituting argument names pc_matern()): \"simulation study observe good coverage equal-tailed 95% credible intervals prior satisfies P(sigma > sigma_lt) = 0.05 P(range < range_gt) = 0.05, sigma_lt 2.5 40 times true marginal standard deviation range_gt 1/10 1/2.5 true range.\" Keep mind range dependent units scale coordinate system. practice, may choose try fitting model without PC prior constraining model . better option simulate model given range sigma choose reasonable values system base prior knowledge model fit similar system spatial information data.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Prior distributions — sdmTMBpriors","text":"Fuglstad, G.-., Simpson, D., Lindgren, F., Rue, H. (2016) Constructing Priors Penalize Complexity Gaussian Random Fields. arXiv:1503.00256 Simpson, D., Rue, H., Martins, T., Riebler, ., Sørbye, S. (2015) Penalising model component complexity: principled, practical approach constructing priors. arXiv:1403.4630","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/priors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Prior distributions — sdmTMBpriors","text":"","code":"normal(0, 1) #> [,1] [,2] #> [1,] 0 1 #> attr(,\"dist\") #> [1] \"normal\" halfnormal(0, 1) #> [,1] [,2] #> [1,] 0 1 #> attr(,\"dist\") #> [1] \"normal\" mvnormal(c(0, 0)) #> [,1] [,2] [,3] #> [1,] 0 1 0 #> [2,] 0 0 1 #> attr(,\"dist\") #> [1] \"mvnormal\" pc_matern(range_gt = 5, sigma_lt = 1) #> [1] 5.00 1.00 0.05 0.05 #> attr(,\"dist\") #> [1] \"pc_matern\" plot_pc_matern(range_gt = 5, sigma_lt = 1) # \\donttest{ d <- subset(pcod, year > 2011) pcod_spde <- make_mesh(d, c(\"X\", \"Y\"), cutoff = 30) # - no priors on population-level effects (`b`) # - halfnormal(0, 10) prior on dispersion parameter `phi` # - Matern PC priors on spatial `matern_s` and spatiotemporal # `matern_st` random field parameters m <- sdmTMB(density ~ s(depth, k = 3), data = d, mesh = pcod_spde, family = tweedie(), share_range = FALSE, time = \"year\", priors = sdmTMBpriors( phi = halfnormal(0, 10), matern_s = pc_matern(range_gt = 5, sigma_lt = 1), matern_st = pc_matern(range_gt = 5, sigma_lt = 1) ) ) # - no prior on intercept # - normal(0, 1) prior on depth coefficient # - no prior on the dispersion parameter `phi` # - Matern PC prior m <- sdmTMB(density ~ depth_scaled, data = d, mesh = pcod_spde, family = tweedie(), spatiotemporal = \"off\", priors = sdmTMBpriors( b = normal(c(NA, 0), c(NA, 1)), matern_s = pc_matern(range_gt = 5, sigma_lt = 1) ) ) # You get a prior, you get a prior, you get a prior! # (except on the annual means; see the `NA`s) m <- sdmTMB(density ~ 0 + depth_scaled + depth_scaled2 + as.factor(year), data = d, time = \"year\", mesh = pcod_spde, family = tweedie(link = \"log\"), share_range = FALSE, spatiotemporal = \"AR1\", priors = sdmTMBpriors( b = normal(c(0, 0, NA, NA, NA), c(2, 2, NA, NA, NA)), phi = halfnormal(0, 10), # tweedie_p = normal(1.5, 2), ar1_rho = normal(0, 1), matern_s = pc_matern(range_gt = 5, sigma_lt = 1), matern_st = pc_matern(range_gt = 5, sigma_lt = 1)) ) # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. generics tidy","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":null,"dir":"Reference","previous_headings":"","what":"Replicate a prediction data frame over time — replicate_df","title":"Replicate a prediction data frame over time — replicate_df","text":"Useful replicating prediction grids across time slices used model fitting.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Replicate a prediction data frame over time — replicate_df","text":"","code":"replicate_df(dat, time_name, time_values)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Replicate a prediction data frame over time — replicate_df","text":"dat Data frame. time_name Name time column output. time_values Time values replicate dat .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Replicate a prediction data frame over time — replicate_df","text":"data frame replicated time_values new column based time_name.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/replicate_df.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Replicate a prediction data frame over time — replicate_df","text":"","code":"df <- data.frame(variable = c(\"a\", \"b\")) replicate_df(df, time_name = \"year\", time_values = 1:3) #> variable year #> 1 a 1 #> 2 b 1 #> 3 a 2 #> 4 b 2 #> 5 a 3 #> 6 b 3 head(qcs_grid) #> X Y depth depth_scaled depth_scaled2 #> 1 456 5636 347.0834 1.5608122 2.43613479 #> 2 458 5636 223.3348 0.5697699 0.32463771 #> 3 460 5636 203.7408 0.3633693 0.13203724 #> 4 462 5636 183.2987 0.1257046 0.01580166 #> 5 464 5636 182.9998 0.1220368 0.01489297 #> 6 466 5636 186.3892 0.1632882 0.02666303 nd <- replicate_df(qcs_grid, \"year\", unique(pcod$year)) head(nd) #> X Y depth depth_scaled depth_scaled2 year #> 1 456 5636 347.0834 1.5608122 2.43613479 2003 #> 2 458 5636 223.3348 0.5697699 0.32463771 2003 #> 3 460 5636 203.7408 0.3633693 0.13203724 2003 #> 4 462 5636 183.2987 0.1257046 0.01580166 2003 #> 5 464 5636 182.9998 0.1220368 0.01489297 2003 #> 6 466 5636 186.3892 0.1632882 0.02666303 2003 table(nd$year) #> #> 2003 2004 2005 2007 2009 2011 2013 2015 2017 #> 7314 7314 7314 7314 7314 7314 7314 7314 7314"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Residuals method for sdmTMB models — residuals.sdmTMB","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"See residual-checking vignette: browseVignettes(\"sdmTMB\") documentation site. See notes types residuals 'Details' section .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"","code":"# S3 method for sdmTMB residuals( object, type = c(\"mle-mvn\", \"mle-eb\", \"mle-mcmc\", \"response\", \"pearson\"), model = c(1, 2), mcmc_samples = NULL, qres_func = NULL, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"object sdmTMB() model. type Residual type. See details. model delta/hurdle model component? mcmc_samples vector MCMC samples linear predictor link space. See predict_mle_mcmc() function sdmTMBextra package. qres_func custom quantile residuals function. Function take arguments object, y, mu, ... return vector length length(y). ... Passed custom qres_func function. Unused.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"vector residuals. Note randomization single random effect posterior sample randomized quantile routines result different residuals call. suggested set randomization seed go \"fishing\" perfect residuals present inspected residuals.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"Randomized quantile residuals: mle-mvn, mle-eb, mle-mcmc implementations randomized quantile residuals (Dunn & Smyth 1996), also known probability integral transform (PIT) residuals (Smith 1985). data consistent model assumptions, residuals distributed normal(0, 1). Randomization added account integer binary response observations. example, Poisson observation likelihood observations y mean predictions mu, create randomized quantile residuals : Types residuals: Acronyms: EB: Empirical Bayes MCMC: Markov chain Monte Carlo MLE: Maximum Likelihood Estimate MVN: Multivariate normal mle-mvn: Fixed effects held MLEs random effects taken single approximate posterior sample. \"approximate\" part refers sample taken random effects' assumed MVN distribution. practice, sample obtained based mode Hessian random effects taking advantage sparsity Hessian computational efficiency. sample taken obj$MC(), obj TMB object created TMB::MakeADFun(). See Waagepetersen (2006) description source code internal TMB function TMB:::oneSamplePosterior(). Residuals converted randomized quantile residuals described . mle-eb: Fixed effects held MLEs random effects taken EB estimates. used default residuals sdmTMB (called mle-laplace). available backwards compatibility research purposes recommended checking goodness fit. Residuals converted randomized quantile residuals described . mle-mcmc: Fixed effects held MLEs random effects taken single posterior sample obtained MCMC. excellent option since make assumption distribution random effects (compared mle-mvn option) can slow obtain. See Waagepetersen (2006) Thygesen et al. (2017). Residuals converted randomized quantile residuals described . See sdmTMBextra package function predict_mle_mcmc(), can generate MCMC samples pass mcmc_samples argument. Ideally MCMC run convergence last iteration can used residuals. defaults may sufficient many models. response: simple observed minus predicted residuals. pearson: Pearson residuals: response residuals scaled standard deviation. weights present, residuals multiplied sqrt(weights).","code":"a <- ppois(y - 1, mu) b <- ppois(y, mu) u <- runif(n = length(y), min = a, max = b) qnorm(u)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"Dunn, P.K. & Smyth, G.K. (1996). Randomized Quantile Residuals. Journal Computational Graphical Statistics, 5, 236–244. Smith, J.Q. (1985). Diagnostic checks non-standard time series models. Journal Forecasting, 4, 283–291. Waagepetersen, R. (2006). simulation-based goodness--fit test random effects generalized linear mixed models. Scandinavian Journal Statistics, 33(4), 721-731. Thygesen, U.H., Albertsen, C.M., Berg, C.W., Kristensen, K., Nielsen, . 2017. Validation ecological state space models using Laplace approximation. Environ Ecol Stat 24(2): 317–339. doi:10.1007/s10651-017-0372-4 Rufener, M.-C., Kristensen, K., Nielsen, J.R., Bastardie, F. 2021. Bridging gap commercial fisheries survey data model spatiotemporal dynamics marine species. Ecological Applications. e02453. doi:10.1002/eap.2453","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/residuals.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Residuals method for sdmTMB models — residuals.sdmTMB","text":"","code":"mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 10) fit <- sdmTMB( present ~ as.factor(year) + poly(depth, 2), data = pcod_2011, mesh = mesh, family = binomial() ) # the default \"mle-mvn\" residuals use fixed effects at their MLE and a # single sample from the approximate random effect posterior: set.seed(9283) r <- residuals(fit, type = \"mle-mvn\") qqnorm(r) abline(0, 1) # response residuals will be not be normally distributed unless # the family is Gaussian: r <- residuals(fit, type = \"response\") qqnorm(r) abline(0, 1) # \"mle-eb\" are quick but are not expected to be N(0, 1); not recommended: set.seed(2321) r <- residuals(fit, type = \"mle-eb\") qqnorm(r) abline(0, 1) # see also \"mle-mcmc\" residuals with the help of the sdmTMBextra package # we can fake them here by taking a single sample from the joint precision # matrix and pretending they are MCMC samples: set.seed(82728) p <- predict(fit, nsim = 1) # pretend these are from sdmTMBextra::predict_mle_mcmc() r <- residuals(fit, mcmc_samples = p) #> Note what used to be the default sdmTMB residuals (before version 0.4.3.9005) #> are now `type = 'mle-eb'`. We recommend using the current default `'mle-mvn'`, #> which takes one sample from the approximate posterior of the random effects or #> `dharma_residuals()` using a similar approach. qqnorm(r) abline(0, 1)"},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"","code":"run_extra_optimization(object, nlminb_loops = 0, newton_loops = 1)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"object object sdmTMB(). nlminb_loops many extra times run stats::nlminb() optimization. Sometimes restarting optimizer previous best values aids convergence. newton_loops many extra Newton optimization loops try stats::optimHess(). Sometimes aids convergence.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"updated model fit class sdmTMB.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/run_extra_optimization.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Run extra optimization on an already fitted object — run_extra_optimization","text":"","code":"# Run extra optimization steps to help convergence: # (Not typically needed) fit <- sdmTMB(density ~ 0 + poly(depth, 2) + as.factor(year), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie()) fit_1 <- run_extra_optimization(fit, newton_loops = 1) max(fit$gradients) #> [1] 5.791343e-09 max(fit_1$gradients) #> [1] 5.791343e-09"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":null,"dir":"Reference","previous_headings":"","what":"Sanity check of an sdmTMB model — sanity","title":"Sanity check of an sdmTMB model — sanity","text":"Sanity check sdmTMB model","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sanity check of an sdmTMB model — sanity","text":"","code":"sanity(object, big_sd_log10 = 2, gradient_thresh = 0.001, silent = FALSE)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sanity check of an sdmTMB model — sanity","text":"object Fitted model sdmTMB(). big_sd_log10 Value check size standard errors . value 2 indicate standard errors greater 10^2 (.e., 100) flagged. gradient_thresh Gradient threshold issue warning. silent Logical: suppress messages? Useful set TRUE running large numbers models just interested returning sanity list objects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sanity check of an sdmTMB model — sanity","text":"invisible named list checks.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Sanity check of an sdmTMB model — sanity","text":"object NA, NULL, class \"try-error\", sanity() return FALSE. facilitate using sanity() models try() tryCatch(). See examples section.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sanity.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sanity check of an sdmTMB model — sanity","text":"","code":"fit <- sdmTMB( present ~ s(depth), data = pcod_2011, mesh = pcod_mesh_2011, family = binomial() ) sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large s <- sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large s #> $hessian_ok #> [1] TRUE #> #> $eigen_values_ok #> [1] TRUE #> #> $nlminb_ok #> [1] TRUE #> #> $range_ok #> [1] TRUE #> #> $gradients_ok #> [1] TRUE #> #> $se_magnitude_ok #> [1] TRUE #> #> $se_na_ok #> [1] TRUE #> #> $sigmas_ok #> [1] TRUE #> #> $all_ok #> [1] TRUE #> # If fitting many models in a loop, you may want to wrap # sdmTMB() in try() to handle errors. sanity() will take an object # of class \"try-error\" and return FALSE. # Here, we will use stop() to simulate a failed sdmTMB() fit: failed_fit <- try(stop()) #> Error in try(stop()) : s2 <- sanity(failed_fit) all(unlist(s)) #> [1] TRUE all(unlist(s2)) #> [1] FALSE"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Fit spatial spatiotemporal generalized linear mixed effects model (GLMM) TMB (Template Model Builder) R package SPDE (stochastic partial differential equation) approximation Gaussian random fields.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"","code":"sdmTMB( formula, data, mesh, time = NULL, family = gaussian(link = \"identity\"), spatial = c(\"on\", \"off\"), spatiotemporal = c(\"iid\", \"ar1\", \"rw\", \"off\"), share_range = TRUE, time_varying = NULL, time_varying_type = c(\"rw\", \"rw0\", \"ar1\"), spatial_varying = NULL, weights = NULL, offset = NULL, extra_time = NULL, reml = FALSE, silent = TRUE, anisotropy = FALSE, control = sdmTMBcontrol(), priors = sdmTMBpriors(), knots = NULL, bayesian = FALSE, previous_fit = NULL, do_fit = TRUE, do_index = FALSE, predict_args = NULL, index_args = NULL, experimental = NULL )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"formula Model formula. IID random intercepts possible using lme4 syntax, e.g., + (1 | g) g column class character factor representing groups. Penalized splines possible via mgcv s(). Optionally list delta (hurdle) models. See examples details . data data frame. mesh object make_mesh(). time optional time column name (character). Can left NULL model spatial random fields; however, data actually spatiotemporal wish use get_index() get_cog() downstream, supply time argument. family family link. Supports gaussian(), Gamma(), binomial(), poisson(), Beta(), nbinom2(), truncated_nbinom2(), nbinom1(), truncated_nbinom1(), censored_poisson(), gamma_mix(), lognormal_mix(), student(), tweedie(), gengamma(). Supports delta/hurdle models: delta_beta(), delta_gamma(), delta_gamma_mix(), delta_lognormal_mix(), delta_lognormal(), delta_truncated_nbinom2(), binomial family options, see 'Binomial families' Details section . spatial Estimate spatial random fields? Options '' / '' TRUE / FALSE. Optionally, list delta models, e.g. list('', ''). spatiotemporal Estimate spatiotemporal random fields 'iid' (independent identically distributed; default), stationary 'ar1' (first-order autoregressive), random walk ('rw'), fixed 0 ''. set '' time = NULL. delta model, can list. E.g., list('', 'ar1'). Note spatiotemporal standard deviation represents marginal steady-state standard deviation process case AR1. .e., scaled according correlation. See TMB documentation. AR1 correlation coefficient (rho) estimated close 1, say > 0.99, may wish switch random walk 'rw'. Capitalization ignored. TRUE gets converted 'iid' FALSE gets converted ''. share_range Logical: estimate shared spatial spatiotemporal range parameter (TRUE, default) independent range parameters (FALSE). delta model, can list. E.g., list(TRUE, FALSE). time_varying optional one-sided formula describing covariates modelled time-varying process. Set type process time_varying_type. See help time_varying_type warnings modelling first time step. Structure shared delta models. time_varying_type Type time-varying process apply time_varying formula. 'rw' indicates random walk first time step estimated independently (included legacy reasons), 'rw0' indicates random walk first time step estimated mean-zero normal prior, 'ar1' indicates stationary first-order autoregressive process first time step estimated mean-zero prior. case 'rw', careful include covariates (including intercept) main time-varying formula since first time step estimated independently. .e., case, least one ~ 0 ~ -1. Structure shared delta models. spatial_varying optional one-sided formula coefficients vary space random fields. Note likely want include fixed effect variable improve interpretability since random field assumed mean 0. (scaled) time column used, represent local-time-trend model. See doi:10.1111/ecog.05176 spatial trends vignette. Note predictor usually centered mean zero standard deviation approximately 1. spatial intercept controlled spatial argument; therefore, include exclude spatial intercept setting spatial = '' ''. time matters whether spatial_varying excludes intercept case factor predictors. case, spatial_varying excludes intercept (~ 0 ~ -1), set spatial = '' match. Structure must shared delta models. weights numeric vector representing optional likelihood weights conditional model. Implemented glmmTMB: weights sum one internally modified. Can also used trials binomial family; weights argument needs vector name variable data frame. See Details section . offset numeric vector representing model offset character value representing column name offset. delta/hurdle models, applies positive component. Usually log transformed variable. extra_time Optional extra time slices (e.g., years) include interpolation forecasting predict function. See Details section . reml Logical: use REML (restricted maximum likelihood) estimation rather maximum likelihood? Internally, adds fixed effects list random effects integrate . silent Silent include optimization details? Helpful set FALSE models take fit. anisotropy Logical: allow anisotropy (spatial correlation directionally dependent)? See plot_anisotropy(). Must shared across delta models. control Optimization control options via sdmTMBcontrol(). priors Optional penalties/priors via sdmTMBpriors(). Must currently shared across delta models. knots Optional named list containing knot values used basis construction smoothing terms. See mgcv::gam() mgcv::gamm(). E.g., s(x, bs = 'cc', k = 4), knots = list(x = c(1, 2, 3, 4)) bayesian Logical indicating model passed tmbstan. TRUE, Jacobian adjustments applied account parameter transformations priors applied. previous_fit previously fitted sdmTMB model initialize optimization . Can greatly speed fitting. Note model must set exactly way. However, data weights arguments can change, can useful cross-validation. do_fit Fit model (TRUE) return processed data without fitting (FALSE)? do_index index standardization calculations fitting? Saves memory time working large datasets projection grids since TMB object rebuilt predict.sdmTMB() get_index(). TRUE, predict_args must newdata element supplied area can supplied index_args. users can ignore option. fitted object can passed directly get_index(). predict_args list arguments pass predict.sdmTMB() do_index = TRUE. users can ignore option. index_args list arguments pass get_index() do_index = TRUE. Currently, area supported. Bias correction can done calling get_index() resulting fitted object. users can ignore option. experimental named list esoteric -development options. dragons.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"object (list) class sdmTMB. Useful elements include: sd_report: output TMB::sdreport() gradients: marginal log likelihood gradients respect fixed effect model: output stats::nlminb() data: fitted data mesh: object supplied mesh argument family: family object, includes inverse link function family$linkinv() tmb_params: parameters list passed TMB::MakeADFun() tmb_map: 'map' list passed TMB::MakeADFun() tmb_data: data list passed TMB::MakeADFun() tmb_obj: TMB object created TMB::MakeADFun()","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Model description See model description vignette relevant appendix preprint sdmTMB: doi:10.1101/2022.03.24.485545 Binomial families Following structure stats::glm() glmmTMB, binomial family can specified one 4 ways: (1) response may factor (model classifies first level versus others), (2) response may binomial (0/1), (3) response can matrix form cbind(success, failure), (4) response may observed proportions, 'weights' argument used specify Binomial size (N) parameter (prob ~ ..., weights = N). Smooth terms Smooth terms can included following GAMs (generalized additive models) using + s(x), implements smooth mgcv::s(). sdmTMB uses penalized smooths, constructed via mgcv::smooth2random(). similar approach implemented gamm4 brms, among packages. Within smooths, syntax commonly used mgcv::s() mgcv::t2() can applied, e.g. 2-dimensional smooths may constructed + s(x, y) + t2(x, y); smooths can specific various factor levels, + s(x, = group); basis function dimensions may specified, e.g. + s(x, k = 4); various types splines may constructed cyclic splines model seasonality (perhaps knots argument also supplied). Threshold models linear break-point relationship covariate can included via + breakpt(variable) formula, variable single covariate corresponding column data. case, relationship linear point constant (hockey-stick shaped). Similarly, logistic-function threshold model can included via + logistic(variable). option models relationship logistic function 50% 95% values. similar length- size-based selectivity fisheries, parameterized points f(x) = 0.5 0.95. See threshold vignette. Note single threshold covariate can included covariate included components delta families. Extra time: forecasting interpolating Extra time slices (e.g., years) can included interpolation forecasting predict function via extra_time argument. predict function requires time slices defined fitting model ensure various time indices set correctly. careful including extra time slices model remains identifiable. example, including + .factor(year) formula render model data inform expected value missing year. sdmTMB() makes attempt determine model makes sense forecasting interpolation. options time_varying, spatiotemporal = \"rw\", spatiotemporal = \"ar1\", smoother time column provide mechanisms predict missing time slices process error. extra_time can also used fill missing time steps purposes random walk AR(1) process gaps time steps uneven. extra_time can include extra time steps time steps including found fitted data. latter option may simpler. Regularization priors can achieve regularization via penalties (priors) fixed effect parameters. See sdmTMBpriors(). can fit model without penalties look output print(your_model) tidy(your_model) fit model do_fit = FALSE inspect head(your_model$tmb_data$X_ij[[1]]) want see formula translated fixed effect model matrix. Also see Bayesian vignette. Delta/hurdle models Delta models (also known hurdle models) can fit two separate models time using appropriate delta family. E.g.: delta_gamma(), delta_beta(), delta_lognormal(), delta_truncated_nbinom2(). fit delta family, default formula, spatial, spatiotemporal components shared. elements can specified independently two models using list format. include formula, spatial, spatiotemporal, share_range. first element list binomial component second element positive component (e.g., Gamma). elements must shared now (e.g., spatially varying coefficients, time-varying coefficients). Furthermore, currently limitations specifying two formulas list: two formulas smoothers, threshold effects, random intercepts. now, must specified single formula shared across two models. main advantage specifying models using delta family (compared fitting two separate models) (1) coding simplicity (2) calculation uncertainty derived quantities index abundance get_index() using generalized delta method within TMB. Also, selected parameters can shared across models. See delta-model vignette. Index standardization index standardization, may wish include 0 + .factor(year) (whatever time column called) formula. See basic example index standardization relevant package vignette. need specify time argument. See get_index().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"Main reference introducing package cite using sdmTMB: Anderson, S.C., E.J. Ward, P.. English, L..K. Barnett. 2022. sdmTMB: R package fast, flexible, user-friendly generalized linear mixed effects models spatial spatiotemporal random fields. bioRxiv 2022.03.24.485545; doi:10.1101/2022.03.24.485545 . Reference local trends: Barnett, L..K., E.J. Ward, S.C. Anderson. 2021. Improving estimates species distribution change incorporating local trends. Ecography. 44(3):427-439. doi:10.1111/ecog.05176 . explanation model application calculating climate velocities: English, P., E.J. Ward, C.N. Rooper, R.E. Forrest, L.. Rogers, K.L. Hunter, .M. Edwards, B.M. Connors, S.C. Anderson. 2021. Contrasting climate velocity impacts warm cool locations show effects marine warming worse already warmer temperate waters. Fish Fisheries. 23(1) 239-255. doi:10.1111/faf.12613 . Discussion illustration decision points fitting models: Commander, C.J.C., L..K. Barnett, E.J. Ward, S.C. Anderson, T.E. Essington. 2022. shadow model: small choices spatially explicit species distribution models affect predictions. PeerJ 10: e12783. doi:10.7717/peerj.12783 . Application description threshold/break-point models: Essington, T.E., S.C. Anderson, L..K. Barnett, H.M. Berger, S.. Siedlecki, E.J. Ward. 2022. Advancing statistical models reveal effect dissolved oxygen spatial distribution marine taxa using thresholds physiologically based index. Ecography. 2022: e06249 doi:10.1111/ecog.06249 . Application fish body condition: Lindmark, M., S.C. Anderson, M. Gogina, M. Casini. Evaluating drivers spatiotemporal individual condition bottom-associated marine fish. bioRxiv 2022.04.19.488709. doi:10.1101/2022.04.19.488709 . Several sections original TMB model code adapted VAST R package: Thorson, J.T. 2019. Guidance decisions using Vector Autoregressive Spatio-Temporal (VAST) package stock, ecosystem, habitat climate assessments. Fish. Res. 210:143–161. doi:10.1016/j.fishres.2018.10.013 . Code family R--TMB implementation, selected parameterizations observation likelihoods, general package structure inspiration, idea behind TMB prediction approach adapted glmmTMB R package: Brooks, M.E., K. Kristensen, K.J. van Benthem, . Magnusson, C.W. Berg, . Nielsen, H.J. Skaug, M. Maechler, B.M. Bolker. 2017. glmmTMB Balances Speed Flexibility Among Packages Zero-inflated Generalized Linear Mixed Modeling. R Journal, 9(2):378-400. doi:10.32614/rj-2017-066 . Implementation geometric anisotropy SPDE use random field GLMMs index standardization: Thorson, J.T., .O. Shelton, E.J. Ward, H.J. Skaug. 2015. Geostatistical delta-generalized linear mixed models improve precision estimated abundance indices West Coast groundfishes. ICES J. Mar. Sci. 72(5): 1297–1310. doi:10.1093/icesjms/fsu243 .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Fit a spatial or spatiotemporal GLMM with TMB — sdmTMB","text":"","code":"library(sdmTMB) # Build a mesh to implement the SPDE approach: mesh <- make_mesh(pcod_2011, c(\"X\", \"Y\"), cutoff = 20) # - this example uses a fairly coarse mesh so these examples run quickly # - 'cutoff' is the minimum distance between mesh vertices in units of the # x and y coordinates # - 'cutoff = 10' might make more sense in applied situations for this dataset # - or build any mesh in 'fmesher' and pass it to the 'mesh' argument in make_mesh()` # - the mesh is not needed if you will be turning off all # spatial/spatiotemporal random fields # Quick mesh plot: plot(mesh) # Fit a Tweedie spatial random field GLMM with a smoother for depth: fit <- sdmTMB( density ~ s(depth), data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.16 0.34 #> sdepth 1.94 3.13 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.07 #> #> Dispersion parameter: 13.68 #> Tweedie p: 1.58 #> Matérn range: 16.84 #> Spatial SD: 2.20 #> ML criterion at convergence: 2937.789 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Extract coefficients: tidy(fit, conf.int = TRUE) #> # A tibble: 1 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 2.16 0.340 1.50 2.83 tidy(fit, effects = \"ran_par\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 16.8 13.7 3.40 83.3 #> 2 phi 13.7 0.663 12.4 15.0 #> 3 sigma_O 2.20 1.23 0.735 6.59 #> 4 tweedie_p 1.58 0.0153 1.55 1.61 # Perform several 'sanity' checks: sanity(fit) #> ✔ Non-linear minimizer suggests successful convergence #> ✔ Hessian matrix is positive definite #> ✔ No extreme or very small eigenvalues detected #> ✔ No gradients with respect to fixed effects are >= 0.001 #> ✔ No fixed-effect standard errors are NA #> ✔ No standard errors look unreasonably large #> ✔ No sigma parameters are < 0.01 #> ✔ No sigma parameters are > 100 #> ✔ Range parameter doesn't look unreasonably large # Predict on the fitted data; see ?predict.sdmTMB p <- predict(fit) # Predict on new data: p <- predict(fit, newdata = qcs_grid) head(p) #> X Y depth depth_scaled depth_scaled2 est est_non_rf est_rf #> 1 456 5636 347.0834 1.5608122 2.43613479 -4.726638 -4.567385 -0.15925308 #> 2 458 5636 223.3348 0.5697699 0.32463771 2.342470 2.368314 -0.02584421 #> 3 460 5636 203.7408 0.3633693 0.13203724 3.087513 2.979948 0.10756466 #> 4 462 5636 183.2987 0.1257046 0.01580166 3.878560 3.637586 0.24097353 #> 5 464 5636 182.9998 0.1220368 0.01489297 4.020914 3.646532 0.37438240 #> 6 466 5636 186.3892 0.1632882 0.02666303 4.050895 3.543104 0.50779127 #> omega_s #> 1 -0.15925308 #> 2 -0.02584421 #> 3 0.10756466 #> 4 0.24097353 #> 5 0.37438240 #> 6 0.50779127 # \\donttest{ # Visualize the depth effect with ggeffects: ggeffects::ggpredict(fit, \"depth [all]\") |> plot() # Visualize depth effect with visreg: (see ?visreg_delta) visreg::visreg(fit, xvar = \"depth\") # link space; randomized quantile residuals visreg::visreg(fit, xvar = \"depth\", scale = \"response\") visreg::visreg(fit, xvar = \"depth\", scale = \"response\", gg = TRUE, rug = FALSE) # Add spatiotemporal random fields: fit <- sdmTMB( density ~ 0 + as.factor(year), time = \"year\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> as.factor(year)2011 2.76 0.36 #> as.factor(year)2013 3.10 0.35 #> as.factor(year)2015 3.21 0.35 #> as.factor(year)2017 2.47 0.36 #> #> Dispersion parameter: 14.83 #> Tweedie p: 1.57 #> Matérn range: 13.31 #> Spatial SD: 3.16 #> Spatiotemporal IID SD: 1.79 #> ML criterion at convergence: 3007.552 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Make the fields AR1: fit <- sdmTMB( density ~ s(depth), time = \"year\", spatial = \"off\", spatiotemporal = \"ar1\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.84 0.33 #> sdepth 1.96 3.27 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.6 #> #> Dispersion parameter: 12.84 #> Tweedie p: 1.55 #> Spatiotemporal AR1 correlation (rho): 0.67 #> Matérn range: 12.22 #> Spatiotemporal marginal AR1 SD: 3.28 #> ML criterion at convergence: 2914.393 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Make the fields a random walk: fit <- sdmTMB( density ~ s(depth), time = \"year\", spatial = \"off\", spatiotemporal = \"rw\", #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.95 0.34 #> sdepth 1.96 3.18 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 13.22 #> #> Dispersion parameter: 12.84 #> Tweedie p: 1.56 #> Matérn range: 14.66 #> Spatiotemporal RW SD: 2.17 #> ML criterion at convergence: 2919.181 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Depth smoothers by year: fit <- sdmTMB( density ~ s(depth, by = as.factor(year)), #< time = \"year\", spatial = \"off\", spatiotemporal = \"rw\", data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth, by = as.factor(year)) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 1.76 0.34 #> sdepth):as.factor(year)2011 0.07 4.02 #> sdepth):as.factor(year)2013 4.59 3.28 #> sdepth):as.factor(year)2015 5.97 6.01 #> sdepth):as.factor(year)2017 -1.97 3.22 #> #> Smooth terms: #> Std. Dev. #> sds(depth):as.factor(year)2011) 16.62 #> sds(depth):as.factor(year)2013) 13.57 #> sds(depth):as.factor(year)2015) 28.24 #> sds(depth):as.factor(year)2017) 18.65 #> #> Dispersion parameter: 12.70 #> Tweedie p: 1.55 #> Matérn range: 8.62 #> Spatiotemporal RW SD: 3.14 #> ML criterion at convergence: 2924.193 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # 2D depth-year smoother: fit <- sdmTMB( density ~ s(depth, year), #< spatial = \"off\", data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth, year) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.55 0.24 #> sdepthyear_1 -0.15 0.09 #> sdepthyear_2 -2.93 2.07 #> #> Smooth terms: #> Std. Dev. #> sds(depth,year) 6.08 #> #> Dispersion parameter: 14.95 #> Tweedie p: 1.60 #> ML criterion at convergence: 2974.143 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Turn off spatial random fields: fit <- sdmTMB( present ~ poly(log(depth)), spatial = \"off\", #< data = pcod_2011, mesh = mesh, family = binomial() ) fit #> Model fit by ML ['sdmTMB'] #> Formula: present ~ poly(log(depth)) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: binomial(link = 'logit') #> #> coef.est coef.se #> (Intercept) -0.16 0.07 #> poly(log(depth)) -13.19 2.14 #> #> ML criterion at convergence: 648.334 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Which, matches glm(): fit_glm <- glm( present ~ poly(log(depth)), data = pcod_2011, family = binomial() ) summary(fit_glm) #> #> Call: #> glm(formula = present ~ poly(log(depth)), family = binomial(), #> data = pcod_2011) #> #> Coefficients: #> Estimate Std. Error z value Pr(>|z|) #> (Intercept) -0.16433 0.06583 -2.496 0.0126 * #> poly(log(depth)) -13.18981 2.14179 -6.158 7.35e-10 *** #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 #> #> (Dispersion parameter for binomial family taken to be 1) #> #> Null deviance: 1337.2 on 968 degrees of freedom #> Residual deviance: 1296.7 on 967 degrees of freedom #> AIC: 1300.7 #> #> Number of Fisher Scoring iterations: 4 #> AIC(fit, fit_glm) #> df AIC #> fit 2 1300.668 #> fit_glm 2 1300.668 # Delta/hurdle binomial-Gamma model: fit_dg <- sdmTMB( density ~ poly(log(depth), 2), data = pcod_2011, mesh = mesh, spatial = \"off\", family = delta_gamma() #< ) fit_dg #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(log(depth), 2) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(log(depth), 2)1 -23.06 3.15 #> poly(log(depth), 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(log(depth), 2)1 -5.49 3.50 #> poly(log(depth), 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Delta model with different formulas and spatial structure: fit_dg <- sdmTMB( list(density ~ depth_scaled, density ~ poly(depth_scaled, 2)), #< data = pcod_2011, mesh = mesh, spatial = list(\"off\", \"on\"), #< family = delta_gamma() ) fit_dg #> Spatial model fit by ML ['sdmTMB'] #> Formula: list(density ~ depth_scaled, density ~ poly(depth_scaled, 2)) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.17 0.07 #> depth_scaled -0.43 0.07 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.08 0.14 #> poly(depth_scaled, 2)1 -6.15 4.52 #> poly(depth_scaled, 2)2 -12.58 4.14 #> #> Dispersion parameter: 0.72 #> Matérn range: 0.01 #> Spatial SD: 2149.14 #> #> ML criterion at convergence: 3034.512 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** # Delta/hurdle truncated NB2: pcod_2011$count <- round(pcod_2011$density) fit_nb2 <- sdmTMB( count ~ s(depth), data = pcod_2011, mesh = mesh, spatial = \"off\", family = delta_truncated_nbinom2() #< ) fit_nb2 #> Model fit by ML ['sdmTMB'] #> Formula: count ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: delta_truncated_nbinom2(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.69 0.21 #> sdepth 0.29 2.37 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 9.6 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: truncated_nbinom2(link = 'log') #> coef.est coef.se #> (Intercept) 4.18 0.22 #> sdepth -0.37 1.77 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 6.73 #> #> Dispersion parameter: 0.49 #> #> ML criterion at convergence: 2915.733 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Regular NB2: fit_nb2 <- sdmTMB( count ~ s(depth), data = pcod_2011, mesh = mesh, spatial = \"off\", family = nbinom2() #< ) fit_nb2 #> Model fit by ML ['sdmTMB'] #> Formula: count ~ s(depth) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: nbinom2(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.49 0.27 #> sdepth 3.61 3.96 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 16.4 #> #> Dispersion parameter: 0.14 #> ML criterion at convergence: 3006.939 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # IID random intercepts by year: pcod_2011$fyear <- as.factor(pcod_2011$year) fit <- sdmTMB( density ~ s(depth) + (1 | fyear), #< data = pcod_2011, mesh = mesh, family = tweedie(link = \"log\") ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ s(depth) + (1 | fyear) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.13 0.37 #> sdepth 1.82 2.99 #> #> Smooth terms: #> Std. Dev. #> sds(depth) 12.51 #> #> Random intercepts: #> Std. Dev. #> fyear 0.3 #> #> Dispersion parameter: 13.55 #> Tweedie p: 1.58 #> Matérn range: 16.66 #> Spatial SD: 2.21 #> ML criterion at convergence: 2933.138 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Spatially varying coefficient of year: pcod_2011$year_scaled <- as.numeric(scale(pcod_2011$year)) fit <- sdmTMB( density ~ year_scaled, spatial_varying = ~ 0 + year_scaled, #< data = pcod_2011, mesh = mesh, family = tweedie(), time = \"year\" ) fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ year_scaled #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 2.86 0.33 #> year_scaled -0.06 0.15 #> #> Dispersion parameter: 14.79 #> Tweedie p: 1.56 #> Matérn range: 20.56 #> Spatial SD: 2.38 #> Spatially varying coefficient SD (year_scaled): 0.81 #> Spatiotemporal IID SD: 1.11 #> ML criterion at convergence: 3008.886 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # Time-varying effects of depth and depth squared: fit <- sdmTMB( density ~ 0 + as.factor(year), time_varying = ~ 0 + depth_scaled + depth_scaled2, #< data = pcod_2011, time = \"year\", mesh = mesh, family = tweedie() ) print(fit) #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + as.factor(year) #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> as.factor(year)2011 3.73 0.30 #> as.factor(year)2013 3.64 0.28 #> as.factor(year)2015 4.00 0.29 #> as.factor(year)2017 3.31 0.32 #> #> Time-varying parameters: #> coef.est coef.se #> depth_scaled-2011 -0.87 0.16 #> depth_scaled-2013 -0.81 0.13 #> depth_scaled-2015 -0.75 0.13 #> depth_scaled-2017 -1.11 0.23 #> depth_scaled2-2011 -1.92 0.29 #> depth_scaled2-2013 -0.92 0.14 #> depth_scaled2-2015 -1.59 0.22 #> depth_scaled2-2017 -2.20 0.35 #> #> Dispersion parameter: 12.80 #> Tweedie p: 1.56 #> Matérn range: 0.01 #> Spatial SD: 2573.85 #> Spatiotemporal IID SD: 2088.69 #> ML criterion at convergence: 2911.371 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** # Extract values: est <- as.list(fit$sd_report, \"Estimate\") se <- as.list(fit$sd_report, \"Std. Error\") est$b_rw_t[, , 1] #> [,1] [,2] #> [1,] -0.8738038 -1.9199722 #> [2,] -0.8115162 -0.9195934 #> [3,] -0.7514766 -1.5858307 #> [4,] -1.1064060 -2.1992575 se$b_rw_t[, , 1] #> [,1] [,2] #> [1,] 0.1619744 0.2944087 #> [2,] 0.1287059 0.1386946 #> [3,] 0.1346182 0.2197914 #> [4,] 0.2305927 0.3514650 # Linear break-point effect of depth: fit <- sdmTMB( density ~ breakpt(depth_scaled), #< data = pcod_2011, mesh = mesh, family = tweedie() ) fit #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ breakpt(depth_scaled) #> Mesh: mesh (isotropic covariance) #> Data: pcod_2011 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> (Intercept) 4.11 0.33 #> depth_scaled-slope 1.07 0.22 #> depth_scaled-breakpt -1.30 0.25 #> #> Dispersion parameter: 15.19 #> Tweedie p: 1.58 #> Matérn range: 23.57 #> Spatial SD: 1.92 #> ML criterion at convergence: 2997.241 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":null,"dir":"Reference","previous_headings":"","what":"Cross validation with sdmTMB models — sdmTMB_cv","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"Facilitates cross validation sdmTMB models. Returns log likelihood left-data, similar spirit ELPD (expected log pointwise predictive density). function option leave-future-cross validation. default, function creates folds randomly folds can manually assigned via fold_ids argument.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"","code":"sdmTMB_cv( formula, data, mesh_args, mesh = NULL, time = NULL, k_folds = 8, fold_ids = NULL, lfo = FALSE, lfo_forecast = 1, lfo_validations = 5, parallel = TRUE, use_initial_fit = FALSE, future_globals = NULL, spde = deprecated(), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"formula Model formula. data data frame. mesh_args Arguments make_mesh(). supplied, mesh reconstructed fold. mesh Output make_mesh(). supplied, mesh constant across folds. time name time column. Leave NULL spatial data. k_folds Number folds. fold_ids Optional vector containing user fold IDs. Can also single string, e.g. \"fold_id\" representing name variable data. Ignored lfo TRUE lfo Whether implement leave-future-(LFO) cross validation data used predict future folds. time argument sdmTMB() must specified. See Details section . lfo_forecast lfo = TRUE, number time steps forecast. Time steps 1, ..., T used predict T + lfo_forecast last forecasted time step used validation. See Details section . lfo_validations lfo = TRUE, number times step LFOCV process. Defaults 5. See Details section . parallel TRUE future::plan() supplied, run parallel. use_initial_fit Fit first fold use parameter values starting values subsequent folds? Can faster many folds. future_globals character vector global variables used within arguments error returned future.apply find object. vector appended TRUE passed argument future.globals future.apply::future_lapply(). Useful global objects used specify arguments like priors, families, etc. spde Depreciated. Use mesh instead. ... arguments required run sdmTMB() model exception weights, used define folds.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"list: data: Original data plus columns fold ID, CV predicted value, CV log likelihood. models: list models; one per fold. fold_loglik: Sum left-log likelihoods per fold. positive values better. sum_loglik: Sum fold_loglik across left-data. positive values better. pdHess: Logical vector: Hessian invertible fold? converged: Logical: pdHess TRUE? max_gradients: Max gradient per fold. Prior sdmTMB version '0.3.0.9002', elpd incorrectly returned log average likelihood, another metric compare models , ELPD. maximum likelihood, ELPD equivalent spirit sum log likelihoods.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"Parallel processing Parallel processing can used setting future::plan(). example: Leave-future-cross validation (LFOCV) example LFOCV 9 time steps, lfo_forecast = 1, lfo_validations = 2: Fit data time steps 1 7, predict validate step 8. Fit data time steps 1 8, predict validate step 9. example LFOCV 9 time steps, lfo_forecast = 2, lfo_validations = 3: Fit data time steps 1 5, predict validate step 7. Fit data time steps 1 6, predict validate step 8. Fit data time steps 1 7, predict validate step 9. See example .","code":"library(future) plan(multisession) # now use sdmTMB_cv() ..."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_cv.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Cross validation with sdmTMB models — sdmTMB_cv","text":"","code":"mesh <- make_mesh(pcod, c(\"X\", \"Y\"), cutoff = 25) # Set parallel processing first if desired with the future package. # See the Details section above. m_cv <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. m_cv$fold_loglik #> [1] -3351.292 -3298.167 m_cv$sum_loglik #> [1] -6649.459 head(m_cv$data) #> # A tibble: 6 × 15 #> year X Y depth density present lat lon depth_mean depth_sd #> #> 1 2003 446. 5793. 201 113. 1 52.3 -130. 5.16 0.445 #> 2 2003 446. 5800. 212 41.7 1 52.3 -130. 5.16 0.445 #> 3 2003 449. 5802. 220 0 0 52.4 -130. 5.16 0.445 #> 4 2003 437. 5802. 197 15.7 1 52.4 -130. 5.16 0.445 #> 5 2003 421. 5771. 256 0 0 52.1 -130. 5.16 0.445 #> 6 2003 418. 5772. 293 0 0 52.1 -130. 5.16 0.445 #> # ℹ 5 more variables: depth_scaled , depth_scaled2 , cv_fold , #> # cv_predicted , cv_loglik m_cv$models[[1]] #> Spatial model fit by ML ['sdmTMB'] #> Formula: density ~ 0 + depth_scaled + depth_scaled2 #> Family: tweedie(link = 'log') #> #> coef.est coef.se #> depth_scaled -2.07 0.23 #> depth_scaled2 -1.57 0.14 #> #> Dispersion parameter: 14.61 #> Tweedie p: 1.64 #> Matérn range: 100.81 #> Spatial SD: 3.11 #> ML criterion at convergence: 3191.001 #> #> See ?tidy.sdmTMB to extract these values as a data frame. m_cv$max_gradients #> [1] 2.788299e-08 6.945591e-10 # \\donttest{ # Create mesh each fold: m_cv2 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh_args = list(xy_cols = c(\"X\", \"Y\"), cutoff = 20), family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Use fold_ids: m_cv3 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod, mesh = mesh, family = tweedie(link = \"log\"), fold_ids = rep(seq(1, 3), nrow(pcod))[seq(1, nrow(pcod))] ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"sdmTMB_simulate() uses TMB simulate new data given specified parameter values. simulate.sdmTMB(), hand, takes existing model fit simulates new observations optionally new random effects.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"","code":"sdmTMB_simulate( formula, data, mesh, family = gaussian(link = \"identity\"), time = NULL, B = NULL, range = NULL, rho = NULL, sigma_O = NULL, sigma_E = NULL, sigma_Z = NULL, phi = NULL, tweedie_p = NULL, df = NULL, threshold_coefs = NULL, fixed_re = list(omega_s = NULL, epsilon_st = NULL, zeta_s = NULL), previous_fit = NULL, seed = sample.int(1e+06, 1), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"formula one-sided formula describing fixed-effect structure. Random intercepts (yet) supported. Fixed effects match corresponding B argument vector coefficient values. data data frame containing predictors described formula time column time specified. mesh Output make_mesh(). family Family sdmTMB(). Delta families supported. Instead, simulate two component models separately combine. time time column name. B vector beta values (fixed-effect coefficient values). range Parameter controls decay spatial correlation. vector length 2, share_range set FALSE spatial spatiotemporal ranges unique. rho Spatiotemporal correlation years; -1 1. sigma_O SD spatial process (Omega). sigma_E SD spatiotemporal process (Epsilon). sigma_Z SD spatially varying coefficient field (Zeta). phi Observation error scale parameter (e.g., SD Gaussian). tweedie_p Tweedie p (power) parameter; 1 2. df Student-t degrees freedom. threshold_coefs optional vector threshold coefficient values formula includes breakpt() logistic(). breakpt(), slope cut values. logistic(), threshold function 50% maximum, threshold function 95% maximum, maximum. See model description vignette details. fixed_re list optional random effects fix specified (e.g., previously estimated) values. Values NULL result random effects simulated. previous_fit (Deprecated; please use simulate.sdmTMB()). optional previous sdmTMB() fit pull parameter values. -ruled non-NULL specified parameter arguments. seed Seed number. ... arguments pass sdmTMB().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"data frame : 1st column time variable (present). 2nd 3rd columns spatial coordinates. omega_s represents simulated spatial random effects (present). zeta_s represents simulated spatial varying covariate field (present). epsilon_st represents simulated spatiotemporal random effects (present). eta true value link space mu true value inverse link space. observed represents simulated process observation error. remaining columns fixed-effect model matrix.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_simulate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate from a spatial/spatiotemporal model — sdmTMB_simulate","text":"","code":"set.seed(123) # make fake predictor(s) (a1) and sampling locations: predictor_dat <- data.frame( X = runif(300), Y = runif(300), a1 = rnorm(300), year = rep(1:6, each = 50) ) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) sim_dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, time = \"year\", mesh = mesh, family = gaussian(), range = 0.5, sigma_E = 0.1, phi = 0.1, sigma_O = 0.2, seed = 42, B = c(0.2, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. head(sim_dat) #> year X Y omega_s epsilon_st mu eta #> 1 1 0.2875775 0.784575267 -0.02131861 -0.02779393 0.4369843 0.4369843 #> 2 1 0.7883051 0.009429905 0.28852319 0.09092583 0.8805246 0.8805246 #> 3 1 0.4089769 0.779065883 0.13541643 -0.08468148 0.6261504 0.6261504 #> 4 1 0.8830174 0.729390652 0.28597232 -0.01660011 0.8903775 0.8903775 #> 5 1 0.9404673 0.630131853 0.21070545 0.02005202 0.6056213 0.6056213 #> 6 1 0.0455565 0.480910830 -0.08071932 -0.11409909 -0.1272901 -0.1272901 #> observed (Intercept) a1 #> 1 0.4176273 1 -0.7152422 #> 2 0.8802910 1 -0.7526890 #> 3 0.6248675 1 -0.9385387 #> 4 0.9055722 1 -1.0525133 #> 5 0.6654724 1 -0.4371595 #> 6 -0.1399113 1 0.3311792 if (require(\"ggplot2\", quietly = TRUE)) { ggplot(sim_dat, aes(X, Y, colour = observed)) + geom_point() + facet_wrap(~year) + scale_color_gradient2() } # fit to the simulated data: fit <- sdmTMB(observed ~ a1, data = sim_dat, mesh = mesh, time = \"year\") fit #> Spatiotemporal model fit by ML ['sdmTMB'] #> Formula: observed ~ a1 #> Mesh: mesh (isotropic covariance) #> Time column: year #> Data: sim_dat #> Family: gaussian(link = 'identity') #> #> coef.est coef.se #> (Intercept) 0.23 0.09 #> a1 -0.39 0.01 #> #> Dispersion parameter: 0.09 #> Matérn range: 0.40 #> Spatial SD: 0.21 #> Spatiotemporal IID SD: 0.11 #> ML criterion at convergence: -162.527 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":null,"dir":"Reference","previous_headings":"","what":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"approach described Yao et al. (2018) doi:10.1214/17-BA1091 . general method minimizes (maximizes) quantity across models. simple models normal error, may root mean squared error (RMSE), approaches include log score. adopt latter , log scores used generate stacking predictive distributions","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"","code":"sdmTMB_stacking(model_list, include_folds = NULL)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"model_list list models fit sdmTMB_cv() generate estimates predictive densities. want set seed value fitting model manually construct fold IDs across models. include_folds optional numeric vector specifying folds include calculations. example, 5 folds used k-fold cross validation, first 4 needed generate weights, include_folds = 1:4.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"vector model weights.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"Yao, Y., Vehtari, ., Simpson, D., Gelman, . 2018. Using Stacking Average Bayesian Predictive Distributions (Discussion). Bayesian Analysis 13(3): 917–1007. International Society Bayesian Analysis. doi:10.1214/17-BA1091","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMB_stacking.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Perform stacking with log scores on sdmTMB_cv() output — sdmTMB_stacking","text":"","code":"# \\donttest{ # Set parallel processing if desired. See 'Details' in ?sdmTMB_cv # Depth as quadratic: set.seed(1) m_cv_1 <- sdmTMB_cv( density ~ 0 + depth_scaled + depth_scaled2, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Depth as linear: set.seed(1) m_cv_2 <- sdmTMB_cv( density ~ 0 + depth_scaled, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. # Only an intercept: set.seed(1) m_cv_3 <- sdmTMB_cv( density ~ 1, data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie(link = \"log\"), k_folds = 2 ) #> Running fits with `future.apply()`. #> Set a parallel `future::plan()` to use parallel processing. models <- list(m_cv_1, m_cv_2, m_cv_3) weights <- sdmTMB_stacking(models) weights #> [1] 0.9038042 0.0182349 0.0779609 # }"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":null,"dir":"Reference","previous_headings":"","what":"Optimization control options — sdmTMBcontrol","title":"Optimization control options — sdmTMBcontrol","text":"sdmTMB() stats::nlminb() control options.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Optimization control options — sdmTMBcontrol","text":"","code":"sdmTMBcontrol( eval.max = 2000L, iter.max = 1000L, normalize = FALSE, nlminb_loops = 1L, newton_loops = 1L, mgcv = deprecated(), quadratic_roots = FALSE, start = NULL, map_rf = deprecated(), map = NULL, lower = NULL, upper = NULL, censored_upper = NULL, multiphase = TRUE, profile = FALSE, get_joint_precision = TRUE, parallel = getOption(\"sdmTMB.cores\", 1L), ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Optimization control options — sdmTMBcontrol","text":"eval.max Maximum number evaluations objective function allowed. iter.max Maximum number iterations allowed. normalize Logical: use TMB::normalize() normalize process likelihood using Laplace approximation? Can result substantial speed boost cases. used default FALSE prior May 2021. Currently working models fit REML random intercepts. nlminb_loops many times run stats::nlminb() optimization. Sometimes restarting optimizer previous best values aids convergence. maximum gradient still large, try increasing 2. newton_loops many Newton optimization steps try running stats::nlminb(). sometimes aids convergence reducing log-likelihood gradient respect fixed effects. calculates Hessian current MLE stats::optimHess() using finite-difference approach uses update fixed effect estimates. mgcv Deprecated Parse formula mgcv::gam()? quadratic_roots Experimental feature internal use right now; may moved branch. Logical: quadratic roots calculated? Note: sdmTMB side, first two coefficients used generate quadratic parameters. means want generate quadratic profile depth, depth depth^2 part formula, need make sure listed first intercept included. example, formula = cpue ~ 0 + depth + depth2 + .factor(year). start named list specifying starting values parameters. can see necessary structure fitting model inspecting your_model$tmb_obj$env$parList(). Elements start specified replace default starting values. map_rf Deprecated use spatial = '', spatiotemporal = '' sdmTMB(). map named list factor NAs specifying parameter values fixed constant value. See documentation TMB::MakeADFun(). usually used start specify fixed value. lower optional named list lower bounds within optimization. Parameter vectors name (e.g., b_j ln_kappa cases) can specified numeric vector. E.g. lower = list(b_j = c(-5, -5)). upper optional named list upper bounds within optimization. censored_upper optional vector upper bounds sdmTMBcontrol(). Values NA indicate unbounded right-censored distribution, values greater observation indicate upper bound, values equal observation indicate censoring. multiphase Logical: estimate fixed random effects phases? Phases usually faster stable. profile Logical: population-level/fixed effects profiled likelihood? appended random effects vector without Laplace approximation. See TMB::MakeADFun(). can dramatically speed model fit many fixed effects experimental stage. get_joint_precision Logical. Passed getJointPrecision TMB::sdreport(). Must TRUE use simulation-based methods predict.sdmTMB() [get_index_sims()]. needed, setting FALSE reduce object size. parallel Argument currently ignored. parallel processing 3 cores, example, use TMB::openmp(n = 3, DLL = \"sdmTMB\"). careful, always faster cores definitely upper limit. ... Anything else. See 'Control parameters' section stats::nlminb().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Optimization control options — sdmTMBcontrol","text":"list control arguments","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Optimization control options — sdmTMBcontrol","text":"Usually used within sdmTMB(). example:","code":"sdmTMB(..., control = sdmTMBcontrol(newton_loops = 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/sdmTMBcontrol.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Optimization control options — sdmTMBcontrol","text":"","code":"sdmTMBcontrol() #> $eval.max #> [1] 2000 #> #> $iter.max #> [1] 1000 #> #> $normalize #> [1] FALSE #> #> $nlminb_loops #> [1] 1 #> #> $newton_loops #> [1] 1 #> #> $profile #> [1] FALSE #> #> $quadratic_roots #> [1] FALSE #> #> $start #> NULL #> #> $map #> NULL #> #> $lower #> NULL #> #> $upper #> NULL #> #> $censored_upper #> NULL #> #> $multiphase #> [1] TRUE #> #> $parallel #> [1] 1 #> #> $get_joint_precision #> [1] TRUE #>"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":null,"dir":"Reference","previous_headings":"","what":"Set delta model for ggeffects::ggpredict() — set_delta_model","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"Set delta model component predict ggeffects::ggpredict().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"","code":"set_delta_model(x, model = c(NA, 1, 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"x sdmTMB() model fit delta family delta_gamma(). model delta/hurdle model component predict/plot . NA combined prediction, 1 binomial part, 2 positive part.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"fitted model new attribute named delta_model_predict. suggest use set_delta_model() pipe (examples) attribute persist. Otherwise, predict.sdmTMB() choose model component default. can also remove attribute :","code":"attr(fit, \"delta_model_predict\") <- NULL"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"complete version examples : run CRAN version ggeffects > 1.3.2 CRAN. now, can install GitHub version ggeffects. https://github.com/strengejacke/ggeffects.","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2), data = pcod_2011, spatial = \"off\", family = delta_gamma()) # binomial part: set_delta_model(fit, model = 1) |> ggeffects::ggpredict(\"depth_scaled [all]\") # gamma part: set_delta_model(fit, model = 2) |> ggeffects::ggpredict(\"depth_scaled [all]\") # combined: set_delta_model(fit, model = NA) |> ggeffects::ggpredict(\"depth_scaled [all]\")"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/set_delta_model.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Set delta model for ggeffects::ggpredict() — set_delta_model","text":"","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2), data = pcod_2011, spatial = \"off\", family = delta_gamma()) # binomial part: set_delta_model(fit, model = 1) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # gamma part: set_delta_model(fit, model = 2) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame. # combined: set_delta_model(fit, model = NA) #> Model fit by ML ['sdmTMB'] #> Formula: density ~ poly(depth_scaled, 2) #> Mesh: NULL (isotropic covariance) #> Data: pcod_2011 #> Family: delta_gamma(link1 = 'logit', link2 = 'log') #> #> Delta/hurdle model 1: ----------------------------------- #> Family: binomial(link = 'logit') #> coef.est coef.se #> (Intercept) -0.48 0.09 #> poly(depth_scaled, 2)1 -23.06 3.15 #> poly(depth_scaled, 2)2 -48.79 4.45 #> #> #> Delta/hurdle model 2: ----------------------------------- #> Family: Gamma(link = 'log') #> coef.est coef.se #> (Intercept) 4.24 0.08 #> poly(depth_scaled, 2)1 -5.49 3.50 #> poly(depth_scaled, 2)2 -13.26 3.23 #> #> Dispersion parameter: 0.64 #> #> ML criterion at convergence: 2936.579 #> #> See ?tidy.sdmTMB to extract these values as a data frame."},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"simulate.sdmTMB S3 method producing matrix simulations fitted model. similar lme4::simulate.merMod() glmmTMB::simulate.glmmTMB(). can used DHARMa package among uses.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"","code":"# S3 method for sdmTMB simulate( object, nsim = 1L, seed = sample.int(1e+06, 1L), type = c(\"mle-eb\", \"mle-mvn\"), model = c(NA, 1, 2), re_form = NULL, mcmc_samples = NULL, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"object sdmTMB model nsim Number response lists simulate. Defaults 1. seed Random number seed type parameters treated. \"mle-eb\": fixed effects maximum likelihood (MLE) estimates random effects empirical Bayes (EB) estimates. \"mle-mvn\": fixed effects MLEs random effects taken single approximate sample. latter option suggested approach simulations used goodness fit testing (e.g., DHARMa package). model delta/hurdle model, model simulate ? NA = combined, 1 = first model, 2 = second mdoel. re_form NULL specify simulation conditional fitted random effects (simulates observation error). ~0 NA simulate new random affects (smoothers, internally random effects, simulated new). mcmc_samples optional matrix MCMC samples. See extract_mcmc() sdmTMBextra package. ... Extra arguments (used)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"Returns matrix; number columns nsim.","code":""},{"path":[]},{"path":"https://pbs-assess.github.io/sdmTMB/reference/simulate.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate from a fitted sdmTMB model — simulate.sdmTMB","text":"","code":"# start with some data simulated from scratch: set.seed(1) predictor_dat <- data.frame(X = runif(300), Y = runif(300), a1 = rnorm(300)) mesh <- make_mesh(predictor_dat, xy_cols = c(\"X\", \"Y\"), cutoff = 0.1) dat <- sdmTMB_simulate( formula = ~ 1 + a1, data = predictor_dat, mesh = mesh, family = poisson(), range = 0.5, sigma_O = 0.2, seed = 42, B = c(0.2, -0.4) # B0 = intercept, B1 = a1 slope ) #> The `seed` argument may be deprecated in the future. #> We recommend instead setting the seed manually with `set.seed()` prior to #> calling `sdmTMB_simulate()`. #> We have encountered some situations where setting the seed via this argument #> does not have the intended effect. fit <- sdmTMB(observed ~ 1 + a1, data = dat, family = poisson(), mesh = mesh) # simulate from the model: s1 <- simulate(fit, nsim = 300) dim(s1) #> [1] 300 300 # test whether fitted models are consistent with the observed number of zeros: sum(s1 == 0)/length(s1) #> [1] 0.3297667 sum(dat$observed == 0) / length(dat$observed) #> [1] 0.3466667 # simulate with random effects sampled from their approximate posterior s2 <- simulate(fit, nsim = 1, params = \"mle-mvn\") # these may be useful in conjunction with DHARMa simulation-based residuals # simulate with new random fields: s3 <- simulate(fit, nsim = 1, re_form = ~ 0)"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":null,"dir":"Reference","previous_headings":"","what":"Example fish survey data — pcod","title":"Example fish survey data — pcod","text":"Various fish survey datasets.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Example fish survey data — pcod","text":"","code":"pcod pcod_2011 pcod_mesh_2011 qcs_grid dogfish yelloweye hbll_s_grid wcvi_grid"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/surveydata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Example fish survey data — pcod","text":"pcod: Trawl survey data Pacific Cod Queen Charlotte Sound. data frame. pcod_2011: version pcod years 2011 (smaller speed). data frame. pcod_mesh_2011: mesh pre-built pcod_2011 examples. list class sdmTMBmesh. qcs_grid 2x2km prediction grid Queen Charlotte Sound. data frame. dogfish: Trawl survey data Pacific Spiny Dogfish West Coast Vancouver Island. data frame. yelloweye: Survey data Yelloweye Rockfish Hard Bottom Longline Survey (South) West Coast Vancouver Island. hbll_s_grid: survey domain grid go yelloweye. data frame. wcvi_grid: survey domain grid go dogfish. data frame.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":null,"dir":"Reference","previous_headings":"","what":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"Turn sdmTMB model output tidy data frame","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"","code":"# S3 method for sdmTMB tidy( x, effects = c(\"fixed\", \"ran_pars\", \"ran_vals\"), model = 1, conf.int = FALSE, conf.level = 0.95, exponentiate = FALSE, silent = FALSE, ... )"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"x Output sdmTMB(). effects character value. One \"fixed\" ('fixed' main-effect parameters), \"ran_pars\" (standard deviations, spatial range, random effect dispersion-related terms), \"ran_vals\" (individual random intercepts, included; behaves like ranef()). model model tidy delta model (1 2). conf.int Include confidence interval? conf.level Confidence level CI. exponentiate Whether exponentiate fixed-effect coefficient estimates confidence intervals. silent Omit messages? ... Extra arguments (used).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"data frame","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"Follows conventions broom broom.mixed packages. Currently, effects = \"ran_pars\" also includes dispersion-related terms (e.g., phi), actually associated random effects. Standard errors spatial variance terms fit log space (e.g., variance terms, range, parameters associated observation error) omitted avoid confusion. Confidence intervals still available.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/tidy.sdmTMB.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Turn sdmTMB model output into a tidy data frame — tidy.sdmTMB","text":"","code":"fit <- sdmTMB(density ~ poly(depth_scaled, 2, raw = TRUE), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie() ) tidy(fit) #> # A tibble: 3 × 3 #> term estimate std.error #> #> 1 (Intercept) 3.65 0.281 #> 2 poly(depth_scaled, 2, raw = TRUE)1 -1.54 0.186 #> 3 poly(depth_scaled, 2, raw = TRUE)2 -1.11 0.101 tidy(fit, conf.int = TRUE) #> # A tibble: 3 × 5 #> term estimate std.error conf.low conf.high #> #> 1 (Intercept) 3.65 0.281 3.10 4.20 #> 2 poly(depth_scaled, 2, raw = TRUE)1 -1.54 0.186 -1.90 -1.17 #> 3 poly(depth_scaled, 2, raw = TRUE)2 -1.11 0.101 -1.31 -0.913 tidy(fit, \"ran_pars\", conf.int = TRUE) #> # A tibble: 4 × 5 #> term estimate std.error conf.low conf.high #> #> 1 range 19.1 14.0 4.58 80.0 #> 2 phi 14.0 0.677 12.8 15.4 #> 3 sigma_O 2.14 0.941 0.906 5.07 #> 4 tweedie_p 1.58 0.0153 1.55 1.61 pcod_2011$fyear <- as.factor(pcod_2011$year) fit <- sdmTMB(density ~ poly(depth_scaled, 2, raw = TRUE) + (1 | fyear), data = pcod_2011, mesh = pcod_mesh_2011, family = tweedie() ) tidy(fit, \"ran_vals\") #> # A tibble: 4 × 3 #> term estimate std.error #> #> 1 fyear_2011 0.0163 0.187 #> 2 fyear_2013 0.177 0.188 #> 3 fyear_2015 0.232 0.189 #> 4 fyear_2017 -0.431 0.205"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot sdmTMB models with the visreg package — visreg_delta","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"sdmTMB models fit regular (non-delta) families can passed visreg::visreg() visreg::visreg2d() directly. Examples shown . Delta models can use helper functions visreg_delta() visreg2d_delta() described .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"","code":"visreg_delta(object, ..., model = c(1, 2)) visreg2d_delta(object, ..., model = c(1, 2))"},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"object Fit sdmTMB() ... arguments passed visreg::visreg() visreg::visreg2d() model 1st 2nd delta model","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"plot visreg package. Optionally, data plotted invisibly plot = FALSE. useful want make plot .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"Note residuals currently randomized quantile residuals, deviance residuals usual GLMs visreg.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/reference/visreg_delta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot sdmTMB models with the visreg package — visreg_delta","text":"","code":"if (require(\"ggplot2\", quietly = TRUE) && require(\"visreg\", quietly = TRUE)) { # \\donttest{ fit <- sdmTMB( density ~ s(depth_scaled), data = pcod_2011, spatial = \"off\", family = tweedie() ) visreg::visreg(fit, xvar = \"depth_scaled\") visreg::visreg(fit, xvar = \"depth_scaled\", scale = \"response\") v <- visreg::visreg(fit, xvar = \"depth_scaled\") head(v$fit) # now use ggplot2 etc. if desired # Delta model example: fit_dg <- sdmTMB( density ~ s(depth_scaled, year, k = 8), data = pcod_2011, mesh = pcod_mesh_2011, spatial = \"off\", family = delta_gamma() ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, gg = TRUE) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, gg = TRUE) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 1, scale = \"response\", gg = TRUE ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, scale = \"response\" ) visreg_delta(fit_dg, xvar = \"depth_scaled\", model = 2, scale = \"response\", gg = TRUE, rug = FALSE ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 2, scale = \"response\" ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 1, scale = \"response\", plot.type = \"persp\" ) visreg2d_delta(fit_dg, xvar = \"depth_scaled\", yvar = \"year\", model = 2, scale = \"response\", plot.type = \"gg\" ) # } } #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 1. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component. #> These are residuals for delta model component 2. Use the `model` argument to #> select the other component."},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-development-version","dir":"Changelog","previous_headings":"","what":"sdmTMB (development version)","title":"sdmTMB (development version)","text":"Fix bug est_non_rf1 est_non_rf2 columns following conditions true: predicting new data using delta model including IID random intercepts time-varying coefficients See #342. Thanks @tom-peatman issue report. Add suggestion use optimized BLAS library README. Add warning ’s detected problems reloading (e.g., readRDS()) fitted model. Simultaneously revert approach reloaded models reattached. Check random effects haven’t reverted zero readRDS() fitted model. E.g. get_pars(fit)$omega_s spatial random fields enabled. Move log_ratio_mix parameter 2nd phase starting value -1 instead 0 improve convergence. Fix bugs nbinom1() nbinom2_mix() simulation. Allow profile argument control list take character vector parameters. Add theoretical quantile residuals generalized gamma distribution. Thanks J.C. Dunic. #333 Add poisson-link delta-mixture lognormal. Fix bug simulation Poisson-link delta models. Simplify internal treatment extra time slices (extra_time). #329 less bug prone also fixes recently created bug. #335","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-050","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.5.0","title":"sdmTMB 0.5.0","text":"CRAN release: 2024-04-03 Overhaul residuals vignette (‘article’) https://pbs-assess.github.io/sdmTMB/articles/web_only/residual-checking.html including brief intros randomized quantile residuals, simulation-based residuals, ‘one-sample’ residuals, uniform vs. Gaussian residuals. Add check prediction coordinates appear outside fitted coordinates. #285 Fix memory issue Tweedie family large datasets. #302 Add experimental option return standard normal residuals dharma_residuals(). Make simulate.sdmTMB() include extra_time elements. Improved re-initialization saved fitted model objects new sessions. Fix important bug simulate.sdmTMB() method delta families positive linear predictor getting simulated observations present fitted data. Add new \"mle-mvn\" type residuals.sdmTMB() make default. fast option evaluating goodness fit better previous default. See details section ?residuals.sdmTMB details. previous default now called \"mvn-eb\" recommended. Bring dharma_residuals() back sdmTMBextra sdmTMB. Add new option type argument (\"mle-mvn\") make simulation residuals consistent expected distribution. See new documentation ?residuals.sdmTMB. examples ?dharma_residuals illustrate suggested use. Fix bug sanity() gradient checks missing abs() large negative gradients weren’t getting caught. #324 Return offset vector fitted object element. Ensure extra time rows data data element fitted object include extra time slices. Add experimental residuals option “mle-mvn” single approximate posterior sample random effects drawn combined MLE fixed effects produce residuals. may become default option. Add generalized gamma distribution (thanks J.T. Thorson additional work J.C. Dunic.) See gengamma(). distribution still testing phase recommended applied use yet. #286 Detect possible issue factor(time) formula column name used time extra_time specified. #320 Improve sanity() check output NA fixed effect standard errors. Set intern = FALSE within index bias correction, seems considerably faster testing models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-043","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.3","title":"sdmTMB 0.4.3","text":"CRAN release: 2024-02-29 Fix bug likely introduced July 2023 caused issues extra_time specified. important bug models fit extra_time date (using GitHub version) v0.4.2.9004 (2024-02-24) checked current version sdmTMB (v0.4.2.9005 greater). CRAN, affected v0.4.0 (2023-10-20) v0.4.2. Details: essence bug extra_time works padding data fake row data every extra time element (using first row data template). supposed omitted likelihood impact model fitting beyond spacing time-series processes appropriately setting internal structures forecasting. Unfortunately, bug introduced caused fake data (1 per extra time element) included likelihood. Issue error time column NAs. #298 #299 Fix bug get_cog(..., format = \"wide\") time column hardcoded \"year\" accident. Poisson-link delta models now use type argument delta_gamma() delta_lognormal(). delta_poisson_link_gamma() delta_poisson_link_lognormal() deprecated. #290 Delta families can now pass links different default \"logit\" \"log\". #290","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-042","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.2","title":"sdmTMB 0.4.2","text":"CRAN release: 2024-01-18 Force rebuild CRAN binaries fix issue breaking Matrix ABI change causing NaN gradient errors. #288 #287 Fix crash sdmTMB(..., do_index = TRUE) extra_time supplied along predict_args = list(newdata = ...) lacked extra_time elements. Allow get_index() work missing time elements. Add ability pass custom randomized quantile function qres_func residuals.sdmTMB(). Add check factor random intercept columns newdata avoid crash. #278 #280 Improve warnings/errors around use do_index = TRUE get_index() newdata = NULL. #276 Fix prediction offset newdata NULL offset specified. #274 Fix prediction failure offset nsim provided model includes extra_time. #273","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-041","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.1","title":"sdmTMB 0.4.1","text":"CRAN release: 2023-11-03 Fix memory issues detected CRAN ‘Additional issues’ clang-UBSAN, valgrind. Fix bug predicting new data specified offset extra_time. #270 Add warning around non-factor handling spatial_varying formula. #269 Add experimental set_delta_model() plotting delta models ggeffects::ggpredict() (GitHub version next CRAN version).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-040","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.4.0","title":"sdmTMB 0.4.0","text":"CRAN release: 2023-10-20 Move add_barrier_mesh() sdmTMBextra avoid final INLA dependency. https://github.com/pbs-assess/sdmTMBextra Switch using new fmesher package mesh/SPDE calculations. INLA longer dependency. Switch diagonal.penalty = FALSE mgcv::smoothCon(). changes scale linear component smoother, result model. https://github.com/glmmTMB/glmmTMB/issues/928#issuecomment-1642862066 Implement cross validation delta models #239 Remove ELPD cross validation output. Use sum_loglik instead. #235 Turn Newton optimization default. #182 print() now checks sanity() issues warning may issues. #176 Poisson-link delta models censored likelihood distributions made considerably robust. #186 Standard errors now available SD parameters etc. tidy() #240 Fix bug print()/tidy() delta-model positive model component sigma_E. recently introduce bug causing sigma_E 2nd model reported 1st model component sigma_E. Add new anisotropy plotting function. Add anisotropic range printing. #149 @jdunic","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-030","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.3.0","title":"sdmTMB 0.3.0","text":"CRAN release: 2023-01-28 Create sdmTMBextra package remove rstan/tmbstan helpers, causing memory sanitizer errors CRAN. https://github.com/pbs-assess/sdmTMBextra following functions affected: predict.sdmTMB() now takes mcmc_samples, output sdmTMBextra::extract_mcmc(). simulate.sdmTMB() now takes mcmc_samples, output sdmTMBextra::extract_mcmc(). residuals.sdmTMB() now takes mcmc_samples, output sdmTMBextra::predict_mle_mcmc(). affects residuals(..., type = \"mle-mcmc\"). Move dharma_residuals() sdmTMBextra reduce heavy dependencies. See examples Bayesian residuals vignettes help files functions within sdmTMBextra.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-022","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.2","title":"sdmTMB 0.2.2","text":"Various fixes pass CRAN checks. #158 Fix memory issue highlighted Additional issues CRAN checks. #158 ‘offset’ argument can now character value indicating column name. preferred way using offset parallel cross validation. #165 Fix parallel cross validation using offset vector. #165 Add leave-future-cross validation functionality. #156 Example data qcs_grid longer replicated year save package space. #158 Add message tidy(fit, \"ran_pars\") SEs NA. Add anisotropy print() #157 Fix predict(..., type = \"response\", se_fit = TRUE), involves issuing warning sticking link space. #140","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-021","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.1","title":"sdmTMB 0.2.1","text":"CRAN release: 2023-01-10 Fixes resubmission CRAN.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-020","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.2.0","title":"sdmTMB 0.2.0","text":"Initial submission CRAN.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-014","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.4","title":"sdmTMB 0.1.4","text":"Relax range parameter sanity() check 1x 1.5x greatest distance data. Add Pearson residuals several families. residuals(fit, type = \"pearson\") Useful checking overdispersion N > 1 binomial Poisson families, among uses. See overdisp_fun() function : https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html#testing--overdispersioncomputing-overdispersion-factor Fix bug using residuals() simulate() binomial families specified via cbind() weights = N. binomial sample size wasn’t passed typically resulting Inf/-Inf. Add mixture families: gamma_mix(), lognormal_mix() associated delta/hurdle families: delta_gamma_mix(), delta_lognormal_mix(). families feature mixture two distributions different means shared variance parameters. Add delta_beta() family.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-013","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.3","title":"sdmTMB 0.1.3","text":"Tweak sanity() checking standard error size. Export previously experimental plot_anisotropy() function. old function now plot_anisotropy2(). Allow passing offset data predict.sdmTMB() via offset argument.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-012","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.2","title":"sdmTMB 0.1.2","text":"Switch effects = 'ran_vals' random intercept values tidy.sdmTMB() match broom.mixed package. Make tidy.sdmTMB() return tibble tibble package installed. Note affect old code since drop = FALSE default tibbles drop = TRUE default data frames (.e., tibbles always return data frame subsetted). Fix longstanding issue predicting newdata mgcv’s t2(). Previously disabled issues. now works expected. Add knots argument sdmTMB(), passed mgcv. common use specify end points cyclical spline (e.g., s(x, bs = 'cc', k = 4), knots = list(x = c(1, 3, 5, 7))) data don’t extend fully boundaries match .","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-011","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.1","title":"sdmTMB 0.1.1","text":"Preparing release CRAN. Add time-varying AR1 option (originally always random walk). See time_varying_type argument ?sdmTMB. Allow prediction newdata missing time elements. #130 Add check offset() (work sdmTMB, use offset argument instead). #131 Add check random slopes (sdmTMB currently random intercepts, although slopes can vary spatially). #131","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-010","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.1.0","title":"sdmTMB 0.1.0","text":"ADREPORT several parameters natural space. https://github.com/pbs-assess/sdmTMB/discussions/113 Improve robustness model print() esoteric mgcv smoothers. Let sims_var work multiple spatially varying slopes (zeta_s); return output named list coefficients. #107 Add threshold_coefs sdmTMB_simulate(). Don’t make fake mesh non-spatial model (faster).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00269001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.26.9001","title":"sdmTMB 0.0.26.9001","text":"Add vignettes visreg, ggeffects, delta families (thanks J. Indivero!) #83 #87 #89 Forecasting presence-vignettes merged soon. Add support emmeans package. See ?emmeans.sdmTMB examples. Add support effects package. ggeffects::ggeffect() function can used make fast marginal effects plots. ggeffects::ggpredict() works custom fork ggeffects. pull request made shortly. #101 Add vcov(), fixef(), df.residual(), formula(), terms(), model.frame() methods. Add support \"cloglog\" link. Code adapted glmmTMB robust likelihood implementation. delta models, default share anisotropy parameters VAST. Separate anisotropy (old behavior) can estimated control = sdmTMBcontrol(map = list(ln_H_input = factor(c(1, 2, 3, 4)))) Add experimental do_index, predict_args, index_args sdmTMB(). can used perform prediction index calculation time fitting. large datasets meshes can save time compared fitting, predicting, index calculation 3 separate steps since TMB AD object doesn’t rebuilt. somewhat slow initial fitting. Remove max_gradient bad_eig get_index() output. Use unique locations prediction huge speedups large newdata gridded data. Fix bug rare cases get_index() return gibberish small values. Add bayesian argument, TRUE adds Jacobian adjustments non-linear transformed parameters. TRUE model passed tmbstan, FALSE otherwise. #95 Add experimental -yet-exported sdmTMB:::plot_anisotropy2(). Add many anisotropy, delta model, index calculation unit tests.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00249001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.24.9001","title":"sdmTMB 0.0.24.9001","text":"Enable random walk random field TMB simulation sdmTMB_simulate(). Add check irregular time AR1 random walk processes. Fix bugs introduced delta model code (offsets extra_time threshold model prediction). Fix bug sanity() message small random field SDs.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00249000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.24.9000","title":"sdmTMB 0.0.24.9000","text":"Add support ‘delta’ (‘hurdle’) models. See examples documentation ?sdmTMB. resulted substantial restructuring internal model code. default model components (e.g., binomial & Gamma) share formula, spatial, spatiotemporal structure, can separated supplying argument values lists first element corresponds first model second element corresponds second model (limitations described ?sdmTMB documentation ‘Details’). Add support multiple spatially varying coefficients (used limited single variable). Add compatibility ‘visreg’ package visualizing conditional effects parameters. See ?visreg_delta examples. Add MCMC residual type residuals.sdmTMB(). ‘better’ residuals slower calculate. See documentation ‘Details’ ?residuals.sdmTMB. Make offset argument sdmTMB(). Using reserved word offset formula now deprecated. Add sanity() function perform basic sanity checks model fits. Make sdmTMB() model object compatible update() method. Remove several deprecated arguments. Overhaul examples ?sdmTMB. Use faster “low-rank sparse hessian bias-correction” TMB bias correction. Add parallel processing support. See parallel argument sdmTMBcontrol. default, grabs value sdmTMB.cores option. E.g. options(sdmTMB.cores = 4). currently enabled Mac/Linux. Using many cores can much slower 1 core. Use ‘cli’ package cli_abort()/cli_warn()/cli_inform() stop()/warning()/message(). Add many unit tests.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00239000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.23.9000","title":"sdmTMB 0.0.23.9000","text":"package version number used internal testing ‘delta’ branch several people.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00229001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.22.9001","title":"sdmTMB 0.0.22.9001","text":"Switch TMBad library ~3-fold speedup(!)","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00229000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.22.9000","title":"sdmTMB 0.0.22.9000","text":"Fix bug predictions poly(..., raw = FALSE) newdata. #77","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00219009","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.21.9009","title":"sdmTMB 0.0.21.9009","text":"Add experimental sdmTMB_stacking() ensemble model stacking weights. Add fake mesh random fields . #59 Make predict(..., newdata = NULL) also use last.par.best instead last.par match newdata = df. Fix bug MVN fixed-effect prior indexing sims n_sims arguments deprecated standardized nsim match simulate() S3 method. Bias correction get_index() get_cog() now selective just applied necessary derived parameters. INLA projection matrix ‘’ now shared across spatial spatiotemporal fields. Add add_utm_columns() ease adding UTM columns.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00209001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.20.9001","title":"sdmTMB 0.0.20.9001","text":"Add dharma_residuals(). Fix bug simulate.sdmTMB() residuals.sdmTMB() binomial family.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00209000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.20.9000","title":"sdmTMB 0.0.20.9000","text":"Smoothers now appear print() output. format roughly match brms. main-effect component (e.g., sdepth s(depth)) represents linear component random effect (e.g., sds(depth)) component output corresponds standard deviation penalized weights. Add censored_poisson(link = 'log') family; implemented @joenomiddlename fields sdmTMB() now deprecated replaced spatiotemporal. include_spatial sdmTMB() now deprecated replaced spatial. spatial_only sdmTMB() now deprecated replaced spatiotemporal. E.g. spatial_only = TRUE now spatiotemporal = '' leaving time = NULL. spde sdmTMB() now deprecated replaced mesh. sdmTMB_simulate() new likely replace sdmTMB_sim() eventually. sdmTMB_simulate() set take formula data frame easier use want different spatial observations (covariates) time slice. can also take fitted model modify parts simulate. Finally, function uses TMB simulation much faster flexible can simulate (e.g., anisotropy) previous version. spatial_trend now spatial_varying accepts one-sided formula single predictor coefficient varying space random field. Note may want include fixed effect variable improve interpretability. (scaled) time column used, represent local-time-trend model . Tweedie power (p) parameter now print() tidy() output. thetaf now tweedie_p sdmTMB_sim().","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199003","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9003","title":"sdmTMB 0.0.19.9003","text":"Fix bug affecting prediction se_fit = TRUE breakpoint models.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199002","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9002","title":"sdmTMB 0.0.19.9002","text":"Simulation parameter covariance matrix works random effects turned . #57","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00199000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.19.9000","title":"sdmTMB 0.0.19.9000","text":"Smoothers s() now penalized smoothers: determine degree wiggliness (mgcv) longer necessary choose appropriate k value priori. Models fit previous versions sdmTMB s(x, k = ...) match models specified way version >= 0.0.19 since basis functions now penalized. various mgcv::s() options supported t2() (ti() te()) supported.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00189001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.18.9001","title":"sdmTMB 0.0.18.9001","text":"Add ELPD (expected log predictive density) sdmTMB_cv() https://arxiv.org/abs/1507.04544 Fix bug evaluating ... sdmTMB_cv() called within function. #54","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00189000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.18.9000","title":"sdmTMB 0.0.18.9000","text":"Fix minor error PC Matern prior","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00179000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.17.9000","title":"sdmTMB 0.0.17.9000","text":"Add random walk option: fields = \"RW\". Depreciate ar1_fields argument. See new fields argument `sdmTMB(). Many packages moved ‘Imports’ ‘Suggests’","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00169000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.16.9000","title":"sdmTMB 0.0.16.9000","text":"Lower default nlminb() eval.max iter.max 1000 2000. Added profile option sdmTMBcontrol(). can dramatically improve model fitting speed many fixed effects. Note result likely slightly different TRUE vs. FALSE. Added simulation MVN precision matrix predict.sdmTMB(). See sims argument. Added gather_sims() spread_sims() extract parameter simulations joint precision matrix format matches tidybayes package. Added get_index_sims() population index calculated MVN simulation draws. Added extract_mcmc() extract MCMC samples model passed tmbstan. Added ability predict model fitted tmbstan. See tmbstan_model argument predict.sdmTMB(). Allowed separate random field Matern range parameters spatial spatiotemporal fields. E.g. sdmTMB(shared_range = FALSE) Bounded AR1 rho parameter -0.999 0.999 improve convergence; -1 1. Please post issue creates problems model. Added map, start, lower, upper options control model fitting. See sdmTMBcontrol(). Added priors parameters. See ?sdmTMB::priors priors argument sdmTMB(). PC priors available random fields. See ?pc_matern details . Moved many less-common arguments sdmTMB() sdmTMBcontrol(). Fix bug sdmTMB_cv() fitting testing data splits reversed. .e., small chunk fit; big chunk tested.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00159000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.15.9000","title":"sdmTMB 0.0.15.9000","text":"Added experimental penalized complexity (PC) prior used INLA. See arguments matern_prior_O matern_prior_E. Added back normalize argument sdmTMB() default FALSE. Setting TRUE can dramatically speed model fits (~4 times test models).","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149003","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9003","title":"sdmTMB 0.0.14.9003","text":"Added vignette making pretty maps output","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9001","title":"sdmTMB 0.0.14.9001","text":"AR1 spatial-model Missing factor levels time Coordinate systems big","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00149000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.14.9000","title":"sdmTMB 0.0.14.9000","text":"Add re_form_iid predict.sdmTMB(). Add map_rf option sdmTMB(). lets map (fix starting values zero) random fields produce classic GLM/GLMM.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00139000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.13.9000","title":"sdmTMB 0.0.13.9000","text":"Add IID random intercepts interface. E.g. ... + (1 | g) #34","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00129000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.12.9000","title":"sdmTMB 0.0.12.9000","text":"Add epsilon_predictor argument sdmTMB() allow model spatiotemporal variance time.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00119000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.11.9000","title":"sdmTMB 0.0.11.9000","text":"Add penalties argument allow regularization.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00109001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.10.9001","title":"sdmTMB 0.0.10.9001","text":"Fix Student-t degrees freedom randomized quantile residuals","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-00109000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.10.9000","title":"sdmTMB 0.0.10.9000","text":"Fixed parameter initialization inverse links #35 Switched Gamma ‘phi’ parameter representing shape instead CV match glm(), glmmTMB(), etc.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0099000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.9.9000","title":"sdmTMB 0.0.9.9000","text":"Switched density/abundance index calculation use link function opposed hardcoded log() get_generic() function can used grab things like standardized average values response across grid. used log_total raw TMB output now link_total users shouldn’t notice difference.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0089000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.8.9000","title":"sdmTMB 0.0.8.9000","text":"Overhauled simulation function. function now called sdmTMB_sim() uses INLA functions instead RandomFields functions simulating random fields. simulation function can now accommodate families links takes INLA mesh input.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0079001","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.7.9001","title":"sdmTMB 0.0.7.9001","text":"Allow specifying degrees freedom Student-t family #29","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0079000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.7.9000","title":"sdmTMB 0.0.7.9000","text":"Added tidy() method (broom broom.mixed) return data frame parameter estimates. function can extract fixed effects random effect parameters (variances, AR1 correlation, spatial range). Added argument extra_time sdmTMB(). introduces additional time slices can predict want interpolate forecast. Internally, uses Eric Ward’s ‘weights hack’. also useful data unevenly spaced time want gaps evenly spaced random walk AR1 process (add missing years extra_time). make_spde() now replaced make_mesh() make_spde() soft deprecated. make_mesh() carries x y column names predict function line tidyverse style taking data frame first. make_mesh() can accept cutoff argument (INLA), likely better default way specify mesh since scales across regions better line literature INLA. make_mesh() can use binary search algorithm find cutoff best matches desired number knots (thanks Kelli Johnson idea). Barrier meshes now possible. See add_barrier_mesh() example. pkgdown website now gets auto generated GitHub actions. start model description vignette. much work progress.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069009","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9009","title":"sdmTMB 0.0.6.9009","text":"Fixed bug dlnorm","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069005","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9005","title":"sdmTMB 0.0.6.9005","text":"Fixed bug predictions standard errors one(?) parameter (breakpoint parameter) passed initial instead MLE value.","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069004","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9004","title":"sdmTMB 0.0.6.9004","text":"Fixed bug predictions new data models break points Overhauled cross validation function. function now: uses Eric’s weights hack can also used forecasting initializes subsequent folds MLE first fold considerable speed increases works parallel future plan initialized; see examples Added threshold parameters print method Added forecasting example weights hack Fixed bug linear break point models","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0069002","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.6.9002","title":"sdmTMB 0.0.6.9002","text":"Fixed GAM predictions 0s new data. Add linear logistic threshold models. #17","code":""},{"path":"https://pbs-assess.github.io/sdmTMB/news/index.html","id":"sdmtmb-0059000","dir":"Changelog","previous_headings":"","what":"sdmTMB 0.0.5.9000","title":"sdmTMB 0.0.5.9000","text":"Added parsing mgcv formulas splines. #16 Added ability predict standard errors population level. helps making marginal-effect plots. #15 Added optimization options aid convergence. Also added run_extra_optimization() run already fit models. Default extra optimization. Added binomial likelihood cross validation. Git hash ee3f3ba. Started keeping track news NEWS.md.","code":""}]

1%D-O;)pea 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 agm5)Lk=LFL)Q>@ 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%0A4v`SG?vY;jL8exv!W556T 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/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 diff --git a/articles/web_only/delta-models.html b/articles/web_only/delta-models.html index a866d6cfa..6db2ec3df 100644 --- a/articles/web_only/delta-models.html +++ b/articles/web_only/delta-models.html @@ -521,8 +521,8 @@