From 032f6f2295970efded0651d6d0a48c003ce621b4 Mon Sep 17 00:00:00 2001 From: seananderson Date: Sun, 26 May 2024 04:28:17 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20pbs-asse?= =?UTF-8?q?ss/sdmTMB@e56a83826c60059e97e0f4358024820531b7531c=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 | 18 +++++++--------- .../figure-html/plot-cv-1.png | Bin 47210 -> 45045 bytes .../figure-html/residuals-mcmc-1.png | Bin 44842 -> 43323 bytes .../figure-html/tv-depth-eff-1.png | Bin 155996 -> 156019 bytes articles/web_only/bayesian.html | 2 +- .../figure-html/unnamed-chunk-9-1.png | Bin 241993 -> 251155 bytes articles/web_only/delta-models.html | 4 ++-- .../delta-models_files/figure-html/cv-1.png | Bin 49080 -> 48711 bytes .../figure-html/unnamed-chunk-19-1.png | Bin 29754 -> 28033 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 52659 -> 52593 bytes articles/web_only/residual-checking.html | 20 +++++++++--------- pkgdown.yml | 2 +- reference/get_index_sims-1.png | Bin 71727 -> 69023 bytes reference/sdmTMB.html | 4 ++-- search.json | 2 +- 15 files changed, 25 insertions(+), 27 deletions(-) diff --git a/articles/web_only/basic-intro.html b/articles/web_only/basic-intro.html index 3deea88f8..ac617e1ae 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.01007 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 100.7 seconds. +#> Chain 1: Gradient evaluation took 0.010102 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 101.02 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.615 seconds (Warm-up) -#> Chain 1: 0.197 seconds (Sampling) -#> Chain 1: 26.812 seconds (Total) +#> Chain 1: Elapsed Time: 26.933 seconds (Warm-up) +#> Chain 1: 0.198 seconds (Sampling) +#> Chain 1: 27.131 seconds (Total) #> Chain 1:
 AIC(m4)
-#> [1] 12534.29
+#> [1] 12534.33

To plot these, we make a data frame that contains all combinations of the time-varying covariate and time. This is easily created using expand.grid() or tidyr::expand_grid().

@@ -710,9 +710,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 91afc737f00766c6fce416201fa421c42def072e..0f6345c079b6c6ea6fd04a9a27b1e47861966b3f 100644
GIT binary patch
literal 45045
zcmdqJcTiL7yEYsY1cQKXn$j(FY0^80iu4+K-6%*2y>~%CQ9&uvq(~=}ASDn=5ZQ?I
z8d~T`Clo0GLc+Unm)|$@o;hcq`R4oQ%M6pX$eLB2=YH;TUDv%{>1wM|ftkP{5Qs|c
z@dJGjh%_7oy3j#!3HZ+;r*sYQb?J8v)d#>g@Htj#3lLV8O-b+WOr<2AM>|ErRtu51?nO>8mpy~Wt#8-u
z?xg?Kj)iH4Ps>
z9|(3O-u}^}z7^SFbgwsV4d*N{#^j7sa2S)ue{}NAJ_$DHlcxN2tDpji={m`un{%()
zFI@e#snq!yMEYw>*Yhsu&!3Z6D3$&^j42k?e6Y!vRxBi8Bn1?@9)>FADrmZkd5Py1=M=&4f68x
zG~{mC^v%uXc=jJ1&=gC_@9rX9!JLUYb!j#j)daZ
zR?ZKT|6d+f;aoxv+GH!=h;Bi85m_xk5tNyHb97!*Vd9k{n$U6
ztS*mQMk1yl0XTy}@&;zAZ|Zrne(llG
z(&|)SI>Ly2@2392qET(GdO>bhRu-qnD>!Ja%{sTMO;H8*8|3
zfQTgtY75g^o`~X7OP8RudTTQe6F(!%8KJ)mLZ1dW
z{F>b_zt8d8{F-IZ|6s^B2TVLo)g}zxVqwY!IZR2jrsU|1WnX&);|ofRC7Io7PL-+Q
zQ~orVWkS-_XNs?tiO!TKKPGtmF-=9QQuWANyp4NL?zgTSLV{U5xsy?MI3=5Grq+K#
zna{=oqTnm5@<=;2h=loOtZ!?OCzQAN*~&LIhBuU7YikQzc9st3WH1E*t4h0}_NN>$
zT3UpF*63^Nc)nd9&)L^~jg7u}UglJMG>4IY2-d3xn3CM
zFCOFE;FlHkwDd1X8Wp5hht-yS$OHbEM@3XFxC~_(cyFErK@FUb-hCZ&h`&o6^C2IB
z^loIkyzFs(Qtr$vBNAjEG*haaikeNF)u9vI-ukRp8FckRrj~9KrD{t4#ujR1+xbSN
zs)ST6vh+yvK#nEY74TfAr2p#`4-2T*NneulTVnY>C$F)lbaFa8ATifTUYVY^
z8?wI+R&OTNZ!@0xthsbYjVK?54z%#8wNcdb;r08T=XDLT0z-;pZOSo_Td!vlOEmAO
z!5Y*xL$8!DOvUzoew>{1`v=)jTe8|Yd1PqC`Uo*K6nW#y0P9#W-Nc&~d%iroD7YUo
zC?@|<$!`}?7^&`OD~?x$)&2dVBQkLS#pvzf_dB^mYI<9zqaW3VAOVH{T)52fYxe&KXXm<9$dfDQc?eAX
zOAorMmf}#sI}rV?lH(9$;j>`D@8YY8xnE3D{>X^%nc^9ksC{TB+#v)O>62)Z95?p9
z9x*pRV!$%QoK@s1iepmV@uPc&QO@4{TFc4Fn935po{oKJ+cky^$vwkRlU#;Z_oB^R}vuYfaRTZN61=d&^K
z>^R-GZP-GbS&k!ikK5sj*K+TRO+c7DpZeueam{k`g)Z@3T$-_(br?0Q*VonThHxd^
zF@DZd%(2ABt@bnddBnQ-I@r~`g2~h{ytsoUuTYUXV3OVVAyiwpT%bR-OQ}^3%r7Wy
z$!fR{BTG)r1>08enR`nkojmp0%hF50++ou{wsLfQh{;9zhL*jM;aC{%;aGY(k--qV
zZUcLfOx}A_eR@!wmBm=nSSD?;d#b$UuoQu9j}M0J96bMQQ$dQRX;hUhegecbBe{RM
z67>6&)j8DdR{AnE#lt}E?
zmdG!T%zV>V?psWs#wYYe3P1HzNT8hlu)tx*ILAz8-Y7k2P;L2BDVzQ4WNj3@ZuIa7
zo5rzNp?YdjvN;3A4E;#DVd36ewuZxa?G+~;GhK%3Na7-n#cAL6TQav=h~S=YY@OK6
zIz*kc&o+ER_+TlvY?o&+W{dsU+0X?nxm*RezPeglTU$cDeRav;;NW>i;o$DBEA8<1
z?OTBZUEN!^Z{OCCCr!Gd^WWt_y^6vY`SoL~#6ch)X$5jddn8LsHcN-+4aQ1xuiw6S
ze!DQh_nBMx8Ymq7vcEOTG_C_)TIy^XM_J1J_s=2<3aAm4Rm~&gq?`*WrMa|_+{-XX
zi7lVVL&z5kbKPBDbOYh=%?F`~{0Sc-!Km;x|DD>PAZYgb9}hfK3~PCcM;Bqf1=_Gu
z`G&ewZkQ}c?rj3?OLpc
zUF)RbCK7=`LCIeB+P~|42EAy1L?QNTE&tb9>J256ncSTr9$`eJu#Gqq3W|_=CaT(s
z61-B&`ld0`mS$@EqFt%aSr(rlhZu#o?>tj#+53SdYCj!Yz(HpkqVQd6EcT+EftazGvaWkvMAKXK
z-2=Mb=E`!Tre^yV#R`LsSPWk;hf7FLf1a4UIz6>27?aSfqj_IN`sf(3DD_-yv;nB*D34Wj@8&CMB-=72*T;f~x?qM}H
z_~aNCOkYA>+Jfv-Qf|+2;nRoY;(o+M<{O21w3m%GSYe9pL8ep_%Ikl?jvk|6`i4+m
z@zcWu+2z(?s+FupiCpJ~qQ;{GE9>U6=`jb4nM(UgC1lTTm0ci*>SXMOJA47B|HkEHCx7zUfvZ#eEp|Fk)whj+D#Tk3J^M8JEuXnu2EDW~r8*`vLnXzWcon|w0XcSW&okaNR?6!WNCUQWyU(Xth^O&5t~t=voBTJfX_ja?Df4Qx2zG@(QQoy>$Jrx?a$j#yz18{TLa(NcXX5
z%A6(iqkZsWH&5k?)=%AB?@SU}vH~OG-#NL@Fcnp3%_-tLvc!4Y1#hf)kRQfs(4aeX&$?gmB#=xv-ee$dI>J+}nh#hb@n&&?4{m
zCW0{DW&1t{SX}|V+NpEbk&ExR2*`4yBEoVHO5eRV|MRPb=vAgSagnm@dQp-s;!lUu
zbHNse7Nj@?OV3kD>$V_0a{BAj@}>z5uRBs?C;Iskxq4VqM#RORVmz%qYQK(t3C9lO
z3CG4Y7thDz-<1XyUHP{vz_NZ@7V9_fQZnlhLT0a%A!RHTu870M=TllaQ@A4E_42aY
zKx-qrF>h~!!+ex0l(R<`RWi`lEG+5H%I>Z;@JD&|H!0Ayw*7kUu5?CI#w<42`!Vd$
z11-U4(&Jf_UD|>>W*$ln@(hEgH1}apke9GRTKG1dWt|?eKFx0adb)juSR``cwxSTA51$wt46N8usyJS*F0fNC+K!R$DoBKCH|ZHbc^LCzWf%m4qgQ_
z%4T7H6u9xu2chFc$G+F~M?SXtSR*4ze`sf?@=nQwi<7ta2vN>m`2WrF`Hv5#?0N;_
z{J}T#*aLFIIGG#v_~~JC9-n#UOTMdVPErXjQTa)y9^VTE$j~|W3m5dku#_b;cZ?@}
zb1t7sMVAraUY~V07lKnudc?<;OS5W&V(W}E_me&Ko9ojpOy>DuNz1S#q@844U4Wb5
z`YlPJ$PEc@MbwnB#q++tn`)hw&V~2WYO>djw*tWxtFD68lA2w?Ba@l
zH<2VuVN7-3-9S_mEEp<%J)7z~_VWDI__=Ljea67wA`EImv)Z2S&q$ENzS>IEJWl&
zYZf4FrjR#!x?@ZAm+|A^P}`+SYQ7gyQ9}_K4=k452lLq!&pbdqjW`XKrSYGfdY>hGM>m!Rgv#ZpTcd5Pml*4_~_iqj)Zvp<#
zmG+3Amwa0?L&+iSi*x77^0J_!wZYXBbCC`qbdgK;OG-rCg)lE`H=vY0MZSzH&E!`;
zs)LqZ3e&jUm+11&FXq$tOj6-SM6r%{GyBJ$%1`6f%eSRCJclrZ3IyG!^QMV=xwgiP=N5
zyIz!VaPn$tGDwa@@;%lgWAIy24Qa3_NXhZk_m1&^yo-RT^TJ>wPzDVxG^<({ZD9hs
zMp4ICF<~fuVXs0VjB16bFl!_b+M<{I$v12lHA!ey$=17BXXIfwrY*|NS>UKBG_2{d
z)KICOwnqCZu5`Np!L(!pI6%**q?jp*|4dGzX7;(DSwS*eSVJ`W-w0=WBzd9g6WMLWk
z_LlkJjf0#@g7=uEpM1qOmE=^8QE34qY9~r&qpW%agDFi)h?82Nu=MQYgc+4iRy}>~
zyE*>3IOI<{fcgP1WB4*q#RZ0JeLgFaTjGsU+-q8q*GUlDrL`XHl-{7UK8m>G*cMF{
zzcDsD+k$h<$GA2^2T%UQ-&uGV!o^a^t3wHaYC{Cvto4!T?9n&LJ8ImS-a`uT__(;O
z-gnZ=sdixemZ{vy$yf{O+25Bo_)tp3|&4gf2T6mK#Cf0O;H+xv|x_J$jk@V_qg`eIQG_$@-lTB#!a>1lI(2+mjX1v4S-uhAS*=UcWnz|+NxBhBY
z(#eK-vQNFNWZxdOek$kK_a54(jC)Vz9rum(ZGTf%E@+Y%I{V=@4wANS+b$R`?ME}A
zP~D~wF5MVBhN?yA;NpWLpw-qs=?-zmA3NmiS>5
z&Jc?xm`fm~8_Av|tDlpbfC>M^D(kyCYVL;ah=bnG%hH`Op*FrH8TAG^A
z+}+)?5fiFsPS=wi!!~oZ8mDLQXN*HQ?vTBV*^%Ym3`$JaL7Br^k7$1l-lR8{;UWoe
z6NnWW_bHaW9tBfwfIV6U
zEG5fqRp`3gbcX!d_
z4H0V^|4rHllxu%da_%|mwII54(?5Sw=yU@FHxsn2K&do5JlycJi=R_1#VW8QIwtIt
zb?^CelIATRxIy0FfcTh2UMU=9mLUP1#GqDQ&1*y2+J|(Q@kO6
zdM~^aGhPS*_9ttd#}wdUXZYC^v6SS!@%HQv8Enn4cdz)^sOhd`ZEz15OOmlY-qQG9ljW^ID^=pLW*v-Om0et0i@kq?fYgVASK7$
zMv~=HI9x~CVVOGoDHI|A!t(AC$Kmd3ihT>8>8;p?M~Scav{Y17U}z_RR63cb2`jdX
z4+(zwN_M-+AYuP>MKNsf{3Rdr=H={?_vcr
z92&gE?~*Lr(e*(n?LDy!+sTR$sYkG6avRiYB-Hq7?QT#hMn75B
zOFtyfm6>0$^3vKJ&v1?mvZv-_!t%{naZ)^~Qx%e`z|L4&4nJ
z(-8*9P;7wQl|&beW~2Yk>^RW?p;Noifg5UR
zLhKxvhY^gS>;OE{2%+WM1K3flrKa@mAGA0}%$`prIh(&yUS4~P|5PX*n~=X4C+nIW
zm7A1cb#^kQk)VJ>_RCkyj*KL^Hmq@}dFfn}AHDy#w=N#K3&PGco1d?D6s~z2OAC{e
zmoFDEN38mVuK3+iEBfde8z-|~9C8x(=FKJ{79FsXS+pIzA{*3}QdCrQup|^_ntk*K
z_Z>B62^aqj~`pZO?87*Kf;P7dNJv#g$3{|aW|7vFov
zWwBdHKT=io88vl?QuJDQ#l5b=exhqTaWFWj*9^Gp(XHu5=ow?nQTt?#qrtp!`xbJA
z&C-89DvA&%yCoHJ)W&WEKbHA=|AdX_Uie}1uQKmjM@JiU`Khbr%N@pTL)nOc;N;HT@cg#k)@pHp|runP&!*-K{U24&ehpRzzsR
z8F+kit=+mjX!0fzm%YkwV_rw+AoP=7SSm6yvP+tlBktip`3Kjt#Z0VDH?ySz2
z2yQm4rLd^T=Z|ZutNDrALmJj6`h?AXVp;F;4JM``w6S$L5U924W&%qQP)s4p?#v3I%A+YJQ^Jw5)fqXP(9oBq)V#`L~wHLJ71Ep36e9fmzLNxsT0)OWs
z#H8iR9Dn#ZaJOn5BQl-4`8R3z@0R%Z?^-wI6=^3(S0MWp)yB<+
z-7ubRJ0q`XKNhY(**$)nHBhX{*fPs<_g!6dWPl@ET(RaQotwR>+~K)J(d(^=W?OP(
zIXxCzm7Lxs|CLq!_$<&pj2G^fT7q<_bUkCQ96F4Z*gD+%khQ7EEIxb1((ei#
zN?~9A>3v
z>|heL@AIOBBqrroHndqAUzJx*QpFdG#e7U;#`j-GxaJ|+>6(gI$bK~BY|e1hAY^$Q
zp*7I}2-%f?xt!{oW#*3Zw}2s**Q-;Po+IdKZCEc2q+gvsRJ!USKi83>DeS*R-Ddz$
zacJt5Qc7=aUW&fA_h&6Rd;x%Sm>cXCUoU;lMF{MGm_!BpIWffSH;m!9pH{;^u&Z2O
zo$|do&>GSX6#`$OiCD4Z2;Mr#=7y2dt4)vRX|zqn>+7OWLpvR{i1H)(0`b-WFm*t+
z)J3yi@lX_ME9?w1zadE&G$+J?KvFOLFZ?+^|5}hyeBsjF+hZXF6$G{y-c(cH3L(DF
zx7XGB4smz|yMja%dz#$79$9jj5XmQ;e(==%XIaVNZ*Sp2M9Ax0k#RdZLjnC1#Tcxa
z2L!hKZrh;zfPQ;OY5BruN$Oo(m%YwTXz$X9$s%5pJeiyX
zWI}zE|F3i`6wfaiz3e>m@t@zgct(7;O&1m3AUvT?_rPf~S5P^}%lBrEV2^3+#nfs1
z+nGel=dPsl1%n<~>ift{>WGNEHxn*1aLS|)`LUNhlJkAtJdT`$%4e-A9+4oY+cA_E
zOskJ;)@Rl_rfV^EwWD;|xUT%{pybXHKzz`AWHd5B?r;y!#Ohy
zH@R2)r3b2Gnqp^p1I`_!{Y5-6TXx9rtWG`ZhV+}4mA8QT4$fME!aX@K);c9$uBHzmt{P21y@^d5
z)}zm6F{E%V=T~^t>!Tc%oul9Pqq5`+y=F5p=5>D%r<4|Yu=sb2-R|V*S(~R-R!4z`
zWId4lbmmCprP4jP=ABOCs@M~6#uVf3iy;UNXZHcb1fN!>A$8(rNS9G&LjDb7AY8!3
z@{mKV@`I2kiKoYJzs>P|dx%CiM8v)zR8-9}&2qn+@}Xt*GQL^HUC&6hkMB)Wc^|n^
zGQIJ7p3BQ6FDPT$s4cr_{pbZ0bJ{+ei9=O-Um_<@_8J`@9|yEnocI1JaCb=mm1JyX
zcpFqkfyBg6#(c_+yBwALqwPuF-D4j6ndnj9t2unU$ev-dtI_Kb#d#jaK<+h%b`p-B
zBQz+jsME=9Uhr%@MM42$;H$cRW08MwwezV*Dt2$XL<0I15;;6$V%`KV);TLve3k4W
zij$$Z6L;UfZO4rQZK8=Zb@&MkhYF~G94BIBjUbh$-bM$Q^l#I|HOU#@wG1!`7yH6q39kfJyiJl
ze5<%6>+1@?Jx{s{O950zVe$9_x+E&lms|g9dQL-Hbty=f;s3TiJ)byw*Toacki5oy
zfTTs%)jMezK7B}w^3=?_NB=fAR&r3F^mo2-Z*qt^SI==g?83oumv#xfsJ@j&R;}w|
zNT_w8x+$2i96NW_{l#UYs6R?&I_cg7J4o^5O;%T$u;c%w{*OTw}FAd$<&HM
zku`D2di1>3$jV}4^%>C%>~*%vix1hfJ87i}t;9Ka^~n&A79pi*?~}D6_JPB*)p+9L
zS~D%63{6k}X`R=>@|S=3lG`vJ%`A5BUM>~0#Aw%SV0KB9Qqrnox2
z9alJ@LU-yase8lKRh~cYY2kG(({u-?Ht!lrLSB#6RA1K5VvfAL
zawQ_qAndCCjh8CYO-=Dp$kY877
zC1>rq!+n|Y0qa4hGRhhEZ1)I8tDJ+(_yEu<7lr__Mtev^i&a6|aSV2u=Zb%C_=Mh7
zD3i2myB8o9D=cfRhLBw$FzWfs9x)!TbBo
znAH&j9m^kndfI;}VZ$GK5RX^32{-_-{j>pZvFZIf4%4S=V1Y4fhq_TA<_d7bDCJ5j(sKRzQXm0^3+_&b6zB&NB$zk3rgw#Yv)5$n;)
z0)IhY9b3u(;fhqCw=TFV9$Uva^V(%8f6jum0|NE3n6BkL_TuM74*ARni$e#SdHi)8
zbL%IKok$_fdFyV~6;-CXH{nhv-umygevWB*vou6vk)O%8J1r$kn0nx*XQ7FuHaA#e
z-U=P%K+koQ1MwF@44rnb-}wF9?`P`|9IZb00GYCW>s|ctk-hA*(`M+e!gV|Q>^OVd
zpS|?jUzAWdnJfS%;)r+@erv;DmX|X#XbYK;e~$FR##V^_@4aU52XN7Txjhe(p_hMC
zMGTv(dGRy&?fB6BJiOdBF>7W?*D3sVh8xN>;T+t0))B{=kUvYr&Tjc*O6mWZ`oO@z
zeT|lVjfDJi^Sbp#_A~zu3{ZyWonuF8Lr+sIxzvK{>U^euduxq;49O4W)GGN$1Oh64!U|lG7MqrskYsV>
z>`nEk=co$U88I_I4aI~I$06&)CO@qIxY$wUf|0P0C65Q4(ML1oN;sCTCJpJ(pM3|Z
z`=pcn=#g^TGVy&L-uCKA)}xMC=JjEO4)yjDsuL%Yna=uAk(UBOa{-yx&&0gCt
ze%Y6JSvw_P47wb^?PW3K<45pNCAixFsS=K;Do|k`HqX9-&&#IxfS@>x%%?}~|3zbepyPXMsD4s{F4m^nn$`82)#K690{67KnD1k$<{e%fefDgzzTuW{a^mS#m>tT{Ih{|T&X-L?oyxkP=dC=s
zDGBPgL~O3ua1E5+5Bn&24G>lO_Fcj?r%P}1O6jq_{iNdRHQ3yg$bFpGpZGz*;Ku&t
zIF1Ix;X@UMk<8?#z-Ve|&!F@3>
zxp)U3xnBZMp!xp(EoQyJy>Dc81z$f82xaA2?=oFlxpjqKqIGl-7`*mR4akn{*L0*b
zI63_(Bk}ox1j7=>7!r*tuQK}6p^ut5P=E+`x^%OCnCqns_)vU>SB8-n+~Ct82X1&<
zFMK$cUh#&JoTccQwzk%>NIl-Mj^?>*#*UMk6I>uv2b-SVJ+aAm{LukYNVqtNOYpI?GD$tJUPi}as$oAsM4;y$iq+Ht6NDviW3?lXXU4w-YAGh;HwCC
z{n|&jPQBq2(_+$0AZ{I!y^6Vh)Hqje8S)&Fpa^~yvY6<#%nID*2)vLT#
z`U=>-R#kD61_lQ=jochy&JICAyA2A}wG7MuFf>rB<e>S{b)#o
znIt4>iL)33P@!k98~mP#o?OkV1}yD8`oc;3se}=$>cX9a(FP!5J=7S|-2GTQ5(3Fl
zcei|MP+lZ`Z?3~;xqvz24rGcY#W3yOid~nnkQaS|r&vpbgmJB4nHil$7DC3@aH8KZ
zMW4U8LgI!YiRf6+-pe*<%C|vO?BtKcSng#_-N6cH#1RKN!aM|*r1%ITc~%sOWbDyM
zGdD4O)gP-3y*iWO8_$T!>WIV}PFw5vT0Qcb@Bzb23W{MS@HAEBWE9J0H-tiCxb=Z&
zwvHZIZLw})NmdFzWT|OKbj*-NL$nnsZr8H4!TvMEi1&WZ?gI|ez@^l*v_Z$B%t9ar
zO=cs{Q@6tj2lhYo#5tN8pA9467;Wq0E@LqOKL#YB=ll|3JFMl-T3zTy
z-9C^?`>Azw{@q~|Lp<$2vq;znP)Bv4po#90;o-cbgslC1?ll1aeP^|w%cz#%+O+$v
zfTb{E8~V!-K%3TVEf!90*6X%C=1fxN>oTZCVm#qwrKBj!>`2tjzm0hx;J39JeX;BQ
zim#vl)&5h-flY(+NVZguw58TL%?k0Z9mU~`k^pS0SzB`2J8=tzcV!LPAB@MR{ff%_
z2`Nqai-fzE7{bHvdEKl|Fcg^uy+vJLzaSqu&?#ItL^dE1Vq<@g#qS4NT!xb1EB$DW2N*IJ@_@4PtOca;
z8uhmU`WK=Zi)J2P`uY;KU09onn&=26Bhmf!+X_z*G7T6+LBr)riB@>R9Y4VcXW=Wq
z`*jG_yB1OJa-(()xN0QoYipU?@#*RNl64=0&Et{rM!6fjQo+e<3yUccm9BsQ(#10K
z1-)bhatJ&FZ{&VN@?)@hYK!|Q{2o-gp)j()=t;$M9;r#PcK))uduLxM^>lp=^EqlG
znB_rtBaA9|R+3Zh8R&sUk7@o`O0ljuA0LNIpAV>`cA;}He|>A~9G^d64BKTq=`u#;
z9&C(lLlIr8(uhf?Ry)eq;a?*0r8Wh~_1N_ptW4B*nLiYI!_8
zY|1XJXiz_=Gkm5zI@YYu4y=8;c#DdSN*#d$?_|G7vD~i(Kixn)**M7D4pxm}4?T*&
zjq(1SYem#dHlm#ftDw-Ia{{0>(6_`qImAU_Y3UL_)EE=9FRQi|)-HIZ7Dg^IH5Yxj9Q`&vyteCxDDHpAbGH}8jZmDVdSy673eU0h
z(2p@#4(nlRF8fL<_a_+M5X!O+Sqz=36`3{46kcgoI6LM%4tkKkaA7R+>MC9DZND=b
zm5h)?n&(>_QZf`1b)UW`&^)4680Mq(0Yr}F58LTA>wSGY%wyqHUaXI@b>`)JrYR$&
z)3jcmesjon!&~5bHBPUClFazIYmICuyi?I(pmTOd%}ZM8A^n$M8iQXIRd0smMq>8q
z6N~ZX%YXb`Fe{uo5*s=6hQgh
zipQM^`9a&w#+W)cp`N2-ObfwWZ3rMdnx5#KJvJ*4pZw)zzT`TVR^2+Q8z9TEi~6vI{+}TO%JbQzgB`slT399>J<%!hRr2K
z^)M5*)#?y4=g}jPdP_3goY)3`2BfesmN^1^7vW^=&NB1{{$Lq^jetxm-p!eY&REa6
ze7ECMZK40>G=@;m?_*8H-56`vD&pj)TX6S8-_sNQB4R=2rdQTiFXv@F&f@RG^ep7Y
z&-r0h^on^deD)8Mhb$iE6*C$Bf#n~c`EpU=%I6@MzrI+|=~XA%cFe{-bkm)ZdpBz7
zjUlmoArB$Ro1b59NmrbFDv{w-yNAxmx6vlGqX@IxywjcI1f%!WU(=}Cmh9C$Q5cj1
zq}KaZy$5WNhHgEG$e55+-TX)QG8w4m+#{L3JoqK}D_{GY+&x1azKsp=N8VSX@L
zhw^!ks6YD00;=@0L1tS2><(FddOF9r$Zx|>_IHM@JQ?ux!*lDJ?eKEYKQ7C(#G1tX
z;f5mckEaY|G)3xHPgYZP*DUs4m0?NPNsZGa=2Nu7n6pQcP^*ta-{*pr>pf`ey0&5eRQNx8+F>JFdKMpGIpZ<>ck5G@VqDf5F3P(Y@gHOE;SGww-RR9dwu+J;W;5
z+>)XO8NrcPSCjq1Z2mIYIZ!Pdf&GKfKVGosDX9F9dprEwB?a356uvL6Rt2q+{Hb=)uw^fCIC=;G6ZF2?yR+YXjU=#Ccom$nWQz2rtryfvt89J8%
zL&c9f*~6W^$x7>#M6WNbqs5-r!y%=dopi32qcQ^5k-z;tQVe(aOPXV|3Qb@A$A)|K
zMbDiYWFPcTnP@v{NMe5YpF^xZ1NQsMZtDuA(ibo;ujm*wU)vb`%mG>>bz0?Y496~B
zNUgrC@IlO&W=NzPJ9y}Mbu!JfMzmU<);A;K%kUItQS#Y+B`>-Prr_l#UMYQgkK9rw
zYzDZm?2E1N$~_wF>#5LhJ0o!RrdBTS?1)h~AV^SyLF?Q6Y;7*W(L9iWS|6s0^$XAQ
zaxku5XD??A=!`bwtm!ydUSJz4w?>3*hkuTlfxoe$to)H7GQ)}e_cOVa~=)Vy*z06}eGHvYC>aiND(Aa~|qyoh8I)X}8`suq~$bcjF
z`3>}(%I$~qXhHwRjx)CRQ!C!W?X#y{8c>V_DmZJK!lvDMg`Vj`^T$D54onGOOS=!3Uea*iqHXrZo(^PNZgL^TnV^|LK8FoFH#_8=^ywCS-tY6Rs!+eqI
z=ADqegrrH<;B-~`dQG2(sl}BiCeod?0*7ul3ll!v34-QV%#B?%rq>`gbPgh4^1;*i
z+y;?auEB#yikZYIRIVb!qrLA&Ip#l(nfjg@-{Y@09*t1ft8S;i)rNagI(IBs!X(xZ
zYb75lSd{KoecO#3JvoJcy9F(5D7@n%--M|-T1=1ZX9}Vk2|lPpl;64ziTfD#P#d&V
z>Dm1S&i2p9Ir5euZ?#-N1Oj2}SEOagZ@#aRWBOM|zLXNb#KmVN9|^=Oq`@Tcvbag)Q$M1T(40n}vxODw0M2;#Egy8GG?Jp!W
z^a1O2efc$NI)G+b<@)BveRZvY>N_P)_j4K}IVLzP(EVOvf_y&gO_>%ven5LnMVb}+
z9cHrpMjRc1FSTv&hZW69JHsn+@|FxQHWsl|Ae(iW+Kmfz^8
zA7kfGS8_(oq|3kG+u0Smu=MqxJZLoU%-r#BLLG3;RYvyom5`bX|71#6@BJFaKeL+%
zF)y<;9T4zF2I^b?`0tw9d!pe+w7^jRwlTZp)>>}1yB@riqpRIG>j%@mgbthvO;<+e
z&S^9t8|x=EwhqHyxo=C7wYlPsz<06Y?Rcjv#|ol_@po#qhUffu>c9qMT;%lL`hWsH
zGakqebUk_?x4j@!cP3)3cu$6WP0G8P*bIHU?1Okus`Y@S09|%2U^Bdu4xY4tWcdm!
ziK3<)_-e5+Kixe40POX%-@TzjM
z0*x@5PX&343nADYp^i*L=hw?wvUJ0!6I<7G=gJ#Bi^aVVbSYU2irh^S86dVeYp{;>
zVFvOg))_@mSulSs*u?6&wfP3nviNJLY?P}KCiy){o*n!h_wGLKQwtyy1eF)kbNn-Q
zPs%Ic2IUX_W9D`IPIZx*jZdA#1dbm
zezcau!^_uuNjn6GtocLbuV`=20evcKBW_=#B9GZUS9lxXsX_1WFh9x84Hz*Gj;~#D
z3)58cu6V@W(CSbxi=bk^U@6kNCtZI@_E?HUm)g`3B2ZZN01$3=Ntf1UTeDc8Ul9&4
zivW(Wp1Wn7u+@yS$_yhOJ1H(R!U09<*+>|1C2aj0v)f2JqjgzUR?a>0U$d*>SYQt-
zzjdwvT|7t1t@hH#Sa$mT{QNeenO!Tfvc8)GZ~!{zFUWUL#813NSgW1G-(-vyIRLmJ
z*}SGTS!o*yp!78%cwbBJ!H1IwXhuc-0@%{Mm27WP@YhAiHDrxPsIv;KDvXA6(Ot5#
zoJtM6w5TDWyA7NV}E%Hr`t5c%Ub
zNGSw5QS}hGrB&~vUniFPR26D**@ctfCeFKbVc_>J>5Y>OcuIbN;U)G}N3iwr&(;1w+C0b-knsdjO^r)ewl+W`sr@G!#0>jt-9
z_r=hi1rIN;Ig6sVTfVtc_F4#KqDUB4EbkU<)C35IIzTn+v)znak3Tz#_c`6|D7{9y
z&3>hz2h_0i!QA^?y#1VjNA;A*LyXor9QeT?&XeY~?_oH+0%k=9WA`0F)L%Vm4rSA4V&>A&XkY587dHKeBemeOmXHaIR*
z9FdY2YxR~oPDPg>aFDA0d|rH7nZELIiZpu&Q32g~J=Y1sdsOCu@6tP{Gusu>*=km|
z^=U8^ZD~yF-ZyHSxDs}zGq|1HO33SJ@xmTYSM_XP8;8@MB*WTIUN)}gzTPL|
zTC4#!e9S7S9MHOjSvilE=>aO^x)uVIFp+(HCLwF0j^wKZ+7Ft~WeEW8X;Qzkpv9)#foswUw@Clmaa~WYaalhy<
z5w_6TPa&Kv5e-njN`T&4L;ecz{)QphAMaFv_xI@3qj%Uy9K`L{H+L1!_7npF8M2TX
zU@)kH^A?0446x9=e|B_djW0I1x$h3El4UniVG0k6)RaWX>=C(e5(0G0Snpr7L!
zetPB{J<>=xcj)t%C$_WTPqCdOd_zuzqtDyLUE=_uUBuWlM-~M=*G#9JHb!@AsjE#-
zPdiCuIH|_30}3Y_y`*E@;MV`)?5)G1+`h13Bt$_0B_;JpBO%?PB7!0k0}4ZlAYDUu
zh$x6CAt{VBLrQlFDAL`{&;v-vz`GyM!E>(f`d!!eejoojPV8szwb#1WecuaXJs;oy
zt_DTi*6ZtqFfKPO<}#Ppm(ow8I=q|@f)BK?VcWZZn)rzVYhF)-C_#xIKaQp
z0ugWm%Y%cRB9!U!Cza07&PfB(i6!ujrl#QU8}5=yy*N@)Za2Q^;OH2ja$2<+V$(-A
zxqpAO2B6~yB-MStg~kJYeHvvrAXNG^ePugAzWdD);@NTkRxk3KAQYWmbO%({(M;Gy
z1psUP^z`@@o|p~MP^ontKAvncovH#Vx7)!_{oKie&y(F8>G1{MZtBVt%Z6=7q)W;}
zXkD&u6m>m^U@B8B7U__^Scs~lDEvP8_GNqK@a<3Y}|u74|%y}o;e}s7~3a`
z!}t%-DE+0pw)5T>1yuA?Kaond*Xxt2=eVqzjhybJsO3@bUEB@#uWi;?Zdx}R_dk&e
z`7vo^(k^l@eUPA~%FxdfU{^t-ADLqi(Me>p?8=?R^5=?jIf!;c$~*~tvxhyXQcT|~
zOrzFF{5)?4Uo#jtq&rmVp)g-%naPL*pJJB=!edxN;Pa7rB%IradaI7
zRS*t*Ir@ZKKV?W$cItvs#u7yN6Rz5J`#`w3F2dmgOdz}cOY(C0#Io>Pvt5<#2D6(5PJPM
zCzb%xEtsx9Zv~_Tnv>OW=gA!4&XF7{EuP&~+=Wex*alJ{JH
zAcUTIsi^m{PM7HKujrC=y!Q<+);cELnQ7;N(ViSOcE~$qBE2XvJ%w~d!cy*N5tHEl
zys+PVX}ect5Wv0w*Ek6Zk9OUY87;f#QL1K^vT
zE5^L;G4CaReXouz23+c$b{j8s@56L&PDSzg2z7@(RfT}jL!d<9RRp(xBYDlFK!@mE
zz?H_Hc1~0){L~%XJMs23G0_kIz;IR2T>E{P`P_^UkE823k|<57uR%1#87?0Z^ox0#
zM(n5R)JBtfG`~_We>Jba>-**yR4%E<9cpA=H1b|qjyI^d{r-v~!z*81{n<7lkT}V7
z<73_4&f{HYr-HpUNv7QFfUV)l^*w>a^@XGHLK%TAw-rdvgGkt-ubyRCe*%tVlP3Ib*#WttgLosYZsd*vP_lQOy*Xu*XZ<|c&?$w
zXLj>l8@Z^CYW@!LTJrTa;i}#dvPA{$Tp2zZoB)l5i!K?8H$-#b#aU#GnLTC3U}`$v=c80P6yu@visn1nlyPCy{A63
zesy{-=ZoQFpg}_Vl2y}XRb=_a0u`1{av#hmMBr=LQZpBqr@U_6!P@{+zXuK)lyx?|
zJZ=Mmp1s3^@*ePv!-_l(etCYnI~gTpF<{yrD@2Gbdl<#j54Bs?BWXyWCn(Fd*vDy5
zs9Lq5ax$ml02+fUJr8;N!Clh)vdDYQLO+}tQmkrtKkffjw_Mlx@^=R6bHMyEGg7?;
z8yE5@2|7IwKi%ps9@NVs=B;`H(#tSN{RJJlk?_mgeLjojU9iM|5CX!M$8b8;FYu{%ebQwKN78Bt!)(+@
zP+#Qx^U{J!v)&yjz35;5Yji-1>x4zy4BzMlP!qLy%%`-vJmGj*P}Umho?D5J=!Ctw
zsK@(4%Z@cxKh5v4L;j-BL*ur0s*U;r!!VC9KXX$#NqvnS4v(7q{V=Vqqt+VJ&ra_t
z*7JrJj;d{2J0q7(H)p5E5Rspgmd(XbJc}Lbg3tVf1<)luQ7Ln|*R*2n^ga2M%iHL~
zYI&nFZGl{!&xDa?+mnxSPi_0FmopFZWNk)LR5??zpIWW!^|FCBtPEjk^~f&r7xKuH
z8fJmm6H#XX(9=8IMYr<1)IKIR@hjBN5S@{p@-xJU1Nk`g92;S~qJU8|Dhu1fa7dNiq4BWVkRHs02*e{0BJ}OF0P0=Lu`iu%3@IFH|*M6ueeDY=c&zmfNC%7(s4j*X*-x*gKDe0ZCe`}TX
z4s**xvXV$VET<|wiIYoiheXS_2^RRaWO(807)D8>tktuoLFFebizq?e!k1|a?KiV9
zO20k(B&%HMMU9)fMrzt~^gSX@wbZvr@y}U|$QiR5s><$E-+Yqo~LB#<1KK32+_b=RMZRnaE!ek`gPm*3AfOJ-Y&
zAtEozL|F+v0x2J%AIcH!^_i}|n*VToiZ*G~g3s$^6(&3&RNqlya~6jr+vKsi(-iI#
zUc-O78bzu7Ux;P9-CvKV<
z&!3kZ{{0g1HjE06<4CPu&j2o=ECNbpX_q+Iz^hWe)ESGspZC}pc
z<@Y&hIo)SE?3KZ)L&ZH%ky~tkA@zKah+Tat#5d)C{~W#KiuLi$QK#mW)1r;dMXKm5
zlK@E~#gH0}6smzotn?s}8+GpGD>43EOlc!2c&BD+w8om8S--bz|Z9VVy^Jbf`
zOj}i%Wu(C+hf`fOpKH8<0!5#)|Fc~F`cSmhL!;TI(9lCGOCKAGRXY58=?qQvjU2H*
zVFLGA_jSVh^q-&X9UPDa6s1>O{2t<009e5k1@s<|#Mf?-MCHj(SIa%HVHC_`OF~Et
z^GOgl-*~hul+=a3DmRfMf8wTec`F`1RXMki`A-s{HgT@!O~f
zKi7!%^$?0ns_)US;*1QRewBJ+OD_}3DG`*{X}q_e+I-FyZ$%HBsaX{GoTUHAx
z-mx2jGVzfe|6D^h+L<>`Kb{lBQ($n6IGL3>xeMhw%uCaOOanjlcKIO`DV9?`m;CQ7
z5b?MjXZZ^$PH`;`v!bV`=V5T|J~8x;eL<95%!<_d9$z(cv{ONU*;$z6_ebEMGneAU
zf9dm@ap5g4>HP|eS_DW^Oozm}r02<2;vf*m=Rvq$1t`lMM$FRJ2Bq~j{HWVZqJDp3
zo$n{gm#Kyw?aN?80b{k5u!lU|*Ived0XOm@kXZKzQ0rxYOVhTtq_aAr?l+_^E3()}
zfPB1)P%Ny$DH?^mBC2}<)c?_c
z$ztVn1Id^Ncn>dL+zSJFypVWBmQw$U^`ZTAr`CB7ScIU4B--ev9A)C?8tu-Rz+f3#
zotTXUsqA}&g=K!q){l;?{DST~#ogBDXwjSsLT6>Fg(m|8IwAJ0c>8`EqbxZ^wRV`&
zR@@K~T($o*@@mZM^TbT=Q4hfdITk(0IJ#PDx0hVNi-Aujn_K0&#iUrG@1f#|l*2q9
ztFokJR7Avq*n&&d_Eyr0)0SXRU3fuwB<)c#iXJ3dSO-|9$w3@$CgwnN
z^_5D$pB>WQaapU*?Rz#i4&?QrU1$;l>KSH5?Q;86Kx(>Qy%E40pL6%`u;9u*PlCmN
z!nRwUQc@c(Bqa13!2kqtz2cXf3xHnGS9^L?Te$x_(8%(dnrWTaO~=Nq`IG`8kqQpj
z<}y7x6ThgW_NV;AQYg7J7a_FsA=q%wmgs%_*HNP~)}s@yXc;PLy`z4o+Q#eG#pB@l
z0|s^Js~PFBRJQcGd(?nC8)14%*Z7sdf(i?#yi4#p~U*~WlCx3
z;;MZ+Me}$2TSXg;2phZU{;+j-ZkNt188@*P4YkSnhX%)RS!>}h`(Y8Wav8b3m+p*=
zBZ4~IKg=$ojcLxWlFZ-nOSWS64rPy%F}sWOe;j>-)ISFgK*AXBDX|>2gkLL`UBMn~&aRkk;z6V=>@1unhzs
z@0x(58vMB_W4gShQr0dZUjmXogzM_pV4sS)u!n-*
z2Z1jn_*;CI85yDdd5amckIM4q5=PG
zy2X-YEP*J;2s&UsC7vs_wSy&}
zcPqUuM&axhnDv}>l0n8_z6n3(o};g4*#m{tc6AN6S27UDjz*HUU24=O48nVMSG_)*
z|6E=SG!$$yz_imZ9ph;J+rj#c;N4+%It2z0Vp?yN)xsP!M7Mr!yt%
z{v9WF&yTnNZz0NR;MkW_k`D?@o*DpsU0z=w1P5Rh&l!1b>K}7Bq!a@kuGEodhZtbv
zxkb^cP+_BEV`F!WBI?0P9?Qi~uZ?6Z8v_;vaMBuENUrtyGPZ;KV4Z{*{xbPISHN`J5l}a>IdKErauk
zMVHooX4#sb`IC}{xU4Q_4lO@w#WYe+Qk%^t#t=o5fdP
z!)k)}bHQ#09?o$}3gwR?bC9GtH@uZgsrDCiu5n3gI_lV3Mc1Swd$fLnvZ;2Wk<+E#
zRRzO{MyJfRNXBz@2X0!mXM>D>pP?dUV{__pZjsSTySscO(^Z0=o%J5d-O+JI@|5J^
z)!z8CwA<_3MjhN9$IF$cJ?o^4njQp}p^zO4@NOO5`5Nl^DDh})0bL>CzCp?N`S-fxBdxAtkfm?5y@jgXhAkq~TPu0D>>^2IiUz&RLW4UC)8aJ(DFsd*pMj9i8l0gp?o-b1
z1f&W#%DQQaU!M=!qYf|>30lxHKmX;soT-)7O34hi{Q5JFOEZpNdWWilj
z$zC}sZ1oUCmHHu860B+7)5WL5xvVYd(F+s13kO(+U#511fz8T3RVgnTdJ!!9KX1?=
zB&dKzF@@&(E_FbS1WRK@cuav9@P0ywDN{~PCizMIX#Z&@L&9;WYxMfBK)KGEA0bvO
zL{TE1D(H$2Gat+c0|oTFYR2bK-q?4OOkMSQTXBIa(es_aDr=I_?P={$#m@De2W~6f
z3IPPd%$dBLmi%~3$5Vtt!oq2QK4`DG>wNuBh5JkA=ci0w?UYa3KXXR6gV`Ybj7ux~
ziBNVKJ8bW(Y>^DqiCPZg%I*3sAHn^Pq+O~RrX{~_TkP(yoqH?XwQ>2
ztQU;*TzFZ>&I#tK;=-i
z-de&FP{SmuYK~=%p@6_!%&&ge|juqVEcQb@tW(|`HtS1>4y991`>Fx6J1-$oh#K-HA
zk_PB*WTHakXLOaqbc1S~>gVmzTdrM+dn2D_PRfs>m{V`}Qte2TNvqdBe6(8`d}qW;
z6!BK}d2teQ%K!sYe(LGa`8FZkg7y~4;bgJm=2tk_RHE#o?<{C)uZ%~HJ2L35W29+2
zs;{mu5@NjuxsF%jq#m0Nk9N
zoi!KqL&<;xS0~qC;Uo!5uYNn3xgxW+djNHTtVSVh2~wxhUc1&k;QticW_T_`;Zd9l
z{x)iSJpq`wHbWyuws7+vc6V#5oU8~E+V-0}vv$=ebu-=i6Vm63R+!M-XUG3Yd{e?e
z>eU&JlJNNQIdLDT=zu5jHTpt?khZU5)G*)Mu$0$+C~jlF_LX{Jw8YQ$yB@Xb2w$tL
z)mynfAN*P`P;SL*=lD*E8kMwbW)X1~40D>R?i8HU=V%SFAVIa?qihM|k`<)Th_aV&
zxq&57WIO1~Y
zJUEWe6CeJ8LekZ#ecUdboiwRiIPLCdOIb1(A0bgd^b}l>XZl}Ru%6_y|Kt@u{!_Z^
zhha9C8d%~Q8v{bM;BUUB1Q8Fv!+lTa`8y_FFqOLCn`=etr>whgLGc~f6>et>d)PYA
zCT<)driDknK{kCIE^%pTjkiWPE$ZOyo4v+cQO)>>WYk37bs8Ly`lW8EuaA(0q;jEt$^Hfw)CLSv>2HR4
z2=-K!W4rbi-T3#Eeh|*4vu8^Xk>^n+rZd;pu6hmL`_i5Y92{^-Yu4TkdV(uF3&ZY3
zAFZ`dG*tC3Jl8rMD}p|EwheW}9nWPrU-dc5#;le>Hl}wt0a*^c(O;-Ima*in(e}%f&sHWyo
zymL*wh7fTI%UjhbuvbH<+OcFE@=vZeBe46*$LTXDrGAdd+C$!8u8)`3wp(JfXBOtm
z%;IP_w~EErjWc(l_P@9+Nj
z+gPKv9Od`c=&ZD-xfQW=wHa4alQsqR-t=9~D=QhzN>xwXpim5u5jvcB2Rn*I3(|YKWeC##~D_u37HOO051-g5CWRN+IplSd1)Z6{kC@amwW24|`i=%sKmTl|RCSquHVpKdwJ(>B|9gZZd=uB9#dXN_
zVp`>*zJBWfr^93emHJ$d;hyhj)%?thNhFPO$^p9P
z_SC2#Ow!9WSjIaCl^CTS9K@6-eC%4F(CY6L7vag2#9=6J*lH5!>h=lm{m)lQ3X^$!
z^_c0eW7QAB4wXe+yVmImDpjJ7R2|l>2s(f4@WzsM?!evOr;T`Ba*N4I
z$2h61;xS8xOL&qJr|LXIWn+xZRmSw^PBg&uEg?K>j$Bh%AhHoY$vltro{p}xqE(km
zrn{-%#Kud*=}}ewV#r$Hu*#qDAU{;_v$}~E=p6{?V+Z|DuUjNp-43a7X0C?Y!;OpKP`l=p0r+zvkan19$2U+1ZiQQRCurd~t0b#4xe57`E%M%;qEh
zwUY%pa-ta%ULEt`x+DaXVa&)2o^9ReGStc1AJnHonm2?ZYA-6n$dI(#a@`UyxtTa)
z;TUrY;pNyQX$|bdK+D*k7j_$VV;6^QM|CX-nq$+x?nEBz;S|35Jbu#z|G7jFKI
z{qEkyOnFIKWyO3ua(2$iuWge8puQ3^X+W5z@zw6WE99*jVA!~ua
zeb4mZ*L!imfeA%NdV-+1g;?niO>2$YjGTUT@=ScG^XOZ0Q@^*h`$V@>oK943fmNsL#BM{&
zin2^7u%4Eg1a;>)Ya9^RYQzXehNJ4s`LC@&KkBEfe#Tln
z#PdqF<)NO`(FSEC;N&6yf^Fv(GE^_tT*cm)J-h-Vx@8yo24yy!6I+i@jJYzbv90#R
z_iM31+5YAigE-_Jy*`;r#l}!q78)6YiIu)fNa3R@hb1-0bEMP71N6ip8DO#P^quO1
zcAEhp&*Shso@GkxRXMkL_JlxL&)iAx2^{YpOK#p%R0E7n;CSgZMN0E8i1Ha!4tUuB
za!;oZ1SolcOa7nJ)`Jb!PHQYmSLfA9Ef&d3xY82$Dh}
zKekmrLpINRN7}?&9#tjPqV(EfD4p|GI;VG=3|oo4(RV+klkWI-%o3Audw4ixPNJV|
z-4RnJFrvm6*J5oOEu>`nCLsu___=#_Iu>TO%5j+fz@+QulYv1O`*W;`alaEDpV-%4
zbjT%~HD^>|!FwN0{4(K<-}pm%E}|0Q8$WqAbi;b?+3Gu;!>Dd}kah5qN3Z%Nuw<5(
ziPCtu+3_*?t#DMf`>Cs5zJuKQ=6iIPLbU5-^eD8qz<84lUbCNSv+`;E_(*Q~lss&?yk_HF$>_PQ3i(A206WtWJp1^VGhTPmJg=I?R1`{QW20{Um6!H;TLC4t)0GTnW)B9wr(CZyPwEDlV*&BEddUBf*_kcw*
zWM-UOTC*S!d{
z0Z|I_IRZ#kI^=%~Y&@f#gJsmBxN#sFB4?E3fq?vO@whdR^%4^^)dJI6$WuIXCnB_J
z9MLHSQ7wxM8_#>91rodKWbOKWok|FNtnJzdPkBe34sA}2!6YL&&iz!K+x?B4vo#}a
z+hH@Uw|0>BZTmNBawavNYj2dDE;=~A>=M?7V^RE?@TG@geSH0|l3MST3`BVZ{3y%ntI~X!NIJPYRYM>zpdzQc16Ns_)pTbMR#Z301p%FDd8r#Mu3q)M_vf
z=sgiLR>yMkKC>)UoF%WZYU!AH?e+xLw#|F_eBML<6{$E2Zuwyv7JC8vq7bnF&p0f-
z4bQJ5i(4Glae|=_)h1IC6+H2ptZYsf=bhq|s$Jr2Jf?3|UbdB;lg!djU#3veJr)C0
zYKLBBk<3mFj(7{*V$i4~l-@W8809u2>xt{YzF=oi-)0n;r)C#+O6zd2KrA}%`$s_B
z40tFW#oFAT-Ig=8E1hy6Yi2;?TY`k5!1P)gvh)@|J>Gih_|Nn8?=#H8vgEqKkG9u76g+>PRnhW
z8E)wU{zsgB2eciTDZNna3)w5Vm5;-S5U*Yb2JTrp10r$fNXhRvXrp_EsErmN1T&*F
zbJRLqYfm5uWi1pz2gvAwiN|wn5Cy*{^`Rp$M3G7M1iKt1b1;qpJueE(EU=s{W?q8m
z>)BSn9hd7oKH6J!4%Ue;>yyq?IU1kuY8RQzj%gld^W$qWjl6e)M
zbx>GFuc}t*iQ`vIdYaM6b??0GkfSHvUgW!QhMh0@kzegbKd}Zk2B}kQEaOIJfn;v6
z5}U?BAXh3}^eil`eP5op4{qzQJ<`E)Rl)N@LsswmDarCp1oo2#11HH?dob0A6{m^x
z12yA@w#Xj_C#6)wX#qT4u6>=!%Nm>eFz0={9P2GaIln3xz~fKWK`}1F8sz^j`N__U
zhS0d1(nSYvwf5uRa3E~Nwy95Im%K%z6?ooNT+vN5IY|fCCtQU!LZU*lQ4521^b|cE
z7kfuU`0ik@%|a(=VQA_JnV(tqKKtpW+&LctFT}L(y%PZW1W_B@(i6
z3*5h?eedeZm7xV0OKdwjp((+s#Ipht!2n|LL&H(v$mD^oXFB$ky3Y&j0+JeN(E;f^
ze0w`POCRo%#57I-KBHcf1zE&EGOSKqQHvV~V3#Y9hlFOHUe3plSAgM&v~(_n=R!nT
z$SZ6G0q}Y+t-eEGM8Kx_o1-ir95i_l8#}UNty1)6qfb6gGpl&vw6t)o7jpO#W;1ng
zaHyrOc2nkdDJ6{Nic|`)pu)jvyQt@nEYjpUp_uaMziXkXyEC{Bc$SHqLw*Fr4!}^r
zY`!(}5D>95pp(*@rmS7#aUi|t3@o)Dgh7Jojvp1
z!KduLWKB5MbIZ{jT_KlTvpjMDPH1Vm8MHJsT_DJ>l~l8*rhtV3J%Y^c3pFhy^vwO{
zj-3j*bRn;s{o*fz5626rr9+3ZJp9z=NNw^u&!^p8su0i~AUz876{G+G=ID6%w_8S$
zNqemAwDD3;YFLUs@DUbHUH}9Y)rYthA4iPnJ7Ieqy#I7idF)h5mpN?H9QE9#nc
za98v5PdZ{;4+Kw-@=h(LXDvGSgC^PCu!hZp1V5D27`aX!cyI&6&3cc?Klgncaw>D?
z`m-N_ZLh7m;r2!mek$?zc~{|a7ri2xl{+Q*O8Q!U`cKZQ?q{J)ZY3R1#y46ve}8@V
zp|q{|5Gzr=@@&(VB+;mHz1So5Cb{Ow&(ip%{AOrl+xQK!nA@%Og(xdx+|TXR*Od=d
ztQMwcko!xG$68qGlUDu2oSK=M(&K!T>vtp|O;PUg_G3LFEA#Mg043^Iz1s^nIeV@a
zrFMUA3RNi0JefJyMjW^%968l{7|VmXE2Mq*ZS(iB(4_Bg29RcmS#A!}{SxQn2^k6z
z{Pd+2t%NnYZhCe)lMw1j5p4}R7-nj@poMi^x@N*G}0l=3?2RB5=NgE25wfhX$
z>u7ha0tk^<)=md=sd)9WgLx_*P{VC~p@hY8Wnit}3mgTA)%|(L>UZ%KO>Lic=~!|Q
zpe10@4tt_%Qo#9J2E>~_JW@#{;Lk&>Pw3FRmpO5PJcHZ`a;VDJN=BL24qN-Xp4dIr
z`)KrD?0%HKSNTAmejfC{0d2jjHImB_5}^P?>h5_t!4*8ALQ9PLp&YYyg;I_m7A&~RB^|IZ4tpK^+VQ*Ab^HFj0y+uBAMvB~)k~B$
zZ(oY*Up^$$z!nZ#cLlDZRi7C1>>aKA(6gwoT}ZmY}P2^W`a~$!+7L1zkZWuv?zz^`NEd*PC)ovs|~(Sv`xmS!}<5
zf1s-0SC=RF3_DJEk0pA#{wG_1OMpB$8^G0-klg|QO*w@i3?!E_gYffFlo9Jx!4-UX
zEH$B751~}L8yRx>j$88e_Urh4=kqYhhx6}B-{R^a-qtOtVcECta1XH(`etL~4S_-C
zYkqE;%>|A*;B}_H2)>K&hriSYm5KjoiWpkRopz5ViK`$0A^{tJ|$|2z{Zi_
zM(Y~bQ%o=t{q%(Q^l&BFHn(}mh2E51GLa`>0?
z^n!mtm=EU!*Z=ee8*#h-h5A&iBTo-!;mcqCMONL#h43o^|1Cqc>d+7rkE5Gee4SlU
zjXT$1)?($s4;YLnON79RpHep|NJG^yJ!rTCmhmyg-0l?K^hvknVso+aNUH{KcuJ7#
zm1|XHZD~sCPlh?$^Xz4$ufYl4A@i~~a
zuIC9!!uMTRXakitJap%UMA%sLb2wv3<@VH4%Wf0G>c)hsE$;S)n!am81aV$P=LaFp
zR<^vu?p6L&-il8;3K}(Zh&O<%|AZ$3e_KJ_nUN6874(=U<0Kl8$AlGKhrcw163)i@
zVTa49$@%*30
zf7Ufj=UF*9ggg_S87&~Co>dop>iG!OY7VK(9oN~1<{p>4K3o%~q}CjM*WiP#G|0Ti
zZju=ai@In)f~$fci;sIGYfVE>`&x-QG?CcN%L4Jm<%|nZP`p1~U^uScWSBE85wA*?
zCsErSU1>YLblpLSHre$3uvOA+e#0i!vV4h06eSX>dsd!JzF!S(tp(Anro(!rA5G%`
z$7Ic~JPMFnFsawSOUEkk3^_}RQg@%UAzH(|yr<#0F`HTV-ZMkDLowB=qTZWjY4^#t
z=?PdRR83uD5OnawrH}1Rmmg9cU+*$gaskDGd(JQC6hH7T4b`Oj#{^Feih9
zG`jhIzH+~Yfn9$fb83cmXqIgcb(L*UO)_RzEA0@b(Zp$PLA7@yJARH6uDHuko^KzW
zMW!CC_X{73U@|7vdE_0|;`nQB7l75~S>4ttL>|37H+SX(Q@!9`>_rmp@ERbC~HXvpJF)9t5C_3D9k
zkxM{})A^{LgD%YDkWx`b=w
zDQcCkOyg%E&Lo|F^<23sS+VN}}
zr>MbUg3`OJY9;_!?(r5{o$f_-{%UE+7F$o0mK@Zrlg8KL{Cm4pocpKUfunmC?tOU9
z7DzVg4B1EiR3*5C(-or-q
zL7df(C_`1>?+)tcs=c4*G?GvME1T1V^VhvuGL6$8x!lnTCCkb&t@pwbqrimZEX5Lg
zt@oTJJK&_i{DTr~#x>f4P(kurJw*Zi{bS6*@70q~dQUI$p-dNqFQE&v=BQwQ^=b&-
zmpg5>-QuU+x~;y(g|egyIrOV<2(%IcF7h-RRw1v=E?7U`Jvcvl58;|$=IuId`&Rn9
zminb;$v7)c@_Hc#%_6+(XQ-o3?*IDDXF;lK9*hD2u}F~Nm43xk|MhP@=iP+;ar)Wu
z#fe@zC4Eq%rm^sgX_RI@jkhN&h=EU8Z@?Roef+)&82ZOYUkh*i^fje#*f1~r%pmb2
zkSXeNiSW5LU@Q6Y#UXV-TP%i!nuNP)sRi>?eg4h}qTP{i@zuD#ZT!^81I$GQ!=di$
zu`8`9)PD7J5MoNkyc@uA1GjRKO&J8vDa=o(<>TArj5PSbCai>
zfIDXTB9|Y(=Osq(Zvc8o>q}6JYyB)J)sh_loNaFO&b$hCD8THQeO{-+OK>}OM
z79;E&m->xcs5#9vqNjqPZBDKQx3{qJ3&P95x+XU$GG&bE_#&FKUEXM}ghR)-ds~XI
zpFkafhH*Bco}2Kb-*>P+u*A#fg|qx#kN>x0a0T}=&Y~3SWU0`3<@kvO7-cM?_Qo|PFi_TpH68EQ1{Pwbx_dPT1LNIyt?r5h3LIkfe;h=TSH>n0=
zS%vxmRlb^wS)I8weluNrLDiv$lPYGdV}<@+fkybUSI;uTMYsR;or*l7
zf<(MR&tlCA;7r=Aj|2#O(>X5e!ZMtx^Viixc$4dF$!9phG{MpUxlZ!>dwJA>#b`cu_vXuX(PbB3E30-{v4{tv
z?GT>>S}n;fqfqrnrK*d07Q}~9a2;D~tGd#;ykho6FvPt{uGOqV=`eJ7$>?jqFxQ)d*hd&arfOgj}0em|7`NY;J*>>e;tHZvU_iU
zRcbk=p-K=;-~96BOF8CzzE+osx3|pTEx=5=HSI{5PfRQ;l{9>b({39%?rmAB&0U;C
zBvvOErlz*@14SqHGItnnHH}VMdw+ku3Y&+$-`mu$Vkv){BRe|mC@3qt=ruMEjc%Co
zuS{Dyg`XJKhHQQ!=Pj|yq-;}Gm%61)sr5GOMV5$S*qD=Q0GHMclUA)bMb%=?O4Y7U
z{`W;#%vq!(tk7M#!ZP=NXdEe#H$}QJ2T+FCH^!%DTnz`jjex8TNlH>njVbQA$6vDc
zDc*`-DPnQ<0^Z(WxR(H1K_(F!0W1aOCH-nJJQGE&$#to7`c}JA_)z!hB&*}cT
z%m3#clp6oAW%i4|dCiZac;GIrgw3zzQqppS3WjWq?jX79g(6w~C-KzL
z2luh>{rtjR*SW!=t1riTp71#`xp9;4#;?ddb>6n`CTOgXwN^B%`}XAg=&R|x+??r_
z8!Ay3$liD4#Bs57tmPU}+C-f{b{+iCN&JI{riync@!}~--V!_h2;4&K(tDDQaN=oR
z@uB`%^0uzrfa5Q8jsI0JnRxjPhP0XI
zIfk2BuS!#)W?Q6nZR`3|pgjJ)WPe;@{}ZhLJ+lAQcmKWA1?EAht2^00>__OgXJs$d
z%%IqT{hAf)-jSME`(4l=*1HI1);F^qe|^-HivCM~=|S$Ivc;Em|Ex9^#r~O^^bB*=
zCpo~y@L^imlcL&ux8ePiN!>;bTk}sDLC`Co2FZwuKtE
zJTB;uvurAy5)GR%*M6)4Yl{z+B!jEu&h(@t>SxZ6S{fIcqV9Ea#0YCKJo<%TL2XcJ
zoO|fx%`*AY8S&SxG5Sb8fh4>3v_l<1wx1gI!5DW8tpluwVoaY!!V9x^sVnEt$^K97
z^1n|u9!^)&`=i9upCv5hUT~SdK+6GEPg`sLgEAo9`feF<*Btjw95MDtYxu>0x%lE;
zvTt$lsYMO4^JDR@E;g9G=~TlF6#1*HH0iB)b5$}&+gsF0v;_2(bxWpk?AiV2H!CiF
z5w&$gxwNT!Z}bcY0P8A5obLAmzYpu|RU))EslTl-M)lFs-jaSq@qoVVbncLG`v!s4
zaIyR>pH+$7V1VC|4+Z{*sG<96PIAMlnqS>(y2~>NZ~WrX5U05*l;($x+0xtEo1eQA
z=YK%<)o{VMvBH<6>D}MnJOBF<{~!ATjAh5csdzSCJJ_qwn_IvywfM9BUFd!k2{ydx
zh%RB5(w|ep-yD|ar|dYU33m+nkzjcJZwdDZrwGO$fa8ee=brVFOXO>XenLb|$$ay74qzf!#AB(g
zW|1$tS}sKYN|tw{GqX6qjI@|L*(px&S*aC|tw==zCzvYIGF;PW-K))KIT}`;VBgfa
zN%2aSjU4xL@{=WL0X9%`R37>G@ogI9-rMTwm}k!(3eguN0d9W9_dp6zGQ~KJn>3ES
zzX^XDO9Bb1T+l**DjVIKU*@v|T$
ztclahEd0n{S`d3=SPo|3r14(??%I*z%m)h;8rRg4%j};%jp0IZqB(zQ_y@_!%`@oO
z-C9n}`p~zoAA3Ktr@>rd>nTZ)9E(7^l_N703S0R5Yqat3oZ^BqwW-@TmH4!NZG0F8
zQz=F?@FF}Y^C==L5X!2NIY9Q(DUyAU>fOgoTr}#h*DXO{IC~qH$$R<8nub>YG;yOY
zLJ=)Ei@ah<4}*{X>^~Ze|C1WL7jk1SOaJo8}$P~F}gt4emby`Z$oEWKk7tY%owy;piIHAPBp(+im97msv&_(?z;;`-6|-i);a^m6nqbWYFkvpAB@#DEUR6-Z(br$
zKNl8p)aFWhn2&jl@L@l*|0L!D
zY8s!Q#nKo_ukk#VXTlJ(x9*zydQv~tn)7x{kV;qt9Sdp)zdvluHj5Aa%4BJ+A$rv<$o?g=XoaobY=+lOYk(!Nqh9f7Q}D-xRFOQrgYR~3L`
z68DyqW=fWwm}nRSWZ4AJ-ImI7i|#ZD7>(dW_4jvvX35okB^FG)Me-qvnc&=<6OY35
zq&0n#SDf94IlQrC3s$095yW3a51i#z^(#*rPegHc-~M0b2MQN}2y^ik$Az46Ge0f=
zd{yd4bk<e`?2a`@zPxytkhad6~DG*%WFSudHEpiu1=~Onb&G=x&dbX`ghUt?h766
zxzX5w1>r?N`Ze|&zd1c`P3!NqaB_WnWJl^kYe)SKrZE8)~wIa{!rn)Zx#?K5uCRi(kGW)(zBNdv{ndd&f;?SeWw)70ltT`u!
z0jAQ>C>YOm_sL$+2`RRpR{{gJ6`@f;u*)c*YwXH->>hkDPODLiT8+PDeId&-GGh^T
zQR!FT@sY)kZ7BsT;wbC9=NnG9n40wFh;e2@SYLKVLu3{|1&n){Sg(YHq-|9+tmjn>
zS6Cu%z3AMz-avyIv@IiLsJw>Qt&otT@fg>Mc-q|~E>!|v(#s>l61hM)CD&h@u^cnr
ztWm2}U(=J4XZb0u&5?XuGs*qEMNqDpbLgAgm<**D@{rQX^DG?HOk9H=u&)-mSbyvq
zrO&lR;OiA%7<=U682wMO&CtDN
z;A5x0!XYvP%#alJ#t@;xmP1HrcoVHH?>|t|?w2eoAE%=_LTMyq-6t@C8L`OgkJQr3
z1ol|K?M49_$Rr3%MV6M#q<($B3Ay`ZGdTlW`GrL98o;D`EVZMNqg$y7O^ODjzHMNa
zrwv-kiI6=Xq!btMlK#6!SBo;ifpH3WYlEIgH~0V!#Y5o6hXe!5Lx4Apni8ZPhh*tH
zf!_Opo%`D=l`Yl4UB2H^c;~f9mE1abppdxKyn
z7kdeevM0lsq1{5bRt62NuddcMlNrEj(&S)bDG+{(X2LZ=Mph41rfPlaq
zKteasM9u?9PEC~DKuf;sFmvnHn>Tgedv&WGf2gAAbM`rV?X}lh`&-}V)N6^JaySQD
zS{T4S(&@yU$f~<_d);~Q!?{bDhKEQzs_C_wi=zgI+>L%dGyPGo&yJ0?wtb+d#hB`77Gwv{eP)R4R8z)
z9ZM2=ERC{8q0DS3gV39l@HRNTdjnikHMQ0j=Zp3rYm%Cl#77hjLk!0|U<&>*YMC4yah~Z{P;&
zGcSFxXz9)L#oEd$$mt~#6#Qe?#mXOAjoHK|;ZyX$Srne}R3T<1DX
zXs|3iGZfWq>!-;Urd#}a=P|#4Kkia4iepM?9TKr3aSKP*CFt#wd)27I{;|^Xzt!XJ0>`Yai$Y^atFza|wWg$&>AB)qH`a=*e?$xov&a*0g)>
z_d<@Khq&UaVj0B55oMlTXwTr_>uV0ek#VD^7%0nhI;avl5D0`E3L`RkxRj&kG0W+O
zLOAIszCIhSa0%$RqJiS-C-9Qf-d6$K)bieyTlCxgj)$5lk||bF-hHV$(E#jP$-31|
zNUT2Pca^yOkh|2X;`v^rl5nplwqh~Nfa{oP_h(~%;_DyRUSBt|6&YdcU1kygWe0fChlwr?)p`=A(@Wvu3E@wz8fi@uzJO5EOU=5`k|Anf$=$uNa166=+q&f
zee*q+vVh;)$%y(YpL@oi?k#BEkTUMRXSCKB*9(+e`or4WzL_quf^Hs>X%WtQts7gs42Pj6&vua)o5X`xeq>xETb#ucrPCSFwKiSegOy|
z$4#FxxQlmMTAF9QSkWXj`{rS0xelqEtoHBi9Y}jgbSqmi0q}&I-p{lsF$>Qs7H-rk
zvP^RaL@xYZA-Cec-qgxnbD+TKTqK93T_ul)-G!
z0c%>n3#ut@C`avMR}_f8J)OIqIg3bKN}@+yZv$u@P!Mag%8Wk-E1Ymn{wHSPtW`8H
zXBmMXa(%3>bzEJs2GLF<+n!h%PRejwGU2e>qrY5NH}+WOVO^lDRFF&cm~>FGB~gO*
zsX(LTV%of|bkIz(W@1k`*;KMwX!6!6nZpbQZY?jHqp;TFvFuB(?MtI>9LEX!%fuCDC=fi6y1qvF`g*W8=_6Bh*kJPN
zgGFljwJW#lbJ$7L)j5DkpxxB>-|rK6)KRg@&93eTxe4t6yE-X1p&aq-u?SYTr%}%D
zt*E}IZ}eTv2HuuZq1yIHh?i$e^5|B$*Ryl2e3h-qQ5H|xjxx^hky>?%ClyNyCs#C=
z2{$c_BtEQE#jCLZck>RD0xPxYgDP`Zy!T0t?4dr*=8Og(alBjVX%7{))A9$kXt!&`
zk+B~}3Qd4j=Z&jR>B8Nj2RxAMrLdg#=GDCY^){>LPb}u%1Hm-Uj#)nX#)neq4!5%a
za9kDWl(~x{x66U`h{naPE{b69FgVcVM3Grv5=+u8c&5E@*iCW;Fb?zXatXTgZ|m+k
zmW>(^Y({k6+&K(z-+4k|@po+89Ch3i0Y`>TMqVzwm;pL~oM|($$!!B^o`qDVUk!hf
zYPvl&A@QXr)S$6K{Mh4da$d(>EPbT1zu3;nX1uB-`}VCpy)27q8K?Ib8}vn4lJYs9
zL{Mlaqpaw^be)i}olfzgCKwu(2l%GD*7F~tjO5&Bp)=IdRf_kFy(g#KWo3$QTzk68
zy{EW&b89V2ZhI=Uh@s`x|E2yG)ZOa9sT${0RUamJwfmiMFg@4uhBIdf4@+LpjS=GA
zPjfd6cI?RFLL5o=8A^srSjoeM0Q6!x3nyrE;v6H5OseX|Tm>aQM*A4!Blg9GGZq+f
zGP(w5*Egw17w!c5(fQ1~*yXqT5#*p5_R2-0n{+^3@2Ua
z|3MIaJmYEj6%>19cSrv%4nbX0(zquB6B28k{CZ1I5~uXKpxsnBcE!`g)7?o;a*I}A
z>Zz1Dt!&(RHzWCop=3mkhB5w)5-uil?s{r}()mqC;%kGY*pSR7tnGw$_vl2gTrgc|
z);NAREwI?2L-H$ixj*TIHQ-c)2h-W-k97%tU5I+EV9=JDJH26k9~Y&YT*5n>i8Jic
zAy*jRcXod1X`AJn-8i@WZnTPB?UeeF;@u<0q;Y0-7%U)|pa~1vSia;;yhap#^X-B0^_RtO
zgdbk$q+TkuZ8nyCQs-*>37^HrAI-Iz?VBKMn_FbCUDQWCcVl&~)?*qi
zBG1&LGlbc21~tV6LHCVcjK#cJ?-slumetf1(q$w{+AcW}!KD^#J8#%gLO;r;L|ZI)<#??#lURGs?z(5O_84a-
zyjW$NVp-lunX$FGx~=WkhOGE*lImG&B^0Jt}(R=X&u9LbyG1dffJC@(R&T$sczypEU?EuLP3Kmw?VZ
zhjpXO7Ah}PGU1ia26f^`KK?|Qyv(OfEQL(B9!}PHnpu(YgR(*Y`R7^OGH1Pc~0eJRfa2NH)zn&fo
ziLN8an^%{gaEt*nj!Q^#O|r(bCD3j)ol}#NBBm$!3WK!oRSsUIm(XuuvohVW2FzQr
ztE;QeF3Q8aN7
zY`XLm2tj#7&#;=YArb}imO%AM+#wXM8+-Y{=^%bZ-(?4=H^l+pyDWs6s`J|reKvml
zcm)+Xx9KO}pPHW5PHFu*_Y-Y>n9%<^ooL@M9TH?8*1j18%S+p9%B(A1UhJwLF#x;hS}
zpvLT?fmlEtyY+|&WdAW5GqlhnrKA)KBs-;Jl3L+B*rmVhHz2am$fYFkr!B~aC&LGz_be0;q9tUEf?!w5sed(cayRjX}F
z0_QGwTYEb#sv5Fv0j%xUVd=obF>!Hm>+{{AEF^YdhF=@ut{_1`pITHTAEtR0l%ngQ
z;VK$!A?$wVYzp!H3q1L*nFvFY4>%%e=yON_R&EJ^TGz+QI-hr#dB~C;HQ2r)lqM}H
zDY>!|6OXr(K5BLTs<+<^C`d=4O!<)2Y5>MLv8t+SX0SpH6eA2bZlG7(Oysco5ju?S
zeOnmrgEHI1?E1>Q?k%x`z@6+dcA#wIt!t+?
z;&93o9=3(ntd@u|s|eUq>;>ZH2#nVAQ;mRKkHPpXw`!p>b^_S8uC8b}k5St(Gxr{W
z&L=&h=&kb2x7GI2N0YcvrNqW?-U~}WX&1Lrj2c%ptblwONy)oS70H54-2rI>0|Oa%
z(jftRwOS0E^H}0R!VuH7lk6=at25mZ)Zf;<_?^!oGS3lKs~=J8hLlQo1InfwIHIBK
zd0jQH_31>6qs)o5j{>SMFi`EOSFBbI*n9vvRTO3o7#<0og)k!yvK#dIM7BF7IhH=1
za(`TL=#0Y6BX2V0T6*3&w>!uz!DA?@0gt$}oE&@?F!hmuTo*@oB(TaR;io;Jzar6X
z!ylf|Quww6bIVqH%vfSzl}IZnki`9`bg)F=Y?nkEQJatNnv4Ud{XjaRZaC9Vk%x4o
z8GMqIgoHkM5IX+uK^^HD1;|5f*Pu8QpOcf5_MD~I2pXI6-1^CN{xH&*jrod-0$U2|
zI`j}`kHe)Mh#;2ZlrjnRXTib2KBHmsd3QdAyfw?`hlZPaA4(f)GZ%doiZfJ)wP
zb*6T5(qVmL0}qRL43#3!DH)HYc^MX<4i3CM{5a_zI1Ru4TNwDCZIJ3Z!XalMCHI3J
zDBolF{S3(3ms*1*;h}#nH9uckMMdTK@#7`T(kzIBKe+j%bFwGGHbLt_hZq_bHU^OY
z2JnbuB#OC{0^H3o}?65)0CVO7Z(@N-p=lP
zd%gAbbtz@#xVgEx64H4@UFROlA*7`ZHs%DvQY|zTVX)A*>DQEPh4#(l+czg*YC#3T
zdH5hwSplvB5zEcZ6-Ql31O}vEY7Pc01ZTLSdk|{Hn6;(oia7LdcquI;$YlJe1Y(5~
z3^@Y@i&~T#8umSi0C3<=eCnGYn1G5(7GdffijQYmU)z$e<
z9hvCAfHCP1sqlS2upY%~X=cRXnj3`j<6-6H<;p;~j@9jF^HSRE23GZjy-3nSNCtv@
zQUyc$yn0>NppP^fQv#jldDhk81@G1VMZE6)V3F&r?XuY
zs72iaI##^GStO`)0)2#mFBETg$mpYLYiq$C#ik}FYtXF`Q@gO>0dO6q-^T=VZG|I|
zNHt;d1Ely1-f3A`BH#jah)^uE2iJ^Vl?Ln2SnMMQ=%lz3snUsSSHTrF^#oM&
zdfPzB97}``#K6%~sCalqwy5c)LPOOU=#$jJK>s!M`KyYAZyvCCq+ut4wl-Dq(uIc>
zRS42F6mb~L0WHwlJb0jh&4Z?0{QE@A)YMdMgq~^)X4l07&ApBiI=>Taa0^@4!EzP(
zK?0s=11h56{=&vNgqw?CFU51YmTZ87RBJ
z%gY;S9nPajg!V4#mtU=6DLbRW*bpS%NQ31TWlu~hWM2o_Mr1b;At30NevN()|V`aL3~D@R1iC-No>qKgXiy
zx9sWYF41W`P%(aywmKOQ_rwuCMRwe%-?R6xSD!pf|N0>t*Yzu}Z7hzp3(0!0GnC(C
z4tbY%sr37;TMSp)FD1)=oRxnVbhZ6v$Ia_k9y48$taxirZ}N~Hop6Wu^=#{pnT4ws
zqYocS@pbR+<`oqeyI={?k58~P^}6Rv5f3&o;0MEHRdHQty0mm_!R?h#|-{Sv^>Hg)Q
zKP?;-@XDs!7M?y*>t*d@=34NKw6
zFL66iUb6{Uce%laZ;2
zF~oE{Etenct%-kn?7m_D1{p1i6^`Mfp4BV~v~W389(qvTq>DIqStf)rYx+F4&6BDW
zuZ6h$(Q@4ZDp9Y5D=>Ss72@$m!U4l^^0ya8H!5pocX3)`3u%i?Y^Kfo9~~su(cty}
zxb!GHg@OH-M`taV(b509DpWWZ^y`AoC5rLVudASxD-3)>mM&b&-3ueX@vA&8^%-E=
zst=kia>6Ow>-&i&7wH*<7Tdl9QD!usxK3KT5ZW`$5f^K2HTQ?}b@OI#C8NuO&AF1?
z7K9nwvxP?tF1yJvKlgb#phD;O4MJwUm-QyUjNNyv5-Ec}-6&)+cAa%3s;D@5daWh&
zsa6b&O7ys4v3gOeuarviUY6D
z2V?X3l{lvbEJNb!cr*;Fz1F;pcZ183oISKH3&i7YvcjXr)r+9-7;A4R
zbj4JdpZ8XU+Wk%+wS&SM^m*|nt=`Ma>2nxCXDG+8%AN3y0!1n$w@PlctcoQK53=9O
zQY5+Nq_Fo$5Pd?NFGiBvJ~;C;&a4^ed$`P#RaLf}-(}_qzr$2ix#1?7v`3+2MXJi1ORCK?LL>_401W
z%@PWENy{#w#c{H`aAQXMH~fHb@t)RgNvDp0ldyud@{$mpMn-FWL&6FPA>o^}v|1
z%b3iEhG(ihM11kUGBVm
zK)2xHU*MklEgWm2a^PAQqqpXE!K@q}G4v8<&6PYx2S*7*i+eNv+J>G9_n>7;MH(3};;JYin^-s^jK9Xh`_
zUTf{cy98;OWO!3b@;?7Wc1%ONmZ5X-sA-5DZW|XcCV>hs#P}kEi_BCQOI@x(8Lt;@+7-hYA%R7&pWzb5NvsYA
zc{!hOHL%d+9NVwN3P?k?CiHRY*p#9EOv%Lw^tGKG9__k_XI>LIMP>%vf<`aJZxgdw
zHI`Gi7`ZDguYTf!9Ao2p3N4u)O=u>vEz}k~gPwGeR(KC@8lUM6Zx#n*X3WIM{>3XB
zVxfvvvsAiL-9taKvwY#a;9^7^x8mz&s=n-;K>CF
zW-em+2BW*no5MlxvPu}3%qC|Kl`sw7kvaI?ZKD`ZIYt+hGt2T8O=;al@BGv`lMccLSG
z=0{wMqmX*taAn4-YIkL_|4n4ye#K1F3X6Y&acw!_(mRV;(%q*TMY`X6p`J5CF&&{_
zDWmmD;4nz+i9jcJQeueT?>+NXpHkeJ>C@kA1=`d`2*Ykq-$Uli3NSK8&qqI&sczjr
zuR|cSJ5YH27gFBmQa`e&Y#jLMSXDNmrVrMb@1+vwdtZMiyYYAjZ%(z@BA|JS;e!16
zAgcjXJV#$bZU=)!S;j&Qp{4pN%3BhQX;ZuMI$qUiozdUfA@$yx-jY>PDv66ZcTW4vX`71+3k$ltr}d@&
z#{kar$}meeV$T7{RP~Pso_gB#{T31rj*7Ln{QNjAmQL5gAcjO9eI=bJ-Vi{!YARTzIWjlUs}?tkVRp2J)ekr#zZ;&x`@
zUYwZuz32lYcRQ=;n(OH}T~GM6K*s9A>~tkvmAtaWBa?*-Uhx<~=W;PHW?clqUfdA;
z<}i+ObG7%t50)}Z{c;luTcU;^RnMqpWaBgkWxMeBi6i}(2vJ&w<@|jOz8=Q-gRY~(
zI$q-v{zLR9*C``B-gF{hyeKo|{ouCH18%rl{j$3XcRAsxs;t9rrQ38AJ^R?jMKi`2
z5}%Nm2pWMO@A>lOm7(VHUa)BPXTFOV{IS$f#w=Jip7`bz9o^u?%#ilpS%sQtik}Vy
za=|oBx~;7(&hU@4FZs5|m{TK9JN=nk{CEC;E6Br;zx#l0i0cXQ+_fO|g~Ol`VPS~)
z19`^Fm9y7A-)7A|6%6Osnp|D!R#K*`G&>c{9DeOvE%z(pdIyt1f$;Q;tA{rl*(6Uc
z$fS5lAwyZpqQXvx>J$hIH+(BAZm=285wYy^_Ep5Ji=#C|y!0i{w1&;b&nA>0!|6&o*
zT94f4dD?-Ys>?M_MFT~~opp3CRO6Rn=x|*Bvf6-r_Ao5Ijrr}ne^C%>rT9|3N?xI@
zO;Hdd<#QWvvD6Sm
z{Ye6%*+sT1i?Mw9^rq!g)(l?jq8{9#8?#d$FVeET{H{a$#fn4|Zet?GJpflS@gc39
zbl7n(N?{WvbeE2!+44_0K%;xY$O%3UP^8nCslKZOWBf>0-BQ2+6wh`8bRK@m3`@ff&}Kl94=Hj;b>C!1szusC-RqSEKp3uU#J06j1-P4RFd
z1x?JLW`XsCU@uYHAt{r0fGl#E@xu@C2cx0)wSGK6tj_3s*?pfoB;_;DA3QO^bz%QU
z7qsFJb+aTpv-)ZGua76i8B8IPTKyQ4F3ce&x=57f&y|MT|IqDx3&|cXrQFvzzQpmz
zvKu1mRK^0Ct6(7{*i>(CXESa|6}J%8=Iehg$?}Jd2pHKN(%dMpx#7Hem%8UOasm96
zfDE`yE9GN4f|pe|wahn=Je)KPJ@Az(v+MQm;(QJiYAzF7FD=$R4lWD{=xSCMt
z{J&bbcVGkN;mMNMeVAHOi23q
z91(2O0yXeq*-5X2T!YisT&*QKYyz&msAm2&S8Nk?qCuN?Gr74jigM7FxIN2jvANSn
zV%o{bK0TqL{LUU!Ke_m$lv7V-q1
zQZ_b%-P|7;Ri>k}u{&`6AGYp)s;7T^vyeV4cAVCDxb3}19)s43kp1gci<6}5;aC+T
zonj#E)%n_2wZ_qQdhj>?^^`8m)UwYJuRm4ks!_jKm5V5aVaVIC0fsxlNg^uV#;vLw
z4sGv@ko_^{Ls4Y-P`2k+<4d0HdWJW*y%H_C%M0lZjMF=fEj43jG0~`Z#t+)>xJb=v
zHPfowaf+z5s!3oY#jD@h@hdUVh=*7!?meKF^0KdZ;L0@_(V}VZj;<
z7s93^;S?NIUIt|SZ6iMwybxo|@S)oIH&BmT>xZk{oht8YSRA9!iPv@r);F2&nVP~a
z_k4&c
zYfB$*X0(wt^*O4jCZgk~mANN~t4cR-W3z*tc$@?#3$ATH-W(Ewd^pgW_FMJ(dpZ?Bp0Pv5=nV*p?$>cTQ96`PRt)AxiY<$
zuoe?6Y7?LQW^l6x*H%<^*KuWr!OnxbYr^lkhN|)DPpqZqn?M
zlggktyO|-cr&}In^i5tV=zgC`3Nf`U(5&J%=0@_Y!N-Fvw>rtyOI)%#+N0?H!55gz
zW=|zdDbFPQk0>iDg-<;Rnqu+`&5de=x*=Bjbe(hV#Vh2v`vd0~lnT^N^GT|Pbu8#pAvspR`*_fz
zONB02wOStkiaGz4&=LJQjxB@s}}?nK`q)C;1E4s7a?z7F1{*CdJszh@{6NvO?886**X_kWR~qa
z?Y&GJFp9lMI=RR;hXu^hT9=M4S!$blBbr)rB!ALZ7l-!znwB{8jHpvGbz9UUQrklR
zZV@j-A{fvgn=A5S{Sm
zg}G0cF4?G;2J=N}3@tr@N`#P&35q1J3J+BSVG%Q^Gz216@l6tdLhQ?5C2RHnh;%LA
z|F|7{z9R2Gh1g84;jbd3y0*3u!PQ8yD)a9S-@!e5Sr8M}u>CSFvXsLVrrhX;>p0G|
zb5hF+Cv*~S=6ciNo?ebc@R&8l
zPG`49%wiKkrHBNskzDbG8m~tJAVwZxhnIc7u5u@Amrjcnvx+
zsATc4{$yNqbf-}e?sDwG8*HCDrOo{nZ2`U!klCX|oM>-U=4IdQ@x>SsC%mH9$U9)#
zj{kQp>lhfhO%C&+xU^mql26~EKuF7REv-{a*TvlWu68IORurT(ZeARuzym#OK$oO^
z1KW(4Z4PZf2I5#QU!lvI?S{Qkdv+T$I)*DbJQq*fBr7soMEbrGeEx=Eo`M
z5{^AJ)09aZHuDvg(=|{jL`i*X5`~o>IcZ)@7LV-u~({
z=KGR1b*p>6cpy|}VV@~}r1S-Bkn;t5QP9kbELL7wi;@hw+pFE~h)Qe9A3SBK-flVk
z$AI-Zbxuys!+0o(`)Hbjnw8R>f9~A5-6cJwdFH_vp!c_ytQX1u-$cyH#DpXSbR?|
zP~Jn0A$L|C!4@%9RlAFL@!Yswlpb6&=K0oF9&kSX%aTh^5$T{2&oBX@w&M0wMazw=}Nl8iF-e}y}r4YbSLM9T!%4vK6c(ehOx}CU}iY28U4ndC~
zN3%#u^pKPE;F{0gSTDi^O6o9u-lIUcKoS{!%mJp9=iWbNRcbymv-}uI^hMSieD(|q^$Jng@_dn9pG#Lcxrauo!Nb{kC
zUkptTi?!qLoJ}TWW%!D&(?NlBdV|7}^Qk
z-&pSoB%OHF)L17$Q!oZhX2hEf%T9R1h{WnDZnvX(89p2}O;7MI;KBx|qq4-|?Oq!?
zx{v0FZKY2!BU4QQ)xI0naOzIx2qTYWmM@k(=~4qCw=bM`O#2WWICrIftBrpz%C~XW
z02Uh?duU2qhAv%|@cVAJ9ePUWNd4*`?N|$yC*IzG!!3TZ?NvKOV1Y0M90Fay+Pvb;n;&W#
z=Wo<+wy?=aN#$e<19R&Qc=qyf&_U2ThWr$GS8sIoFq}A<2>;>W=lAGmXy$VGKri%Ka&KV1c-`FDhUm5HHM~I9kFIHj
zem>^<6&U}CNikzqtAcX0w1NVP00i%!@%Z^yZc`^F@^
z{snfWw4n+~qpCMiiAWkT=9K;X9nUSodnyS`Bh)YDr|$9~w|M-?I6Ok|{=y~}x%eU6
zO|3UWDL_y|&#%KsVDIp!8&vixTR3LI(J*|CJ9HG;pb$s_dcP*7A>~jyy7INnnq$K*
zfq|AHS9>nf301?Y>7LhqAzwkZT!l-#X@@WeJh9k=LrfeT90s4(RM*!RZ3Ge&{kLN?
zDM=XU;g3W?4e((OxE@&5+vG3E0I&T$E#x*Iu7Fw8qs~Q1Rj81c%lKGqaTPa2-E+vp
zhvY64kwJT%Q{peX39WajA#=0|lV8fOVmAd;KNxLIfl!;t`75
z_`d4`5yB9^-qNA5Z_Xy#R(-U$K4m1Be44Vj(`UjT8(3X7tsH+X(7Mg(Hq!lk#_|p>
zAtMf{cQmavcrk$DH)!60#rG#==JXuHmWB8d%9cVJd`6XrdMJ&jax|m+_tr%v)%3oc
zh@Y6#ou9T&*4FJ<{)p5|&%mnhHjv;l1bB~aCy&TLvGvZ(>PjZ1%zZZfb$jje>4YC5ZJk(Qv!Di`P~~0@Q1@S0^CK7pFU+zHu$c<+yhbt
zm%@<;;d{A4N=pWC!oorn<;!yVMqmMT-<`Jq@L(H|2K-8tT0zRYI(=Vxpp+yy;Jgy1
z23&_NJeaIhcMR!UP9}MOZJ=RlPaJ?lRxf5kqggVhoB$^RZb5bixm-t6b}LDlnIrRw
zPyuSHSFe&OZ3avUcN^Oyk^GwWO5BHwW4O8)JzQd0k
zmyR}&Sb+b2TH{{|`1p;^zv@?oTm1Fw*K$_e)@drk^@F8YlP>w<>9bJ?foVj{9D?r}
zinkZ6NvowYeB_~^sauCEX1fEoYf@QgQm>@t>~Ir$pA9!-Q(SIg(NIS4qen8}otWIb
z7nM0o#LfwzKPY$Al2j7gX_w>_N*U(
ziH~~qJ_rAHLa1HuGo`VVAY^kSf>hemyGb6OCp7YPMt|7T0dq*UGxfZ(-wA9VQ6XJe{F0=}eGPn-&<2BvjD4{Y^wL(U*J5|)4@r@mVzDLJ|SXGFre
zW34i26oNO9#1!Jzma7JI2Y&7-JWY$L{^J7~4n$-#BhTW`0CuBh;-`bS(x^wjvR+`K
z^}(cA@OhKX@rQp-YYwWL^X~6k41GE2eL_JQWDv~afT7R-0ms?v1ne>0kZSNTHBXU$26Zn>3fNhUG7?~vFAO#H@(**-|!UXI4_pyI5hR5Rz@{aW>}
zbX}aMXS@}+Vf!Mfi$)5(P*3PN2GEWVd;frdfmstvhiL%M@?V@LjD~vt~*1!@9It@25%3E$geM;
z$`>_0&6HA_U|f@Lf`x+4>2_y|4KzPxp%yBs-~YG~hKUZqI=A!|XVXWBANMbhs%KVtwEG();gc8$6uMSA+o%nL
zicW+nspn1Q#JPCE^Ydw5S5!x;oHY$FHObpsWJ*(^`4<26ZdjG&J|jcNRjBSH<19~q
zS_67o`Q2^mQPj0-pUOD&wq8!mJcf45o$Gge$D$|E05muli1Eox+XT;@tjv*51Y8k|
z(e5SY70ebqD%4$PgD68
zDwiy9*jD_}8?Po+pWpqAHD4x@v=-U6v*BAVb>L>Eep!=_PC)N}Y+?R`E6&iLbUQQY
zc;_gJf=FGB1kpR6ys1B1RS^cZqYQTdv>9^vkq+;KA`
zi+)71Fl?6fORbAtOvLc`Nb{TNBa;S)ZFrc9Y6e%Mkkr1XLehwI0=#Z=cc*XajB&^L
z`ejoD^H450EKfv6T2o~nbyV6MeYrZ&&VKwv1Em61x8pj9hDT%_LYC*qk@-h=9&rDj
zLf+<{jVLUd5=N$FFWX=7iqhKVE)CX%LU6r)w+OU@`^}^wnIYBymCUT{#EEMD3DYN0
zC4v@t5{2&b8%+k)Eh-)p-A!_Qs&#zEN?zRUCPyq5bsdlUNqx)<6EcieDGQdbbHg@_
zk^|i8{vbDQL-9^HDlUA=WA*rPx@q2j36=ppOZis_Cnvfj&?9qW)G~m%>f``>@KXqB
zvy+SQJWf}|seomgJ>*6BHA$aaN#Wn0;iShE03`_@8_=_&jJ0$_Pv5mjri_W!&envy
z`=K(@h1Uh$wa_8=t!yi%udb*{Bwb0=xR7>Aw@g~U_eyZa)v+>E#3lSFqMDllQ^2KN&jK?!
z9bs9k|3rf?dG-v0x{%z7nj0D^n?%%1>C);-h|!Viz#_@cY_}W!{Pga#W5dPGbp@A#
z@Dp}9k_TM&nyHT;Y{mNpB(v8qC$wUzT#}Z;9
z{VEiaU*S@;!Vu~dmLB*hIbH<%)S!hnUJL3g;GUu9lT_moNHkU%J!+;fggjHV7@JU=pYX
z9$DEt-`vU`7wKvkdWnG5^FZi`MFDh7nF%lC{+pu0vDq`m+Rq(FHwP7Pj`JdRXxNNM
zKG2fNDjLnkhIdcIf&vIQIIiGlm*GLC%F%S?<9Fahqt57nC3bAt`z6`x-roMcNjB{v
z6^)``mr&XtBSORDRV-5USOivZSrd6(9-i=ARE?@
zKy1C)d&v=amxxEw-Xl{De~dY1miRQ3BsQ(uw^toO$<hiFK`_RNh+E01}r_6#z@U$bmD^P)R+}RAGuJ%&3-Qg=1-av8bLTae{xM$Hfh
z0B|z97@dmH0f+T-ZWCO~DlvWI7dhteMs6}q?87N0zISs_lk*cE(P6TmX^>ltBE*|b5tJy6|AF3v(KhqH$S@-
zu~n!ayfK0hrX8xfW54f{X7PbX6{pzfqKf&S)~dMsby^HhYz&nls;BnRH5xGhKGR#O
zE`ygG)%+yE=Xf~a!x(`bjn;@Mty@U(0Ar7E*c%$-)vk$%Id#O7SiGvzU*clf
zuMkr!?>TH4mg+z0*?Hp^CakEq$*uZ9E$4%gu7YZBz|_w3oo+c-PtRL8S}LBBzurWg
zT2-!}ELGmG0LDO&5|NMWzyD~fuu1q;VSNtUBg2mXhWSBo=_f%!Z1EtUb>m*lut8ru
zQ6Uf!8^ljE08Em)-qWawv~6gqT`rFEPjQG%D`qEs;{s`;279z7+S2!}QMVvRu5spM
z%qb-mV|&k2c=8lc^LEv@-8mt!UwY0Y;x9MnM?3arT%p0&>jjwMxK6bP%1HGCjmNNjKkWVw(&U!4+RWf}x%6sVmxs&PCNCN#PGYA%}d3
z--^;n=)wIFm|b&b!1w2_jNDTxrN5=-hM^|rd%_D#R*5iBB#=AQAz#H~)Tl>AmSnjP
zF2Ib5g#jT`6&yzM#(}?MFs&2rg3h+lNNi+CQ($WmcB78$-Tx-aNRm(z2&o85R@Bf;
zcg79N5`Q1cI%}UIGg};NhvpxAdbFNA><1n7Ux5L5YzLUUrA+FQ_lBL~A1s%C&3yS|y%#NY_FbB|vt)Zt#J-(VTnB6>yC08hU{5@k9fYS^k)!vp*7Eo^xdm+FVHu}3$=#fw0UAy1zrDsL!Z`a_k}KctI$jD+@TiYDmD
z7tY$HLSD_tHkSX_Rg9HhYdQlMw8941ykAY@}(qc7L9)M#hH0CfmjR!2OG=oF)H
zVT})_nF_RS?`s;7ewjVU
z9mmq$+Ox2AEDfRY
z1BgDw04WSGYO7EGE3X@sHnsN4dx{}BRGT-~1h?DR+TJVk>vk1f`u0cfKqmG1Ippx`
zKh^)`sGmqziL%-Hi&RU2ccfBMQ;l-^`+zMn0{{{$^(&3vW(|A^!3M`k`Q!>+4=%>gDJi{cuA`?#WrrqX1#M}
ztrOxO7uWSHT6uu4nV{j45d&|!m{zvN=p~@)#ZwiZKWVDs^0o3_e9vDW^{vq+i@2
zrS(@p`l1@Qnu}4hAznk<8#TbO0^L%e?zj9
zpE#4IzMuqY-s2Cuy8#V2?OpjEZ@Q8N7Ro9A!&3xQ>lzYwRfGi3OHg2x!ZD_3yObVa$9VT8GVBq-RDaYD*$q)Gqgt(6)0MW%hEQ
zU1VX-`2cQ9p60ZMWZ{tBu$D-78RqO$5v-#*X9DxNf%-HRJM2qwyg#$g9jc@LnzT|F
z`z~9ex=Y^r@FTRsN_l5K&_h~aWfLDu={`CAq>a8$_9hsN%ntW36p6T3Sy{R4)38j0
z%bWx-=vo986g|1STV<$eZe}Lme_tiCtGgSJDrGr*`**@b=9edyuNQeNh%8~2jnt7fvs6*bpUA#WaRt~#6nHcXO7GOLH{t5F3Z>Rr~wXhtd-~jK?C&mL&`T0
zE_+t1-B{&newavy(Sy*c;3C`g+5#K%a3j)|OkzmK0|QlAFKRn?ZC7I{1Cw0si8TOb
zXdg4}FFeD&Cc4eNo$>~wwe$It`}5GFU{}ea;RK)*bY_D1oFI9%Kz_tPiYht5qw^dpOYp1UN)uBu3c6e}7X55>Yy3cS9p`+T7xMbXmo+mVxzQ8nhQftpL+}5$tq9
zvFHA~^j`1tudwksEcfe5u1oK0fwmOxSks5ym3q690z7|hN+(f=G%e?Y8X2jc?`aN9Lu;^6DaRBSYUQ@rYUAF_zy8;^uvqDW5yRb
z#V;@h@{n#ChjLJEsHuFeV4+2=tA?&z(I|F+h5&hVmn&D&g(e}M#S4J=C#!@v>G%&K
z!POHUJiVKJ5m-%Lg(;gazqcB-!z`TX7dq!l*X#(F<#k1v35j*eMq;A$08+}MT*y=L
zfIY};r`v?9p^P;xB<%Bz&%`yOc>ZK;pTmqr<9NHgJHVzf7?h9LGSb9ui)(V?O~|etGk(l
zf5m8iLzHnfW9R3}KM$6Aye$%pL=U)hocr=uV)w2;p@bg2*VbqaOomKCTYI3Lvp_F<
zQM{nh8sGvoG5y9K_b1=GyY2>N+S;!{#o{o1Z(@o!Ik_xEvki}xii}$45X8!B*Wycq
z<8oc@An&BW!M~$XS?8Rui;ts!E23X`u;U_18r3x4CKL;D=eOuRE?R%k;ca|7hT>-o
zDAklB3t2~tQ0!a~h)c?>KvSMg&%Ed(#`vU;(lWyYK8Jv2lwk_1!`ItIA1=D!CPZyQ
zi}N82gpMKwi5w!=Gr|Lp(vK^8c0`3MDB8uapzmc`4`l
z;IqqpD!eZG7Pn-&?q;7JaajWy8l3jN`K>1JCN^^h&|z7hZgV9kl@r>wKW%U^q}KQ0
ze`CFW@*Wa)clUNn+#4IPfsI?rw_d-B7>@9Sx#PYer%m|<#Xze#X8Nk)?;2PoU$~mr
zU`Mpl$q+C{cKOpB%SYZ;GX8CGR3
zb{DhFC9En9XT-)-MV(&E=CR5Yr^suvbF>i_Wa~E~t9PzQ5>xNn0jorc(Em)LtL`@q
z=j%}3-;#T6H4KGl8QEmkptTi!W@)y&KezcmL+D!!87c4g_nM#6KhbA${Wx|n!`xir
z?-#v0_I&$q&wZFzLgJMC^EtXGgLqAd#io$WO7TIt4Ddc~&l0I`h&c4(ergJ-6I@M!
zHJj}6ort#!4i@R25478@yE#6?uVwmDtVqo!CBkOH;OZ^Y^I}(_H}jD7nLE^6RGh<9
zv7pW!r&GqR9sB)~MQ#aYqDHFmnCxZKqrko5&B~E(Kkn6b$XbkXQjw~2`zugL@m(&+
z*6Sjbx()~6Sjw#zdP9Rzl&8TiL8vw0r~}Vq0BVfMd2t!n0w)-(A}M>u4BV)RrW?iw
zYuqBW=WB01XrHW#KkjAq@JHVT;&dRhgs^WWACaIr({@QCJ~?M`wBE%W2;>DrSso)__z&FDM(20Pu{Wac8RNTS&Z}2PiQ1#;;MDfBL3VO6wAi&L
z=rP6zdceV
zgPT~C9~^iAy574WAsGQUtLF!-GTu;?OMLZ~V$N=D;rCaNb2soJGM22*%QGb@x4=ko
zH`5q37`D3kJZXAp=u(dF=y&{h`?)|5C)e-226p{juD#(cvL}>3%6ND2pK6I?Ge+2*;K;p`73v+iTk$_xBCr=7f%#yDC*poEIUanfXgIskV^A|
zd*K6d=2V7&F-2ut9CZ#39Hyf~V?<&7rx!Vug4)mgg+T7Bp$47U5?(s~S?5mkLT($g
zB8ngX{d*+ZiFwzjC9ZY>Ti6E~X=0OkhX3O{X
zfTNNCF(0M92nQO2&_+BuGT#@_#%3(Lvq3uV{5U^fpw`*7@Dz9b2v+NKqQ*(8QMk{i
z{0jK9Xsx1b0D}GG!0_UsvYoiRvEkzu=XL=;(#`8BYpO@em&ZeLu9k?U
zjfH8dzx>kd2jGUIQ8y3&!S+|BnueMSf?|L&#D3&eOGo(k1QlCPm$&m!kOh7g2N42s
zS)L$_98#Af470jBn=AAs?*v4tj>NKzC=V|F*vQ$m23D;NF0*^&SnmsnIoM6rd>rXR&B%8s7iT$oNqy0_s=lq)^zg*Z!UkTcEPEsBB*N3
zj&mJ=HU%Bh+ibfQe(|o(Tf>U0ouAvUiVUv<;#U9373+eZ*w25KA72Q_i=Gcy7s4@qd<+jBdZN81;;q
zZ*3N02%e@UxaN|HV5hlwx!73&tk&GxdRQHN*sn7-we|V$@d+6SRDMcB3vvf6K!L;8
zrlHEZS7H$BtH=U1V`&vbWL4wL5oI1q%|poSdcB;Q(=B3Dnn*;g?ihNn8M}oVnG+Xn@x?_g{cWn8mWM{G9
zXFLu9g3fL-V4m*d7;`F7FjD835hpPsx5t
zMT?NP+Z!V$!m)8riXt^MON*?HZ#qp!$0`Xl$BwFkq1?jWl-iu=wbi>f09#q=f*LNUPsNs7I(s4j0Os6)WxJxm}(UgL)*^$u&Xmg)$QBGv4>zzj0E
zCQMiRBQsVw7VaePe1$N@<{Hm~O$RhRf+I<;`HM^=4J%U2Xh&r|zGi!zEcf-1qw_3T
z!_)&DO_gJBLop0VIyll^1;ckr)Q{xc{g=z!oj^wjD38_i_u{qF^i4}T?&E#vD7nAq
zPLR6@ZOgoSf((cif5Aj=0PhvP#q`}_DgQHhl@-jp=gcNf2Yb%A2&ndA1(l8fxr#P!
zu|aP|K;Gl-+WrTjvJHSCE6two9Uavj`5Px))(Fp_A1^)8-0KmYcl2N8zDN`T5hChk
zdCJy1?TsLhM$l^jJxl=`8Yc#x
z*gracJX_0)A}A7%2v|Qjr;?eS%E4nI!R#N^V=osbTAwlej4BrbmJ;e#ILBzAPKe;N
z(o=D&JK5&Wpt8kD3NSObB9Oqhh*QE(z_mj4y}fD@wfRi0nLEOl`0h4c<;ESdWTmwx
z-~D=<)$9UCwK<)p$VF15)vmi|)bK`mfzq0DYCTlr@GrId&=sl~dD#?O^fQtl?iPSc
z{-b**B(*X9jO3qZpB6jN!L9&r^pBJqw1ai8Hm~0swt$fVFuj*A*Q5dT%)$|i;j%Dn
zOx3@ZY&Yev{Sq{9zCanGL}AUDLBIxHT;lsYs@WmYnhdC%099xI8|&wSbpe(80V^dn
zF4BBU?MO&T=4^eY9i)>nt2@r{r>yEX4Oc`x!3=%$ORfFs`~yIouDfN*
zjj}V6hB*>KZVScanqs!&)z=z^kCXvY8(x2TX1QEy1vl@2iG<@~JHFcV|8Vx^;ZV2l`?!ikL=U2p(Ua_3$sUp?E7xanB{wq=c)Jm^E*Dr@%tWM|Iuj1{kpE}zLxVm
zFD3GrBv!!xzOJp9<#a~LY*EO!Af{VlT5}(J&!Fo_@0BcC&C-cmsegtEah@}{CJzgIGy8J$fEeHaZ%-{?7UZ@|VcLxw?7b_|_U2uX3GCXJ-JV9g|fIb7*nx~t`7&BE|O?`}4uSE8uI(oppD
zT^kZdbQZmy`{doLEp2mz#F*2;2)D^7!b-0!mjPQzRQ{0ulE#<8`o385sBe7YcP4Ac
zjtxGJ6osb&it7ZWfo?}@B%Gf5(S9)IL~IwyQc8r%JD~#Ef0S|KFAStpMN7xYO+FBnOL|uTIiamL8k$61c;`FVL
z65TiT*)3jtqD&s)AdQh(KHfvbVv1e7i$Sc8KLT05(Nzrqu#B_x(RY<}7fe7>TvpDJ~&BkqnGQ@Ju<
zP|yWcZt7=t@%3w_gN3NFE{F)j;>Hflb8!7fjXm1(<%{G>#9_ry(NF;jS+=~R)yopN
zZW6p59x!YgduwVjAQtv6RF_%QEWUW1^=4yy8n;b}fR}KZVlQHiuQ1gPXJeWm@u@RB
z+~@e8V+*1LdHNHfU2{)J-d@Ai?vZfCXf#@NL%B{1C%(1*9;ubYsBG*djV7nvrrvu9
zkum4&f@F_P)UHKnHdKr?>Wej&S)Z7=NJ5y?s4CH8-x$gBM_P473DRfK7CS*N^f9Db
zbGoGr4N~_2=i^ZaL6eSLIJ`nBPQo*GKtd4<^Lp~+E+7_wfLOg&KE69et8~DQw*VZo
za0--K{Y2PNcgfG@lW;`a^8;S}p?>X#zzte&cr|ff1ND}ehYfx$l4ZYu2?
zw(66UPWRO*=v|&?EuojtJzhY#4WI?0j*M&h)(j=O17<>%Jhk@-$yEF9ljDm$pH%RR
zYDy>y3|lcyw7^h`GW9F0-M)V)
zJzfrzx2HQ$d3$E5216{&IK-CZDObn?tTI3zD|j!+V{+HVD;&U>7W+(Tt+ao49{>z;
z{`nKE$|9kkzFcT}s`;Jjf+FA&;WytZ<%8RFWz3;ykP`0zajL+yV)=6zJURA#B<4OADQ^gme!I1UkN|bqL`H=?`02oAY*7is!<}kCjnRoWdtqh
za!PWj=!XHb%fr}PwKA;{2$!lGyv2h=4uPla0SzM5Vi
zE6`jl=Yh`GnbWUB8xIkK?HHkE?EA|?ri@l|27@00Zxvm+B5{mI-L%3Wn>Y=bQh$A*^ySO$h!IkE~XNd^ZtaWG*$`p!iO8f9>1n)<_#F7u6lv20e{
zUT+1NE@JZtx_|#GY{l{2TR2bAG4|g{*NO8(e11bLyncR{vEyO{KbS^Dy@`6&HOtK^(6d@l-~30Phe
zRb}f=8=g&;4i!{78I{!5+G-p2>3U0U;&xO-b$>l<>$R_`LXL^Fr+7|-2R|lytP!ym
zd;f7GT#)8%v0YryLl%x@zR4u0P+R|<01dQ3PbfzekcQcfE)ptz)(PPT
zT65i_U34U~WQoE0wg{rbveOnV%Co^SZycj^$2-Iqy>3vds6SmWk9D9&u~pkYU$2e|
zHH_*>v?&x!`{~w^D<&*j!{pbi!?;AZWrrQn)IJPYQ)0Jz(*kL939ZwvVDbemwn2WPrvPsV;UWj<(m~GUpPuX!icBGvS(--WJR*@u!=-T29lvD1>#wo4m
zMq#|dBQ;%|Dv@a`C1Ebms}M)?IIESkOOsc&VYw?D@D#|2H4#od@2EJNou
z^yz;XvDK=LG2<339qI^hG1W#waUrd{4~zA~cE@O~aC1VZaKQ-}&jT_(_R
zoWFJC3{+VChiuD?)7lNcKnYWb3qvV>1=;7hdHs%F(s1kk)hLw%Ha`P|e(7eiM
zd;Z1se_jEe+n4()vd1XQ^1yHV-RRcxB;-~LY<$EV*LEf88Dt{bdw!q8;KVz@*XlUf
z=-Rz$YGOq_dCE5?dcz>0oynzH8*Ur@xd!CpS-17*E%aoUuvPM0lXT>G-r#q>&Brj=
zc4dwU1Ij
z-C?&Lcv8V)meN^8P~3>O_f#|FNMy=tGu>4#5N8X}(^)FCKMAeTL>ths<@yV1xjmg5
z9!{d~8r~wv4%H(1_GLe9FX(!3Te{}j<6XV73D*+gR`r$_f>Dt9Ljxd7HRccN`}+~X
zwDTphe88XH{Y|c2OviJ99M(mYv$|kQ2hjuoxpLT)ZA^;w@ZW(G~W@eVVb@cfBF1uk_ZZ+>?ys!6A
z1EAHa4WwU%Ynz!!1Q^fz?~jUDDu%e^jO4x^V#Ob5sug!Rd=npE38u~r)H0dfc?0mBcGm&HGnq^bl&)1q;!m}l3%t~>I4H`>TkT6}l=Wnz>&AgOk5&S=drDa0&rn~6xjW1q6Mr>@
zY3X;qR?%>c{i4v~AJ#b-E8828zh|-eW2$h{ZsM!In4XUCEP3l=+MiTJg2ZL|{*AbZ
zKj|~P;5E9#GYmVh~F)C&#){PkJ9;G~e)!sRy{XrPBV;)qE!3
zsT1A@&5%M$16B3pKh`i*U)ZNZs`%slEvA>>RgNgAr=!>HAr(kdybwBstDE
z#~&;GL+O|gfR3gQqe*+-z^rn&wp=qK2OOn5C^Z(Pf;Y$;bO$YsWlGbO-mw6ALYqom
z51_ChZ?Sx}vV%`1hCOA$dzX7*0&AETEY#1kinzI}>&ZADt#C3Ci
zJeXRk&%7SAB{Y-(1#uT}kX1I2=$3-bMd&qgx*dBw54dy=uT`<++55
zwgO%jzT1I5c(K3X!*_t<51#L`xQc8~VGxubJTseDGH}lKP2OX{x0jx^8;zmpkz9Z`
z7Ib&=yrsu=nm0C%QF%Df@5o(*KET`ST%S?w6I0sX7a++Dnl$pU>fhm`m&!LwN#)j#
zj4+nk3GvYXv})J3McB&eq-C4A?>40`zPY*NY-G`fHICnEc{aZLYIQqo43ZfA%VQHe{nB8z>6#Uta_2}0E>Z!>$Xo
z;re|^O6Pd^ppyK2^M!FQT`KS>3dod#4^)~g0p={)Z;HVi4%!Pz=lzqj4uxKl_BBk2^<(4_qwABfq4pnr|oz*i+y|ryk00)=`?+p_k-$*PM~2A$M)Q
zmRFbwNgdk-QWN@=Y7NLNc&hg;Wv3KU1U)E}d?S07qd&ol@qSe3O22~8JV!`XuiYZW
zDcI{bX%v9F3{jehm*hPGx?EIF>S8VABuNX933^R`Y@bsAi1Ny(+Y8|uqP+lRdx96}
zOoA_Cru*u)7wXAB#T#A$z_@h%R!DdTc+cfnrxiO&Gy;tGWCU>-X-?5C;aM8c*B%6L
z^Gr(P5JaP?gTsjwg3$QBe+A-Z%}x3ZnDdtYaxm|Qf*)u4e1_wm+bH^#2oezHW8qBw
zjz4}PgG{NXn^c9+^#ed**@who$op4m#k2Iaepy*eHe!VK+rAWT=ZoVkW--{CIdHoy~FKQeOA{KIn`Luu`#UgQkWw?zAP^;TlBOkF|544zA3$v$WPx=FoF0m
zd(xPuCD-Y8^wp)B8c4V$CK6eIdGS46)Em)WV{A3o=Iy}UOCUcB
zVDwopcZ8@OcE3;OWNN~7Dxw#MNdum^T}sL6V1WAxn)INP#GdV=@6v`~2x1xSe1T^1{v>U80UhKIA
zB03mCqyv2r-$9MIqZGw&FrqEvG2&cpG^5;4i=u1|u{who3-4TFLR{Q=ibIW6_NsAl
zGM&((f&+fANv`YBC-AfONJQwB4JCRn=i)&vok4+9Qv?y*Cq0IrIXOL`K)Ltw(D=OS
zDgVn|lF1LxhrRgw%5Hf@otCrD__(1D|7DQVPBGfU@73xq@Mk@9b~Ra#*T>gaxpoxkQ+*vb`U1xG~Pc+*r#+wI^
z&V`r0>_t!ga3|F|!uCJE-|^CX8iVv$iCpWK9HhD`5Hg4TdS^4YSmNwNOy^oUmjQcz
z0??QikO@n#I9YM%U)pZ(h})2a>If8z+l1jGpW%w6O)Tl_y}bs{_xFWERI(E`Y)~2M
zdKZ{PUwApcJELmg>i8$wqCX)N@;KfJJPu3SD_qmeu#OI(v14AAJC3fw#^?@4Cu{
z)3$QPT10?0x6e+I0R5W+fAfK`IZ~b{KR%&
zW`PDOE5K#mLQ%Y`e1sk!dtz{pcKFh1b-j-eOZ!9aWz-Tz+q*yEOM8t3LTNx#rs}kB
zOh#~56`)1p+c!#K4b}P|kChIAiucGHPToG*GuHB}_L>lXK*cx{d-%Ik!EpYT1J~~o
zTa&8b<*#Sc$N)RF`)|E1lU2XFjIrNNh-ME@r&3QQB9h{fh_<+
zGDgr9<~-Lkp+8fbcheTN&iQbfc(ET&t#WVP0X^oZBkQP`bL%k*4wXc%zhV0;(L%>u
zBxljq$gAl!Y@D1yz*~598NpH(oGK-12r541ql)B>Fvzp<3)1r%HX
zkvF}wf}(f^vw&dV6CFkonJAyaF(Vg6R%J=m;U{@(s{Z<47zEcnwC1X>AMA2XD#`K9
z4oh#bSpF<1k5s}s0?-Nle%^$_HNnDjbzX6ENsPU9!?m;_xNz69M?cEVcRPIF6l){j
zEn6ACeR15b^LG>Ci7}sFplb*G(XXyVmfk^zxFO`%nR72aB}+R7I{!`luU`RxyioCD
z)K-I)ev1p}wV4(-j=aLeO^iHG%!`N@XYe4dC0DkvIwueu<7
zbzdxn)A_6?&!$L-wg3ya0RZq;FZCxChGpC`(l27ltQUHRb(F30^QzAV{wb!EE@u!s
z92xB&aFH_$mCVE*dfPgXt
z=CRWGYsX3-46JZ2`)DW~D!eQ(w81c(4+ZKs98Y|s8^5D?qEw9a9WH5^xMCmjft=XT
z=afU=>}&=vAD@vA$ARpy?`i?4NoSS|B?3&h9+9+mGav_EDEn)W#}5a6d!BAkW6E#D
z0r>0&QuU_mcRs42h0c)xX-sA=p}Z|FbWOjMK>MNf1TS?pXp-(cPfvYH^D6(%d2d#C
z(+7BXvYhC(3D3{RTA&~3E{14p;I2g~e|JRTjtw!zf0*H>u6CU7CJ$^c1ocgPTPw#5kbI}`OzU!A_p9(d^Q+tAq*inVdoaS+hPSNB^}b?Y1~gT40Jqif|&UZFgy$QnTH}H!@)$UthhM!D)t*-2vBjV`95i>V;qk;XqF>O
zyti3rXSuahK|m?{9c
z!N9Y>+)2Fo!tqjy?@;Bfo?n1>m&0*LSi9&3=|;}Uve+U=BVjzf(w;n=10NVErZ17;
zOPAz5PNtfG=G|BRnDy;80$xCahGZfBFc7E_vAmpRhjTSz)W6m)9OFAD-fF}Ugy+xU
zcq|l31NnPm#3#$-!)%L)x`KW|foIRg@K|GWxmIvi{7`I>$zvfG8fXpbIuL-yEJ1bH
z_-UZQW^ZbdBZs%fvk%jASGPkdMnvrsmf_(8FYh6I^*vG)`s6qhecx_l{k?UFsM3^M
z0j{(~&wP;x^toW5$}lA}y24wns5PByaMEV+WYqC-9HMhd(qo5aCR9A;Znx!w<<8kK
zSnqaHT2KU30rN!2P5r*|Ao>yFGKQ}*D@ibCEOSaS*ZRTyCZv&Y`ur99|8Hob#HyjQ
zzYjW=%4Fx4d!5KdW!UrQ`B5&9-<`Y(am8adz@uXUr|-g9dl*&&**2v-~wjOjv7|{jGt6%uoBy?Cy~+CVW;<>?t??
zp8Y9sI#U&)l)>+C!_JL};&v#N=JHjUyKNAVI{qb$c`=?YJSyX}{0^Tbu_tjY;v74X
zeyt~xjVdcDbP0sKh0f>KL+HYH7nw>
zlqzY@NspALt?gU6=+^WPzKPRVKDm&2TGR8>PIzQ>!HJM6ZrC>uhr0v5@RP$LU4$
zs$UEjf_)m}jM;N0;Qh)TT_RJjhRUz^U`T729i%n5hag=C*Xo?KxKkaL@RH=N*d(X3#%{&fdFx%BpyTARv3lS!N0UtDKVV5~?Gcg%U&G)~i^WA<1QR4=7tsXTRjm;c(}-R23}q@3Zcee#5wP
z?J8K0kzpl2?JC`po=A_6)HOwH1tt&<;(a<-LLSuR95)vu$2*zsLhc9S6dzqVJW#uJ
z-hiDm;k2N4oS@Y--=uG2<&_n;1!Emz8#D;@&0m>1FE3&FZ7w?yP&w28GthTtRfPz*
zC8U^X=!^=Zn4g?9esD)x1F2^)|CIGj?n!?2TpPhV(YkZRQxg(=-ckMmXQ6B>Go+LG
zY|VIoR+r7T2S8eG}z@(HSgLG9LLbM~D?wt9Z
zUVo4#;rmNn9|;o@!pLjV?wwd?Ie-Wx&8&#&)SXlMD%b1C83Dt3E7Wbi5gPysX}c61
zLrU8ytkp9*;P+D$L(I^QDOE6&Iy-%sIENEc(FX}dHI{Ce87yKZSEzpSi?BzpD*MuM
zUeOT6wyO;JJq1V+pr!dURD?mAMwi
zbx|wh}
zv+w2U$Hc~XUm%{f7IoKUv5{!4=t-ZAB-109I4p8eKYhp-%EB-AcxjV-@%<@76hDIR
zm!v>N1f^UPf4h5mvP$ZP0?zHn%Y`Mkl*7d3UUr>4D_F=s4IPG*`z?}~ry>IFdSX7K
z?WOQTPlc6--F=1THA54#VZT#*9lko(I?{ZUsuA^&@^>V9cbiUKNVGk8k|(7
z+`@PDWUcT2xL0nX4RdPr%@(uYYK`;<5L)q)$2wGM}lk{FQFJVpsur3f-?LDZWz4Kq$8Q71wy6DtdOlEGY3#cR4pj}ujM!^t1s-0;{f(O;!E?$iZyMW@Yp)C16n
zY7Z+)K~fJy6GBflw|06MpL{DtzvB6}c>a%~s{(N$s@X5xMX|2QY74rZ)J@XS{=){{
z8|kQF%g6S;T^OGTx_PB9pBF2|(At7prb^S>;YiG1Lkr(h(_hb@aJZ!XUj^YSo`QGB
zb58yCaec#S7AIr)uajwHc*a%?ig)y{lp)~qiT|pD9^2*l6C_8}n7#rJcZp;Ey#}
z{r>CEgHh=JD78C^!C>y_1VDuJdzJC!i;|e-IH(PY|G5{9Q>ZR{yN0C%^aj_xi!p?S
z)oqc(0A?MQtWhJGoX0A!^Sqlqb1&d3I%KHFDylw=3btJUAllO`n-}0LMsXee{4&^0
zb&_fo^WqlZ^nZ?53iK!uLw&ubbdufu;%tp!<4VDWcBbt@oc_bftn(OuOz7!{g*1m{
z+u2`0RYr_2m`f1~S6bJFuz#>P{Vi4T_^?mo=fP4X?0lpWF3W#VGKhe;7s04CRy}G?
z4k-S~TF`BKnik9H1EaR??>!K7+t5-j_845baz~zi3Igd4`?R|dP(#+xvrkAmOQS|x
zWYj3*_o+CPSN}grJ9lnSUfiR--|vf2e2Xo^i|2M!x>78LF<`6L>v}EZ&uY->ddM$A1D$_DL}&%$-10p~
zHb(F#(e-#e(q5Mq?LyGA=YthI>Wx);(oyA2DD%cl!*laD=?g>p@{7(n@&R1>vz1Ua
z+Zz8%mDe!kBf+BlZlVdxR^bMB21`2x5&$D>ng+s}`DH>Hr>k1-iZPDwL*%Zs4`mh#
zSptN?)ZJylkE&@tp%+!?QJ)07wRGQzTNTXkS^ZbjrdjUTKNZi>&D%`f6aTy2!@%-i
z-5u^+xoyahC?%FV+_tA}tS|6Hykzcp7#cEKo~fU`&8U3OetBN0H{
zcI}?4lpVCt>}>z+PB^rT@Idfe2UP-MYRwg0A2^CE<7XJ5{zJ|7S@44oe~)*i_zb2o
zg#&rwAWxVmrfA=9j<$b4uiUO{j(<^>o?S}J>)CVM!efQXCuvB7NM0AXK&4{d-QuQq
zgt|;&f~$%6tN93oki92Sp#yBDyIp(rt2CWkZsr5`#u}desgZsC<8t)eVYd@HUBjB@
z%>6uA$5O_Wb!tZqSuK*}E@6fkLureLpim^%Z&2#B3ZnYlUc38tBA6IJ?_Wc)A~@f@S*YkPx>y@1j%N2wn3Jh6YY!P3fO>tb=4
zQwFae3Z+-X&bMGRzg3vNS2KPEg8RO@4Iyp5^=^^>@oC#4tkxV!+^Z(xSIQiQMS<4H
zMt^MXJqaL4$-!ns7<7P*zY)W=uWskqw>PN}O(#I&IT)?wL-bL$PPPjbgsVb70PD{Y
z|L8l-k^5BeB+a11V+*JB?J#F&dPUh%b}h+7t5apE^x-Vfyf0sonxMh8^>okz;VW=3
zp%dF?9d021VZ$h4((2It0av#)b&V+Q_?_osGBk($a)D8}WE4B=qvyl==ih%~D9qkB
zs4uwrb>lBJ$C_rqLjZZvhBO=X)jG7)C;qUh%zl2@2n-Ybp0!%mu9LRL$=fOj1_83S
z(vBr^c>h@FJCuo$Quc+rS0uskbGUBZg96L-L6hsjW+otbVesou(L0gUN@s
z=aWyUpwLYD^-2{AeZq5XEECjP%bU~96ix6_hv7mtj@hY0np#5^dEV3ho(tw
zD#mf7&=e}KuumX6F^z&=#|NViPE$&$Wp}w{&t|pfVKpBUsZ7*?MAJf7Qg|dBm4gzb
zD6xk}cAf=b>Dp|J5gI?p_KzNVL%i;@Jw7+XXUB8E>3kJKe5R=AE`I|mxlhkn7g!%(
z%K?h!7Z~0s%wG%Z
zr2tM^fXdT-WMSn~lmQT6Z#H@EJX7Oa4Uy&ridU(AFE4Y5-VMVMMX
z^MBFK{kUp|B|^Jij!aZLOPw=DHO5_9K16r?VdrKLcbFv2A2#hD=Y0A!>AQB
zg#LOFRQgbip80_?<4NiLMae3w6;d4RjrAnyR;DM3id~~#+f4w%JURI@Aia4juKA+v
z)KF8y65*RY@82?iBr(--6Dn=K#EqL05tBEPnN*`Qh-<#5+-}Ur!byF{
zxueMW=NWW_J&dd$kY?M|8qo7x{@`xp-#^r*ykDTGLqzv4<7+MFX>}zvN2)XaJOyN0
z_tp*GphpBtoby~+EJQ~Cq(T#$m_&W#!*}C^NM)FF%%4t;#7l>>+>)MfX;vVUe<`E`
z&_EyHMC2+Fnw2`{4`zjhg%{%;3O^n(i@Hgj)6H+M5;xw(C%$`k1@b45Bp+DWTaQ~k
zpRv(>2z2a=DD~rLIZy`w1TglQ^tZrzI%>9|V%`ZKe=xhX>(A24lL7dHVvDWw)bMnA
z@EJfjq=4U>FaAiSNNEEgDhWuQym|y?Mv+fk_pH)P#&oi9{~64BecB>r1$Xm%#U-NRn>LrJWk~YZG6hS
zTObU|7ssLA#KC*S73^wBH|dQn&{{eYLdP#AfJteMGH2
z{D_GiUfDam*(h-jlY(tCs_%PX5E2ry1Xx(*8{PoQ570DV%XAqlq41)Ng?-tWLYSGD
zh{!Vp0uiMKO6H*}q{(8>M3*Ky&}6oK*?v{5uhsNv6B@^a+?FM-VSEo|Lhj)YLMw89
zoVvZvGl>|-%PtIe0uYG;_NgbR$nlamd%CTmQT-)?i^NuZk7QmSd^$45dZaMsER>0g6{GxdQ{^y4*pSd5tZSR
z!sm9WaxR=_n9rL>fkD$V<(U72MwS|>7n1aCQkDh-XUYhk%cK&G<$3hW0-A;AqnpP{
zzZxS<%ieK|S0y{IIG(~&r(pUYlMa&Q%B&72eCqP4sXCygcSEKj0f(`^pOwytLL)n)QB}RxQ5Q)?!yYuw@^CV
z#M3ES8leR!a`Qau5)xbakAVU?sJMC5!9DfU`3$)%6}
z5hgd5XtS3go2s3^wE|%5`@n3TUbh9H@@b3(*dPFq=-xd6T&#wR;i0|`ND^*ABmAi6
zwiX;5Tn)sbfQ~(US>GuC-y7oFB(x!L4efE`#Et7Lx89z))CW*bx|6;;ome`kQ<=$F
zolnJ&-7IPKa4zye%L?#KtI9$Obt*gqEX3GEzz%7|UcAz~j|ZtsKESPGA_Pi+0$UxB
z#xtlG9|X#eNu8H2{JZYMp~+r*c30t8DdN56NgXJZqFC-R7iBbt2B7|NU5y5aocleB
z>tCHDrM5R1@pdhLY5!hXZef(jSTB^_%!)t
z7DXhGasyKSX2A>Xb=?zzsL`Nt{c&B{YfgueEV$uP_b=o=haYAY
zVDpls(tg}qyw6ho2~u$VnE!dT>F%OZyKmAfmijXvV12WV1liu&{_fqh$G@-ukZgRt
z?0EG2{7!p%oAta&-g2YYcP(V$?#|;|FO;soO~2rbzw9^`Y5rq;wR`wc*M^%{LFNPT
z^+j(lY;o$BhqAJ9=0D)K5LG;bSUmkp)%J;Id>u9(kwSuOY{I$K<+lE2G4eUpz8$|{
znPuu!Yg6|2vm|6i%P2j}REPA#IyZt;0`RDJ_rK1OEJGg*=e<2WJ^t&=FMSy84&F{QE
zD$wn?9Y@OqAEl_dk~^^&0e3hpDmzeAbfLXSjQ-&R-JX&|x);0Wd2ruQagdaY6+l|R
zR|eL5`gmwSs@3?p*Bx2cfv|Eb=c_;Od7mkd=uj+TrCGS!qJTN4>R`l6CX&t3gJn1>i^GU(VQ9>+w=2HH7
zE;nV?p(IWXWj4&F;&M}Zz?5B0eNM6Ri{YhgjUK!Gud3ZRr2pXDFm?(3(&5Ib{PHg*
zqgbbWnO_|`t0C8uJ^yJ){m)tl6=_)2@zQdrH-qi>5rTPH-O;>^lJK5v)^4DT?I?$d
zqGeMz)8G7bwM=V|x5P~DKAX6H?^RVuq9&A89VLgOzccuv=jnBfp`hhewQ#)_ur}4~
z4P;yeg-SiA4}tvIAD-(zD`=@6p8JK(i4XPs4^F-c36zx>H0!6H@lqa4kWQVnMNkyv
zyYx%~ni7sFDzrEEYT9^vV;%d_M^4x)5*q7pH#|rda3kTWFcvq`0<(wFM;$%uF+FKP
zqs4^PJyxPw`qNM~Xe^2-`1cji@#x#zXI;nmeuKqKH&P;}@M@K8*
zLE!uF!$2{=?9}%4U>cUO2|9m8^UciJ0HZ@+cR7(b=EXv$4G}&~j^#+E`S<>AJ{mag
zzJZ-r`2wdRL`({NQ~0Mw*3kU7uxvXKH&uq<)Z~Gg8X>dhPCc1}6sHo}F)u
zNZahuc;tZud~cz*^2T0Cg+txiRWc
zagwp#UgI;6z4~ldb5A#6QpZ4`%|IoO7W&G+oX5*I;6#*vn-tNY*p)3jZIT(fYd>%4
zEGfBkc*7t5xbW4ZMk7zbb30L?Ql2|evpmnF@FQc4f>r0C?Hdi%0?9X|Hj0+M-6kcT
z5`vfc@8me3{8Y)6K`6^Od#_yf#E9TELbd;)1-;;UYm!fr6
zUkD!!<_8;2(^y?kHkxTyv(f3EIoUg}@TFF7MR1mea}%;sL)o}O%Ov#rnI>j4FmZV^
zB(*&rMKC{{H3Y;y-_NDLGvKwOy+BGAKXF
zm;}~kL@zMElbNrlBg-oyJR2j16I8U$Q9tw7xOYfts4_TEP^B>cn
zpvlu8+%2kDofCSZ8U;gnlhQ--@~@~bQ)Av%(cjU{Oi#7f9lRlbCI5J|vqs_l$WXmk
z?MXs#gEJ8s15z`m3PT23D@HxkQ8jSBXKjpPsB%_LJ|ns!V+Pc@ID1RgJln&O`eB?OMOpV)6DipK==*Ul~~yLE|IYP+0=h)Pq(0Ws9W+x
z{_jom|NBAxdyP@u<-FWO<@Yf%+PA^>vz@Zzb~^NH!m6$6^)fLvE(=@
z%%XRpF3V!G_frfc<@DR=pUjK)>CaYx(5$^MhOaCDzOWy_bJgu8-Ym&J>+?k#-Gp+W
zMi|uOH#ri(ytsMuI?Vc(_X~^p!82T6V7U{Ot9#Hl=%ERZSbr<*fYkIh@1{xkz#dir
zodobu9F|JQX4g42Sa5!x>Zl+^|1AelQ(PW&@@-Vq4#w%M+drDXUTZN7zu+~CRdo(V
z8#%>d7s%mse~EreUy(pt`dsuCck|I_7F39~#H34sxG6<$tA!nAJ10e(bJ6IU_7cm&
zR_KhKfAOjQ|IF$?rv+^QSN4*G5y4@6-;|xuvbvoXRdnWxI#dFzM?)PyXUOmzYVQq1
z^PzVJQQNR2{VZ6_*ehS#1i_r|`ZSi8s_x$iqA#Hq%XL5vxMvd%=p_QH2?(t$?>L^T
z`cPh!OO!vonJ30j8RE9SCxxR|nsyBmj6MI=n(XbcUQO49%$pXfRb3H!varoaG-!Y>zq&`}wTP0J_g16I4Wy(lpaYw
zmi5gsTIJliK!StdIRgF+5dvta5kAC9eZEsFk`Ehl=UP&qMT-Yr@kl$
z%R*etgoPi+WM^8v(LJbOe0Amz3-)s*!NL2LYkdjZ)?XD^3Mc9I^THCMgRV-1a_7s$
zxy;*l(AFC2<949iEmr`*Z6W-ppB>9=l0Vhhy86X!#$Evg5WAC%!C!p+{;hReR_^sz
z!^$!B&1HEZIGYh87w-nJbA9{Mu-&xMxyHIL=O$uSv?S^mrN+K*?0{LB@h&g8
z#f=fGApr;_O%l(G!Ul6~4Fm+rGGFWd^(0Rek-GcD3d1i+(f7ZyNZ@||=7&^QLjUcQ
z`<(^*E5H??uE4^2p61>;Ud@t=uVbVFrh4YL^)qWO60uUWT#i5b`227E+#-x5P;!9g
zuum`f(e);g?dRtLhjwOSZ?0lrHowl}WzWfzc_HtyeXKY4((7Ba2ZY^zG_4V}56BAaq7Zl0FdVQsepj1>x
zZSI()(i)@-PN-7)4AV}m7pfujwIC+;T@iDAO!#k8qtmV4^{&E#KUfW7P~8h&-p(CH
zMndLgabHt|pkNpJz;{TteQV5?x~&Vb8q2BwRdAJMlCK)903{ZxJYgW+f|gBPv1vEB
zBQe;>GfHokJ6dcWgrh+#^2t01LPb`!Ifx(&2bel+W3VQq;HJ36j?r5^tFv1O^Llf{Ta)G%&A&hXsR
z0l91P@-=|QrmuIO(y=xvh#u>uMNY|pD&Afy0dSPFnRcR!V+W7p
zZ~aOa|N52d{C9+<2op~|Ej$=-h@M>dT7>@#mO#7;u{)GTZU)&pI{@`15$ErsVh}=m
zx%Rb%W*zni9klRrQtQUsrE$2GBTNcipUEv#`s8+M0#G4bJ~^El%$q?`Wk+SjBjBQm
zQYI;Nks=}Kqk
zf)QJyr6)%HK8z(T$=~g&%me5ZkWRUxA>O<))j5ZL8;jo05Bce>$`{aJfi1sG#qyP2
zrAoy~N%Ic8jcEw&j6{u?2LWdp+pss55AnLfFC#7$gHf~bI@uz1YPZ5)bTVQao9^V|
zv!;1~&BhRjVNYW$@$%ihaZE~Ii�X{SK%9YhLr8aQdHkA!tQK#bDK$$&Q!-ULe
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
N;*tErVo3wP{{mD`wMqa0

diff --git a/articles/web_only/basic-intro_files/figure-html/residuals-mcmc-1.png b/articles/web_only/basic-intro_files/figure-html/residuals-mcmc-1.png
index e494d0077b8b0ac20910d06926fddfc956d2e205..84372761e1f686bde2d7c94f12493c5a20b393a9 100644
GIT binary patch
literal 43323
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

Gi*zdcV*HH?|s5 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


SUR0P_ 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 literal 44842 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 z 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%0D$#+2dqMAL3s4&kOVa5&{RAnH6bBcViN0<5;CS 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

(SgtJqbtA18(2x3KMCTz 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 literal 155996 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 %A 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%0DT#c!qayLuc2#1T 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 wPyK&#SQ(Re7|dg;{X5v diff --git a/articles/web_only/bayesian.html b/articles/web_only/bayesian.html index b6def5783..ce7f586e6 100644 --- a/articles/web_only/bayesian.html +++ b/articles/web_only/bayesian.html @@ -396,7 +396,7 @@

Passing the model to tmbstan#> 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 Sun May 26 03:41:09 2024. +#> Samples were drawn using NUTS(diag_e) at Sun May 26 04:17:07 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).

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 e8b031ef3e9af1cb71fbb7bc5ce0fbc4e31d0756..97ec2ec952651c0eb183a76faf438ca8ac05dc5d 100644 GIT binary patch literal 251155 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 wjT<7&y=AL(g_<#>>>5N~xt8IH<5s9+>7swn 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�{ESE73J1(4$ls9zQ2vS`mqqXXI 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

    $C(1m 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 diff --git a/articles/web_only/residual-checking.html b/articles/web_only/residual-checking.html index a29b75754..ba359df30 100644 --- a/articles/web_only/residual-checking.html +++ b/articles/web_only/residual-checking.html @@ -231,8 +231,8 @@

    MCMC-based randomized-quantile #> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: -#> Chain 1: Gradient evaluation took 0.000965 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.65 seconds. +#> Chain 1: Gradient evaluation took 0.000971 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.71 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: @@ -249,9 +249,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.699 seconds (Warm-up) -#> Chain 1: 4.761 seconds (Sampling) -#> Chain 1: 11.46 seconds (Total) +#> Chain 1: Elapsed Time: 6.755 seconds (Warm-up) +#> Chain 1: 4.818 seconds (Sampling) +#> Chain 1: 11.573 seconds (Total) #> Chain 1:
     mcmc_res <- residuals(fit_nb2, type = "mle-mcmc", mcmc_samples = samps)
    @@ -507,8 +507,8 @@ 

    The need for one-sample residuals#> #> SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1). #> Chain 1: -#> Chain 1: Gradient evaluation took 0.002334 seconds -#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 23.34 seconds. +#> Chain 1: Gradient evaluation took 0.002067 seconds +#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 20.67 seconds. #> Chain 1: Adjust your expectations accordingly! #> Chain 1: #> Chain 1: @@ -525,9 +525,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: 30.393 seconds (Warm-up) -#> Chain 1: 29.823 seconds (Sampling) -#> Chain 1: 60.216 seconds (Total) +#> Chain 1: Elapsed Time: 30.753 seconds (Warm-up) +#> Chain 1: 30.123 seconds (Sampling) +#> Chain 1: 60.876 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/pkgdown.yml b/pkgdown.yml index fcdd5a296..44b2eb361 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-26T03:36Z +last_built: 2024-05-26T04:12Z 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 efc476c41fccbc218cdce2f2c44aa07426d46600..bd7be7ae09ff2c0ce56a73e56397b2644556feeb 100644 GIT binary patch literal 69023 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 literal 71727 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 E15KdxkpKVy diff --git a/reference/sdmTMB.html b/reference/sdmTMB.html index 71ad9351a..d2f3fa461 100644 --- a/reference/sdmTMB.html +++ b/reference/sdmTMB.html @@ -1059,8 +1059,8 @@

    Examples#> Dispersion parameter: 12.80 #> Tweedie p: 1.56 #> Matérn range: 0.01 -#> Spatial SD: 2573.00 -#> Spatiotemporal IID SD: 2087.99 +#> Spatial SD: 2571.71 +#> Spatiotemporal IID SD: 2086.94 #> 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 9496bb2e7..d9516da5d 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.01007 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 100.7 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.615 seconds (Warm-up) #> Chain 1: 0.197 seconds (Sampling) #> Chain 1: 26.812 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 ) 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 Sun May 26 03:41: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.28 #> Spatiotemporal IID SD: 2064.88 #> 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) #> Warning: Argument `add.data` is deprecated and will be removed in the future. #> Please use `show_data` instead. #> 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 ) 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.000965 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.65 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.699 seconds (Warm-up) #> Chain 1: 4.761 seconds (Sampling) #> Chain 1: 11.46 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 ) 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.002334 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 23.34 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: 30.393 seconds (Warm-up) #> Chain 1: 29.823 seconds (Sampling) #> Chain 1: 60.216 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 ) 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, test_uniformity = TRUE, test_outliers = FALSE, test_dispersion = FALSE, ... )"},{"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. Calls DHARMa::plotQQunif(). return_DHARMa Logical. Return object DHARMa::createDHARMa()? test_uniformity Passed testUniformity DHARMa::plotQQunif(). test_outliers Passed testOutliers DHARMa::plotQQunif(). test_dispersion Passed testDispersion DHARMa::plotQQunif(). ... 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 assign output object 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":"See residuals vignette. 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) # }"},{"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 2.947281 -0.6113464 21.28292 14.96395 1.579234 2.649385 #> 2 2 2.867277 -0.7282022 50.56038 15.63864 1.583225 1.871312 #> 3 3 2.570547 -0.5759993 81.02526 13.86308 1.582175 1.204293 #> 4 4 3.305925 -0.5416168 26.01008 16.21788 1.588699 1.674452 #> 5 5 2.870912 -0.7513359 35.35486 15.06749 1.595577 2.000633 #> 6 6 2.901625 -0.7516155 25.05987 14.38858 1.614982 2.741510 head(gather_sims(m, nsim = 10)) #> .iteration .variable .value #> 1 1 X.Intercept. 3.120602 #> 2 2 X.Intercept. 3.072890 #> 3 3 X.Intercept. 2.688049 #> 4 4 X.Intercept. 3.006871 #> 5 5 X.Intercept. 3.120740 #> 6 6 X.Intercept. 2.509646 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.00 #> Spatiotemporal IID SD: 2087.99 #> 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 ) 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, silent = TRUE, ... )"},{"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. silent Logical. Silent? ... 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 ) 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":"Pass several arguments DHARMa::plotQQunif() set uniformity p-value argumemt TRUE default. Add silent option simulate.sdmTMB(). Setting FALSE allows monitoring simulations larger models. 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. Fix delta-gamma binomial link printing type = 'poisson-link' #340 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.010102 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 101.02 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.933 seconds (Warm-up) #> Chain 1: 0.198 seconds (Sampling) #> Chain 1: 27.131 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.165 #> #> See ?tidy.sdmTMB to extract these values as a data frame. #> #> **Possible issues detected! Check output of sanity().** AIC(m4) #> [1] 12534.33 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 ) 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 Sun May 26 04:17:07 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.31 #> Spatiotemporal IID SD: 2064.97 #> 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) #> Warning: Argument `add.data` is deprecated and will be removed in the future. #> Please use `show_data` instead. #> 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 ) 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.000971 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 9.71 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.755 seconds (Warm-up) #> Chain 1: 4.818 seconds (Sampling) #> Chain 1: 11.573 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 ) 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.002067 seconds #> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 20.67 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: 30.753 seconds (Warm-up) #> Chain 1: 30.123 seconds (Sampling) #> Chain 1: 60.876 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 ) 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, test_uniformity = TRUE, test_outliers = FALSE, test_dispersion = FALSE, ... )"},{"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. Calls DHARMa::plotQQunif(). return_DHARMa Logical. Return object DHARMa::createDHARMa()? test_uniformity Passed testUniformity DHARMa::plotQQunif(). test_outliers Passed testOutliers DHARMa::plotQQunif(). test_dispersion Passed testDispersion DHARMa::plotQQunif(). ... 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 assign output object 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":"See residuals vignette. 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) # }"},{"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 2.947281 -0.6113464 21.28292 14.96395 1.579234 2.649385 #> 2 2 2.867277 -0.7282022 50.56038 15.63864 1.583225 1.871312 #> 3 3 2.570547 -0.5759993 81.02526 13.86308 1.582175 1.204293 #> 4 4 3.305925 -0.5416168 26.01008 16.21788 1.588699 1.674452 #> 5 5 2.870912 -0.7513359 35.35486 15.06749 1.595577 2.000633 #> 6 6 2.901625 -0.7516155 25.05987 14.38858 1.614982 2.741510 head(gather_sims(m, nsim = 10)) #> .iteration .variable .value #> 1 1 X.Intercept. 3.120602 #> 2 2 X.Intercept. 3.072890 #> 3 3 X.Intercept. 2.688049 #> 4 4 X.Intercept. 3.006871 #> 5 5 X.Intercept. 3.120740 #> 6 6 X.Intercept. 2.509646 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: 2571.71 #> Spatiotemporal IID SD: 2086.94 #> 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 ) 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, silent = TRUE, ... )"},{"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. silent Logical. Silent? ... 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 ) 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":"Pass several arguments DHARMa::plotQQunif() set uniformity p-value argumemt TRUE default. Add silent option simulate.sdmTMB(). Setting FALSE allows monitoring simulations larger models. 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. Fix delta-gamma binomial link printing type = 'poisson-link' #340 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":""}]

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¨6=kOjsH#%613OlWT0|4*XO9 zX@adW{)OA`bE*vA1EM~!EcYz-1f4<*-VHukv=!TPv z$vN~h1zF|P@9yk-o>-S|8z-}Coca}9$~N6ixedu{ePc^&iu!H!WI)M@xAE}bl*cIs8@R`Si>eIp?R53A0SIw) zaQ)^Lul1c%O}YYd+%#Hj0z_$FYDIScvq_>zJX>9Mxk=z_ELz<&c9e3QS?IV+{+1m8 z5*Q*VAM;bk#D}MR$J_wFAC94Kd86)D{A)9+?Ct@fYii#Qs+HFFnM}lTO?7xLL??VE zY{THvGLKaOMA{FBeiP1*!gF&b92L{xw7z_*dL~G*_0#7Tp2xbz*IcJXE%y4)JqJ191WAT68ylGoDpdX#eoIc9dDFWuIqbJOxfd_d zgLukPXJE8cvy+<-PryGAAOjxxeqk|Nc*1ER;fhi|neMa)($Mrdz|1LT0^W=M30&Wp zK7kTcUjVSU@bkjSS2s!Yomi*IV~9WmXG#O13YvP;3rMn6e=3+RX(jdV^~)S{YsynV zRm*A<{qw~r+G>jv{!xflOWqJkBTI^MXun>PzZF?PDAN2-F00O&FD%1v*yf~40(z4C z9biho(it9xUia5qdS<|GYEbnf(ve}w2>7n@{Bc!30{%sUB?{|CzO+E~ypbozhZtmn#1WCOr)dUdDvqY3>9=)| z@xqBaSF5UO@#94(25At!q21OZ9$oU*oLHo8a71tJti;fOUBVqsQ0F9T{J?6DGs%>@ zRe8J1ewvnLyA|Wb-c`rP1O4#pv;*D=g{N38uR8D7<6LeV%))%WMF7_+IpjX+FYMQ} zOv_zk-_k2#112?%oX^*Iu1TUX*B<(hO-wCkNTTQ2#88J0Bp5w3P~Wuj^-5rhfXWR% z(xnrXki4yl`T)&T-wSuqrZEQ}}L+ z!Vy9ANqo@+4l@34ONYj$H`jEWs z-jSt6m#bNv0{~5>m}>1`yk0vQ{;4XT6@z7z-E~&0q25zdMmgsq;a_E!!s0p+OJs%o z!|A@*y#2P(EBJ!mx?|kZZ^)8+H6`*@tpHV$XLZ^!XGZ*+C zx05z(%|P2xA*+*Q|;W6Vm^Q7J2@O(Mlc`tCkK8n+# zFw~0K!0G#xVJR0O4vI*H37_^tkFqgQ%a>Ym2dee^aHs_(D5?%PB8TeLr9@+b61!bb zL7b!rf~$i!mMfLUL9zyxZ&P~Rh~!doyBlPQA0BSaBi|420eJ{jFP+|E@GA2B=5_s` z%Z6$FMO5~(35)&FC3)x|~?Uo*YE>Em+-GpV5tUKdNI-Y(wUW;-P z43{+LAz+?uzG1BGo<}tp+3B9pd!rH38J_BmnHZ_snX12qhJ~b_#1S55BrQ-H`-;$0 zYx*w;9i2khs$b)OosafOr5yP=OrJ<(r;OxdzT_$|Vn~4IfVR1G@W6ZFb|RG1XuEeX z1^=ZcQ*{Q)gUAkeZ5mZ;wc2ptFJH&oypy&k0aK&*$g@#Kxa{v-E1eiMS%AqD-pWYg z$W+p~2gkXe1GdXqH!{g^8^V-xRg`^%=!&}L=slsRP^;m40pC8ot7~QNA^I`A5ZGq9 z>2?s!VHV)iqiBtn{&d~@d%=56wElNI0sasfFZonNl6;A!k5S=$-hL?`h4Vns>xOGt z7zb@R+}>e1m2DTZuVd%OCPJZ;otpxk$2`IQ_ix)%G`G_F+@#so7n{VoKxx|IrC0l% zgbh0M%<%CyyqoGWzs-tOrM2A7*FgxebpzQ{`KEHc`%X3K*?psmmHDRsZy=&i1I?_| zdpKHW8!u@gr{5#f5f>Acs&X0)@;vt&?poxdAtq3MWl_-MeJC!mhNB&Wq61SJgt>&x zY^nVw$Pne|!`~zeu|MLQ!RiUteyfQRL{Al8ece?yHs^RfK%;$+l}!%`3-Il}$8%(K zd5vcjB3SN-qSOXGLBfr$C9kRA9<=>HAVcbFwT%AWrYjp4bC^D-tB~(9dR$7z zL+8m2F0U$INKvZK{nY#v&`8FRqsp*&-@v96uaQzgKy`8Cv`;MK-0)lWHZ)MAz^5yoIPQSy(dekKUcj~tLN zP9s4x<8p)B{<%Bze64%?aBYbWSU@d8oaB)*7hV zMB>sSErI+htoxQ89iO3ERlLfve!n)<0ttVjOkDU==Bus^UF|OzmQMc3`lO<#;a0H) zXZidZ85Nls0DIs{CbI%b9X1bIH9*J1rP6B2d;k9N7ALxTo4t!u2mB6xKLY3K2bA!? zP_vBVI>)-wmem63qn}W}>8_LvF8&YFN;b>A*PX`u?QA#I9qcEE(FTwBh=pV}b`$*N zp{lqdF9<8%>nMs&rQ)2bfhR>eo|Q!_Pw_h<;!%um z<}|&1g7;sYnQ%ocJcD%u)3s|2qBD^$1vXi_n$-tko-Wezj`;vp0{?PSLHuV>@;55OHw?j+U3J`oytyYtAZ% zSQO^0%_f9#Lg^&%v#eqL;_!ZW$P3VpP9g6XQ?{?E3OL3a;{V;VLU_{l%8)C7oC`j( zxT<1Ey6FxBh+yyMDru=Z;zy5jl4)8kpYh9&d^TSFbJH+t!NLU12xGyR zv9uuf6sOZLK1k}Z=UDvD51vUoRk`Er+^Ec^NPp&EhLZjlfb#LziPQ{vg!r)s^nJ8p zs3OOX&;6rnRoTCm_X) zCO7+|M=_Z##{I~Z9jm@$Rh42sIK@kje*qpeQ= z=P;M|JE-14*yzL2ubgb}7(H=pk2`dB`%=2ml8cuZY67DMPoXRj%dn;n^#NvD*E=gA zO6_;~!3aaSr%2LO-4l;E+pxhs88H4H8mG$RK(ek*jKvLI**tLl)G(1i=G6_yvKRxTz zWT~;I0jkft>kR*n^-Z4o?W>bLdUp%S6J?a~xN7rTS~9co9?V-*RsG zZ+?U&Ut1saY;~F+1=1;v4QO5C8Flc)ICWw9W~^rClf)F z{?HSNx)R$e_9f?627f%&67lFl7b@8bB-gJwX_!dMpbrn*(O=U!=N=+ilzBVIELLg_ zV{+REK?(R()u!RQnTUZ!P|p2gv1iiOUgln; zlHunGC)dSz1T1=H_jC8f#c_NOY#1vsXx%yj#sS%BB5;$!7b8yWqkD^!EFI{CC#&x5 zxuGh-gzY5VhpY)YNt&0p5HJ`%`00#J8%LgwAB7i-duD!y;-{$AYGeK3JVFS~hnd#q z^P>oEO8weNOg$6;`ZIF77gfVrRxvJ&H60qvrIUd)F9o&;3Y3N6e%O9I*j17;{_U~;SC3V|$VrImTS}5=-KBoO{Q^>oG1VlT8#$gqZ2UfE? zm|}@R(R|EQE4U})?#?cp{Pts$z=JACg+xK?DeU%Zaktuy`R(n1zyCV|G5Oi}zMI#a zloG!3#6Sr$Pg9lZS0+lQ0y|XCZS+z##RLdVt0~p`v({(XjMvvAr~Ne6-C7YLQMgCs zJq-(A=(vDo{<1I-Wa@-0YO-kDMNaqK`tg7ZX<=uw@C6??tXt$-QBzL}gD$56nNytm z3KZr-O9VzdV6FX0&ytqcu0=2`p=$-SovB8FSPbEZm zWL|mOk!@}5%z0vyB>4MJKJR{4kr$NZIS@NB7)+dmuWNcu!Izd8xc6%QEX&I-crIDJ zmi5-)bm%AiR9_nYuw!w145y19%9SG)SoRIEw_~o%q+xTM(#gO!|ud(=Qmy*zAEc0$xEM zTvsvQFXz!6+Co!gY-Y(45}v0Y_@PbfBr z=vfM@YWBRHvzPu0As3P%zz_D6G`=|MC`c8(+^SM5IUH?>fA+r|;-5p@_k@qOT`5Bw z(##$_bzOp!BZaFV5~p2vy%7RdNs+@YFV|1@r7PMiFEJ5}ptiJ_%I>HLh5k@OJ{iF) z7qd1ltmgv|`Ba6(eqczT)+}UiDbm6Qd9>Zg#swt_cTVP5f*eunU;JJLaQ6 zzm^mz>kcNdu)VGY0tf^*laFY-GByH&@DAZ-kw$1+m8xc&p;}uZ^MKlrNga3SN^DaKBl!p|#A&SGQP%ftk896fG_ONK}RD3yYFe#L=N;Wi%j*O+o&3;k@ClYg9vK=nUn%6u(IBSiTJSe%%q3n zT;DocM{P+dAiD${U0i=o-(D(Atb0U=OpsincPytAkXM)FmL0B-{VjGqVHQ-63`?KS zys7Ba+pAa4(`zO;A43m~Gp~iA11o+EGc@hOMc9@ftRkt0Zj#HB!L4#Pc=fo3cvk^t zWOj$Plgd*4zEAny63?n;NcD%x-IZXGN4t3{FE&ZeSciI!RbFq7W(a&}h=FbkkJST+_UcfRag!k3_R*~U# z1dax?2$FY{R9d)JS0I37Im4sga4(sDkMPQsQvj`tBphNzLhXQ}73lCsA5M6JsDJeC z&>o|LH%jjz5>Lo-a1DaNes8qZP1pP}Z=S*`)00=&MmKYz5+)E+V`o|~$_ z5^xyao!`6)hH+A2ABe}`O?7B8;+v7|y+xag50Uz=T&E4_Lm>U=d!338_ zAeT|ShjHv}W!@xIXrG0QOKOB#y>&(7(ujxeFv(Bs?n@HFo!&D(uF0uL7QuDoGZu5j zz2E+v(Ww+t1lnDLKqky#?O@J*=7`@2!cBgkxgwvxN^!}Z3&!z)o)q-bJW5IT)Dp! z2tGkV0_Pz)X6RkY(+^syu^w&BJISR*L@PGWB7~y_A0I z)C(Bbb~KR5mbCqJy<8{=dekLkG(-V#n7?9OmmO&F*@Ubkd5LW1CHL}<_P{alm#<6g7R8sabn zTAJ~Pt{Mo$K7fLl!fNtn3z5W3D!?5_0lcb2Ei`o zC~WNzYU4rIRdZ4A2~{0gp5xn(7S^Aww%}J{P3KFg!%VbQ(t%>qR3~3&Xsuf=1$5nW z9nnc>GUmiT8ukH*R{|Qd;#v$`_?^;Iwi`al2$PHpjs~7vIYgfYRvU}9;YNU9Bb+)= zx1cI`bMO0mpH}sr4G$YgN&!u0o$?8_IxOc)Rg;H!QFHy`=X7|eOt}xH4pBtQzx=6j zIlY8=!|f6ZEV(^jao2fFJ1T~%G3r=Rr^ur0haeg^|r^c3UIg{vl zBtp>9fib4j+ERdJt@P(J_iRYrlhFqxyLS|RN`-cV8lmhO5^uDx6C$$~CGnvhzaJ5W zeor1=qnGnC&d;w|{Z>Z1TF3-VXFa<(#cD>k-FnG0mj?O6>UAJw*NDvSy|z_n>@5E0 z)5}_m{*}u5BV?2{EYzUIssjBL+A4qXuSs4Y6_yO7jji7f1HOM5TF~@Pbv|3N@6=F5 ze|Q*Jd;d`+qh8O!xHKo%DFDw8NhI{0-6cGJ6{UB9#_gL!i*SL7*Bpm}w!t$)SM$LG zLbx(&^%}(rqyA`C(*0b@2c%HnmoV5cM&*HSeE0h;YH?b5@tM@<`6IVa5l$Fa=v^BH zcZ*ePl;ZOvIUJho- z=jFkDgXD@nZ$7=8Yn#C0(qp+Qt4|Glk~kv*kfl*h24*2Dj9SA%1b5fXAf7K0n*Jiq z;AwaRjxP5yxs5LT#bNP!2JXs`IUP^3)?x4&o&afqC8EwUY5y!H@y}w3O}F$5!x|PV z*+|U-jms{6Xx_}08t*&Qx$j~0$SPKkdP3e%=oHTUy7E=cwGac8;+9S;L`5y5kSC|h&I76y z7}X;9e5D&}PAj_Ril{6^_tyVYuROxq&NpthU$ZDRW^@QRQAkX3RMU% z(Zs4AAz!nj-DU&)88OgBj1cO&Nnv9?x;+Dn$;yIV+rkY4>k7EA&j z45Ru&_0~NtNye)COVkaWvZe^k&Cr+0w``DPpLXryu(jN&J_}djwR{0qTuDF~thbsk zik6hE4R9lbt4&Jn^?19m_m7HD7ynSRys7)C84I3#yR=zWCpF_&SJSd+-yY914-Uwp z{t1^j0Ul<#`(rnluRU+|{EwHXd*6Ng^U4^SM`NB>#TW#Ih3HWP9&znPrSBkeFCZEd zy@X}O@X*Ha$#6}s9j<8j4$=@i+;vXQ=;gO0IlQOmKA>qt8$0@Xh7rxr3Sqj)$wTKu z&hvk13|4;95!c0Ek}k|(%3g2;Oy7`*c#!Y3Uf zp#7MRK6T@-K_g3%BNi=Zd=?HbiRXc#{3=CnAM@n~DJYDUyEc{>kHZ0n{sxOn*hY zfwiHYZ`q%%a6ga#+G7P$?+1Qn)%}>2KxH5#kQ!0!M`5(J;^XZx{dJ%(CFKZ=Rmkn^ zk)iE!VxeQe0WA3-Qoz?ZODFiy~GWZDHn?;18*aWzdYmx@%X?7M)v`dU! zP9LlLsVlogG|lbtZM5B5*v@OOCaT0JRG^klX7%n!(^W8&d4 zVD(qr^*&I9_vn`(M2p}3$Q@VbE`Is#`HrtO?CqNq2r5yws3FT9k5oc1IKE^V%QhmL zKD|8Ep>Pq7fB2NdoA|$Ov7$-30uLe$SAXTdCJZCw$tLXg=Aim>Oft^uF;`r|v_8!1 z5^o24qJFS*#b$>h^R}C~>&R_%u5%P&awNaieocNZA2T6ID&^WQf% zi~)xf-~AWNm_T}KBkpUqb99*)*FMq=zwN(4p7LGpg?szPaeQh}t_#YF{h zYm|WycH9jrcl1bHv?*`| zzxpsxV}T zxx8dL^Lt?})SVE#IQ{t&D9n6kLWjZ7N3%1JzR1G7R`O&0<`8ybgqx|tZ8Z7vYMxLG zn~APldAVZgTM$zKd$!ae@o`C>bf{|v^;$g-={h?q`hZNYl(7|fT~uB)yc43!YNPVc zJ`em@_p&fMBccaTyzkm*@-QisiOG603HDagY%DFbxjAs89Yv;tM{L5M!tH$6AKNE* zyDDlK!z1WWinQz}2sYK0ek|End_)gzCtMSon6EEpf)+B24(*JI}8NO}Vv3#LtGTgpA;+BL5 z))zDX_Bq%_V6q3QUSru8Y!LDu*aap4M}FJXjQ!O_(GF{Q>i?4%6bC#l1{I)VW@eHP3aooLv(-^X zyF)=UHc<)RrS~0v8Ky`XC8F(q!LdPLW(ge2-Rk8I8=c8GH*f3kCgg!}>JZz1K}egu zeX+OY;XPJ6=VQHpZCY?F8~dVaaHTCptXjJYO{XBCe2U|>JlMsRdx7^CnR&k=#et#b z-*Epu^8@lnVzhsp=4W{s|-+xO&h0zurW_nqiY%24?imt}0;O_rqkA{e*<)%C^Cb88V zzgBH6WBJsPqt+;reTSS1w*j=hv;4qKYM$; zV$5k*y%;xrCcTr;I*3Q`9N($8z2dP`Z8+CAW|<_D3b&oAN1lCpjcMI7=U>T{<;KxH zKLpkY^&-E3PEAs{#tO0Hr|HtmkGl1>z8+&_usXBH`e>`-jlClB zK8bGp*9SA+V($k99mf~v66@_e%G&IY zCvUQ~I!}H~e>J9L4;oagV>LnRf+JXnVA-@7oB(l8LGbB=je^tR)&1=K926OPH=smm zp#Xz{;{x%=_NFt{Mmw2^OSOw|b>{)=c{Un?knKgmj&vrEhYX=4olhG+8?0WtjYbJ7 zHJ&aOMdFSk-`I=bqxRO z)*aU;5FMpSkAfC+Ig370)Vbw5_DUiy=-mGP9@+%G2h>5;03L}x4w zhi4`Aq#aH|d+3Hv$@t2=-l}8EM)uaiTwmbH@k>ae59~X2#Zy_WXI363G_Wq10SV&A zu}sE&-kIOs4w(KHz?1Jkgo`DuMa_!B3@E}t(~D-G~2zczzv zLmfL!oJi%c9{c*-PriWQsW#avBT8G5rtDq<+G^4!QRSSTXGM^Uk(i%ynwh z^RwVia`IV(=2vIfBt&Y1Mdh4yj;jIV3^liIFht%p-7>axrYmWG$UClYEsAz*x)A%w z0CYUO9WAD&NSb_>3X?_%ou`*NA$SxUjm-lPtfz#{GOB^3uMtQzDSSqqW!{eK@YH-3 zjMFyT5c=kcqiGF$z&nJ!4Ej6;w6H<%dvfjw{yCDg79Z4mdrb@{5 z#EPLYJY@O0?fmr&GSIx>XL8*BjyBxZZp{R5US7_Vw~N7=&z(lYqA;#Bh8r(QLXn`C+nmm46o73Jbd@cEW(h_<9ey3-h!I3~?{ckHDqA>V~g( z2eV&ZQk&?wgz7lEI2TW%OV@6{Te`=M2IV)3UnCMW<#Hl{@r=B~RL1GhNLKVR8jh!Y ztTmmf=6_6~a2mu1ZSLUdR}&70-2|1ebTxnE@pe6W)`XV~M!KOFm!!kwIZ&@R?4#x{ z!7+<|dL;_`cOAV$7x*_Et}n@#j59cinQogyuMK&y_c~}4Od4*M*o4{msR=Dn(7EoDlbI^> z?!q~!e@n$1jfDXFUwxpx&~tf`AbCf z0rbSt-CnAGTxV`s&rk4p?NQ;;TK0>>dWnvKn6wE7s2Av8ay13$usD5VT<@F6?<~O! zv6=2bbBM6a#B{|9X}GCuQ}V0;ZMhdS5(NmF_0}02_8Jt$7bIVk)R!s*!wX+Y%#f*YxtohAm+^ zbJUN?rUpb+h)^(}$H`?XHp4ZdO-Scz3?3c|mygf(=NL?AOC)_tosQ60`{mahNLB!M z&~1h({74JlEU=pedf;QrXMycpOR`gY45obo9{ZC6agk8nJSvjIZ8DiNjFEy|3OLhl zvD#McXxn~6FvoKrm5q)ry-vI93^gcpV;U66Nbhk+zi)Qbe8icvt#{L~?zB|7Ta!drMtEQc4SQr3 zOv?`VoX$yHImhAZ-JxvuJQpnp`+Oxa$FFoO`6*1KVuos95P?Yaf@@N>y$G~=WXr|Q zn>s`X_w`McBo~$UyMHuguS;mniNJ^|LmTob%%wU!nmc}%ML|qD^r&;9;*yqmCk&TJ zDJooC0_Bc9@-pi8(Srk$x$9Ddq?x)G>QVHT(+Yf7`u#ov65|9IW!wPNf3_m{EU91q zOjRCz>jmE=6Cwzq&9a`0#I1Bt>KXnmG%E&<76ifZxZLhNa~jA!fmkT7s@Sw|pZR*h zPmLN2yl5pm%^7M^BbNPb224-&!Smt=SiQ)5gb>`8&E%_yAoF@$}Ik z;om%B9ESR;Cmz6U7_Wcz*+6+rH>;l(l0)<~Qx-Y!PIijMV>BviWpuT}B`~!hxSV;t zRO*&Zt(bU>jt0%`pW}3Vyam}i$u3nO?&Unog8bJnt^fBiH`y$AH6MUHEXg`m@dOtL zAWxyju`biDy&J@I;K@gH$@zKxiuiUoXq>4&rCTOR&*3ebG@jR9A3Mm;?!q%k(`}X9 z((~#Kj*^-LgKx`4PillP8D-sg00(QRC=++4Fi-t-9Jead#a& zg}K4o;UgKIKuEeTx3j0XkK@_yED6Q_Tfcedp|ZhIGLdz{@*({lTqM3M!yd7c3LZ%m zu*AOtr%TyOBF0+!c7{qxAG8JBuydPEi85PveTlR z@9}+%s)}n1CZmNvfW~DV#?>EKqcT3mb(NF5$Mke7AhPDJ%XuV=#HvL))b*q9a2{I1 zf9_9B<r&k&?pPuKq+P1hKf>GyS?Y}>A>Cfn9zYjRDtZM!B+P3C0V zwr$&XZ}t1X-|r9iwa+oz7Z}nG7pVF6yd@7nxzuQG6sf41COLM zS6TZ|cch}t(15mS7T#$Na7^kGR^aWgFFB_?*O1XRCX_GZ>OG8K)^;a??9jGh6wj8H z))Qp^*ZKBno$?Trati+<`tbMgItdOenXhh7;v^W@s?y`T{=Yy0YX)18sYF5@m3H07 zMU;M6kG+rf(l!>u&gXeAyR+%VJFQ4`Y;0jkM4nhyU-w(nm1`)lGet;in&7*`xS5|DrT;LJseWIHz~XMw zyLE-28~u-Y;C~7!<*Ic@7$t2D5quI31t!*vS?_DkzDJ!RBoJ?HMM`bx?2Cyp8NHi- z30`mN6Qrd_A%0V%hM#7%p9%4x37T5d%>u=5yF^Q~6r%2$K{f|+1|#mxrY%@^Dsi!2 z$crJ~{C2d)DIq@aj5?!Jj5_GtLxV#&Z9XrWo1JI3Yuc<#+?D17X=v7aguFO}f9lO; z!)tz)6a7y;^d6VA9fsY=%Sh10x7ID*3mIWBUK=3^oWwi zbGhBGw#LEt5ePH$Wug~IkCT!hG-Hr}{1YIsIixN(A&k%?lREu-1xV`(HIruRkkfUY zdafFH?1gi8yxF#QU$Jmk4r?%HBwGI_0GFY2WS*5GgLiuwvQ-$^)~^T?vN=@^>a*bxxNV56{PIX9W?eTDsPVjKV8GoB$rzEwcdx3 z{?l64KNIy=oJ_`1FgX|{Zvnt4s2_7KHMVIO#z`9DH;gTJ=ekjE-b_@9u14JQ^J*<$ z5WLt+yW6ooY*u@#b)L+=fC&sdtS`xRnh`M-T(a;twam8y)IMM&9z_(+BALVbR=$o7 zrNwZDCg&mTOd0J}`EC}8F|Z;Q@y({QP(T)VhOLBKhoyG|Rs54P zjeDahOnaEudM|^O^6$@GJxNN;*q^(Huu8mAk+{&^R13GelOe9V$obj3<*h<4 zKlb;t#$j;W8v6f`_5D+{y5eLs-W?k1vnu9=_-l6cZg;U9Nqzl&r7$Lqxbh#(b}-Qe zr4U<$U(1rqNx2tK_3$3eGD0C`X93^k+Za*6cf+AHF2HHy)u8$auW>WA0?Cx5>qszG z((u9bCmlZ=c}LC@z1ZA%g35WOGmRW&V?Utpbi>slkFFzWDB6EI=Wj1 z9O1CuC`>f--_OsUS%&;~+($8uF9uQ~g+(p69j?z7J3NeJRv>rc|Z z!OmRFuP!N<#^P|0MYp+dgS|T!!IYUliHt!5e@!ZzDx53bNhg?K^AHMud zUw#mzPifROExFE6!f~6`bMVe4_(J*L13HpSOqVzM@K121fbY-0Iz3<~=j#xgNzByi zJWekTtM?q#oVOm>>S3`|6oHe{6d~gb7750GHq0C}5V9cGl8C3Gc5N5r6F5FMwyd(36eX2fX0Sb$mz>B(rFZtPoInS86O-^oD2{(i~W`*8XhsGjje zWbT@!)-5z%ufGU>{ON~m%9nqc6J!~+rMh8%oT1@*0%j1z3!`nhPltTCn;Gn1v)aY# z=}Q~3x&R-R(Q-4@v?wriU*2qTc|A*Ky*h_a;tqhqU_c{h<+5>dcvQ!Yh8=RJhPemu z>~v8g?R}f3?Z(ckI*F~uC`ni73oZKh8=#P~-+G*3Tv2H^_CV7>Lg~9{2zJp*e zy2Y{>L0KERo!hb1=TU2Hdufq>%m(i%3@IN;>XLB3z!{4`U87alV?#9IJN1%0zi|Bx zRY5MaLKw2uf&*fr_VFwHaKya#gUSef`181s%D>*8b1Mm+TpGg9!yc)#~5WC z=IalSIc9tOYQELfFKjaLA6r8|x??sZK5t@V@rNK)ym7%2ivOqjm~mgIf)}tPPyQ^J zmG`RIr2y%SF@Yuj8z}qQ5-B>3;dt{1je6cm?b%;d3t2KxKb;F5XpnhG&*|5!K7p@V z=!%7W#euIUUseNIpG_pxFdBQ<0T(nDjl$(JvU0~3AvAP~tMB;#;tKqmO5cWU({jB`nVX^qMINDO1OhnpM%S*ZZt`}k%aMs2j z^^s@{PVhkEwElQ~8A&omq3H0ZJ=1^x*q{XJw9^1g@#NcxbL7*b2Qann_idL zdd@mZMNPNNrowhq*o%mc=(t#8D)|F~@@t5d1m_nTV=I5kPn_H4tkB9HoYVpMb-Zo& z-L3WLKO3a~wCOhEo|ML=kg6_OMaT9f?;Ec_`0E7D&DDXJIiD%@KCd}nj+s#5;aUit z88vWYqJUIJLpf8K1mrY9JLbo%E)H^PPS6?Z1)kyytSEiQcpr_Tkk}dOf?f2tcrDUA z@xr_+Ftk*W!#L5A!BwmV&TP~B*sZD=oL9aNsrRkhSHC2Q=CmmdfRUHg@8UPf1zW>q{kZnh9)!Iz=UQj<^bg ziT3lGniRq>@qgJ4f^rS>jnRoNK$m`@Xli_GwVuPQ8?-i|e`UwiYTR7JuC-m3CZyTl zz#mth0*8Z7ahwniSrx2lumdOUJFdW4CpB&alFG40lsOWTE#&l{Bis7s^hZT?a7)5B0XlUkv%`rk1q9K3gWU^it~QuwxQ{(gCLu=7f*SJ*SoqfF=I^)@ zhRsZOOxNZR>ris*6sy`#|F-^2U$@B2`Z2(aAPRR6`Z&jSY5)t%S^+j*4304m4Ih|Qu#>x*pvC49`ga~b^6{mxYLhlwBK8JaLU?+0#% zO2&|>;iQTG{`mIt10DxVt651Ef&Fwxo{OtUozGlGRkt>eUr88rQA{*=H>xbA8Yxb; z0EwSTASY!x1p@jPh!~M0=*uP3S^@n=9ISu&JMI|YGjcWqv zz628I{us}w%(E(1l-3?6RY40zTc1)rzQ$en)1_G#{#QYwYq2s{V_JDr)APm)h2q_h zNL(?*A|zJ2Z$NrLC z-O1r&-}<%~+%l|OyY4KdUvopmOR-epp89L?+fVg-J`;UU|8`3d1b)d)l( zH4qkNcLJ(eAR8j=dcc!d1+LD|g`+Dm1V3_5Y2qqGHpxZmKCK(+Idp29yVvK)#{g%==in^5CvGA3 zV+ISome#%|5#)!2?XLS?yZMo>*l`v)Hq%*!c8nrfHs zzsV@HaKV$%m0<;gkyc8>H?J7F?xn~r8(ib%CeW5*GCFUh{z0U2 z!flKF6|B$#e^x`SWp7aWS@=M~<$j~=lrHC~f9IdSdbL#Nyl+?-%>DzKW@u(n-xRiq zaBo*fZHU30Gz|;5`MWhRpWRtwf#U<_i+{U!iw^&|q+V(s`EnJmpd7&jys!~Gi2-GM z1?qMZ>P}qsvCSc^UmYl+Xi-eP*bC`{ix@c716i&%{1F}#FRSHJjm3K-9e3mV+{%l_ z!(Xn9pI*!zJ!~@;Y$>6CE{398zO08U{3X2DO=oD^y4buh7D`(+pS5g1TbF-m=l;k! zru%&8k+=^Ygzg0TMk7`6JM4lL5QmS53uL>mG(m`~*LOOj&~(;IZXLLB4+Ft;$_y}& z8e|wo{fJ#HD;knSbDA?$Pn3e}D$p#Vol`+-6G^zYP67nOJoMFgRZR4)_J>blB{mHC z#2pL_0m1s206w!<35nh!6?ImxGV(7e(OUJ!S!ieSPjr7wX>pEmP{%i%^!d948E3P ze}^S-AJHY+6(404$z^f!_(!JX5z6h3VdD5bXtR^Is{zN(VDhqBeN1<|+7eprHi*}c z4f~9`uL0ejJez3b6Fl7(8{1589O@?f0k!}eZ zexlzf3n&NeLvD_aZAk^j=*|6csWBM28rkm+8!{i~v_J7}-vdVAy(vI}x&+J36RsZ& z)AcE8h2X;Oi3!^)icWw|(7_n0GV>;Pu*@KqLgi+!Z4t!4f0ooSW z>h{M(aO_{N=-nQrf2O44>7TUdP2eu~T9nqv?=-B-t#7x0Q@MdCR$Nv2F|G{yt>oyy zla6u@7<9h*+uczvUgSytxH_Scz^yg>Z?jdz(1rmByC-XU$zo@h?oL77IS(x0zu}N9 z$ojTX9pVj2Y`!~_#E{7FFQNT>>p97jq`u2&w^DlVP3G%8xR=tb%Eiu9Dr~_q8P@u1 zXA}QbwlZJ;NorKHK4Yqt>@Ez*BkYTPib(7Ry}g&&oX|_`?!Qe-o%KLBXMKhO&b=)e z7ndP(n2XqxTY>{?mhyR--DeHQZxv?J{lP`v2S?6DRZ76qW?Tr+0>A#~Cu1Az?qPaj z&1EMCDxxxzZa_oqm2qW1jB-CTXL^a(`>FWT3D9o8sK{d*v(LIzYP{fS+}Lg=NK<2b z!_tqA{oGSj`=j;LhkEGKzxefvTu)Qk-6k9c&Y7?kioV@3b8p*uDO6yDsD-(Z$-$k8 z>Ac>Hayzm(e5*$D zndd}bG8Fp}vC$%D4(E2rENUqwB|$K$YS%p8_LJIJxr$** zX>#hM8a3#v)KBt%qEifLLVbU$?MC~|xr%N#x@DbAEvyz(#NL5iqcaJGJ2(*OmDv+5 zWeRBE!THSD%juna5joyg@<(?)K!qaJV{Pksvftg_mC*p%{^iQIU1HFk+r(@;8DQtC)kCiJcd*?n-&E@2VlMmLXF5>I zp^~IoY4QNUhojs|F`lpDg&`?uhBtZrp*1=J=4~6r{JZM_+PE&*z?QW!zNps4!q%U6 z_#_0pSs3VqpRO(YT^l|Ah zns?pk-QA=J)1lyW)O99dp{V$D9&`onZ<^CrOXpzc7i*-_(^S4z)uComxMTaQ>u`Iz zPHhgjvnaB0ugty(RORJoYStT#A#4Rx^8bk@{HqzZBpMaw{#r2$o`~3ylk$Ii3 z^MF#f)&O%=Pi9*+S1eyd73w{XC1$hRv2|YOjrOmplotUO} zmV?I`%c*1_PFWWI<-=)SUHW_;lRUP*wm2z zO@g0O4Ag)R5s94LjZcIHbJVeAG|pnhQx9So+i+#$-~RY)Q>Z9w>YDv^SOH03(Ef)0 z$((P7(wQ<@MGm)b*Roh;th<{OeI!TwgS4Z%TMH~#6rO3|f}S{A1Q1?NMLI*~uB z>2N%LerD4oPZDjsf>jHwaRtl<*iT+q$#+4DGal7pLC3VL)@qPZ^Q+Ao`4R68SwlX4 zlOXkIEHEsf`J2)nay4>1TsZI$LgaWggN--@$eVKT(*UhM0-#n;{zi&UT}7*SGNA%?Ns#T$poGN zZX+*xfjqeRC|dg4_RcdCS?UVx&JcE<+Uj5`qGj1mF7`{eJ+DnqsNDa*k*FuP8;;^Y2Dh*rMu3g+R%o^XW%$BqNHCaJ1XOWJbRD^EmbsR*}J^>nO3D zb{MSeA#-dO$R3;3$HW+l6ZWSgW$PD92Q*`~M@aa>V#f(-4y)WRq{YjuU9wai8t|)m zR8+lhL27GHgPC`}g0HvD*)(Qd&loTKtZ09(Wvf1_fz7Dh01GvJI)2W)aUqZDmIR-^4P z;r}0Q|M|piZ<~+W$~G(yu!c9kSQcmCi1hX=&k)7Hcl%GgIB9ko!^PmA=dcs5(IM{h ziYkj+CGJlL6+yY__)AeO5}t8>F?oNl%^KQ`aBj-Ac3LG1atlfmUG{*^FEX4$seozP zrMswQRF7gpV>r}dIn*#Ok3pn@Mpa$@PsxR#A^t)RxVgex>3cx5Zr%PUjSc~u%d#z`pObWW$~tt((j&qFBoN!9Q8Y$=n-_=PDYu> zeJj7~JNES+-QZlA`(eP(!27vRqYpfmNkMX88xn4Gi)r9(G4(4@{Kvn$>) zIJG5aUfy2o6lI@SLzT;)k(@Lj9g0KtgUtjozDK;OX0(2>+~I1-pDz0b!%tFJydKez zOh#$;=W(?>@akV}3|If@iU=iMona_Q^T5$ExGWF-;^~dLqhR6~!Z+2SInhtsI@;|8 z$43aD9*iz*2Z5Pg4A4W7^@ykeDfL#XYljr|E0cQH_79gr?B{={f#}E#jf^fq<#34J zg+Jaw{u3Dvc-VtPCZRr1vEgs7DdbDho+pzG!b^R7b0^P6GHqP@`8Gy%#hQ!&o3JcY zVx8ohd;{lsHj9JbEN72?w&Q*cUQ;1C+Pnjm{}FU5R@ak>+7Ne;lSDKmEi#rA7uq{d zuxa=fsfmfEYZ=$(4K}>lKOEPaR)QGg9~xo9MsSxbC1S}!n32Ds1=ms;0HKC`KV;$= zk0#*>0azN$h{T6##_24e(w|NAAu$(oAS}u%{xE4d4R5v9MPojQZE%h?2LS7LP`BPP%z0OCX@g?!QjSz z(kfw)^j>kGo&8gloyOPE3|!79zKx!o&)~DWC=x=o{$i8m`tXb8G%1u7h>Di|n91qt?K?Pkj_;^(M;uTQOale(XSAjnYrbtbkf!8sDb4=i7ZMcxI)>tN(%%d|Ks+u+{QavX#R8MJ8)M2c_>2Or*({9b>IJ@l4h273G(EWY*Pr z?!74Y8)bcP@Vzk{mJ2a&SN@5b{&^KgDkDB%$3!(FbKGp`mu$hcFy**Iru|J<_3jrk zyt6ltc`k~H_Ym#Vp&5Q{S_%A!1*7K-W4fPn#}#(hmhA9k5AB&hDGC`Y)qT10Y^qQh zC7Du^Mqiiukf~}PAu`Pvz0m!@!HwKwz&WpOn_`6$=RR(xlJZEq4<@dE8@=g>JRNRR zz!w#AWhv$|?Qk18551{z`6dp+&z0Rk{JT0;Ua4nX->qdEZ(nw->SE!IMMHDBVgIe4 z8kgtr%(Yl{aOMpMI6TtXr-+c5L{BN^0DF@0WTYW%g&;!y)u0BC2X`{Zd+vEuF?VHZ z-^Zy+u1?uG z;`b4P>GZNzxmW*r-&c^b_%El?!v)W6bh}M%uQ3uejMnnIXA$bX7T+wqa^4*sPSAEk zcdP-@D$$8U#Q2i>`M3L(Is@b0Xs?%L_|%NeM5Lc zLVtc_aQS~A5{SVX;TjNxnT3UpCACXMvvdC(^T&kJO0O-_I-r2(vS`MX#et)gvEt~5 zaR*$+7RO&-H;nCtcdcw-0TWc+7LW$~JM4~%%C3XwL%{+7>rB zMO2c<`QA18km5Q+ka<6Bh62)l@E#O-_!C0<5k5Fw;PSvzvI*WK3Jn8L<(C9QM+E#v znX~@PxIumlYrB9rcV_J$+1IX=B3~v6vk|%Oay{O3Nv~`*&tQqPc(=g#M`%p+4;RQB z_B-ew;|xb%YjQOSVM|)66yn8zt18uRFM<5Dndl*Cwz%yehhVA=RdxqCde}h_LFU9o%BcIy62mImzx+Rx$I6jTe z&Wq1E4;2oWmf`5jG0a{Zh(>+R09yy^$QJH89&sVt@FZ)aFv2137Dh5Pyeu1R+g8Z> zlg3-wa$*aVtX#iCJb4#?%up??GBp;{5A4NO=5bLx%R+Epm6%8^aGP|TE%yTJ_hHSA z3@28=t>ZSO^?|IKr67BN`ex7w#2!ZSDrh(O&)7iJOKX07EFFA zJDPvLf!c4RIs<+7VjdoETyOimE_vUMJr5ie#H3$0`~?|bYdVxTms#5+yS{$Sx={`Q z=Vu+`N0cM$)6&&rUMvc)ezD>Q#({^f1(^-N!)t#O*p11j)8?zL^Wqzd_Fs_H1tN@} z`JP3__>3y36Vm!I%L{&Q&cW;EwPFyWFgI7HSW+_WQY6d;p5J)`VG*+c(S*4I>%zI? zfN{#OB2e6h(C5XX1f@UnyQ>6pMr!@eKKwgU2R6|yePF!6FQ66Xw(OHYbw}zS9e>UF z(I|(ni>QWqkHUWb?_MfU=MQx*plA-?(3AdH<65_&MR8)vico~1G4-VQm@1lI&5@q= zCe{_B&{bw?S?A=-MD$DCOPF|*zj+5Vb{Ml;|B*@%2MQ-6;G8_%3K=c-K*-42%g$>% zr05FhoSzq`13m6Y0N$wRcBgK|j|7ZWZ3L!Zo)!PLckJS$$^{71{%Yw8oybdvHZtH&cod3l*; z9f@u`XakF{2Y^b}R_g zcNP=&>;t6OUU-pQJRo}6F3!Pv)EJh{6^R`1c4m>PKecdt&WA1lYP9Y7SR*SkbwuOp zBvobDvUK%jH6q8KLYXvZyJ^%6h28{`$ZI^&@kQ=i=f6#1F4 zUTTh-`V{kJ(y)O#a#w@Pf-Yc9w$t6sI{`KId?MKu&h;kiv_tWw?4F-cA(D%qA6P|)^8)@Uu9!dL4(r#fBee8eOv&`x@hXveG!VsFO z^T`(jL&3jJUFMq)cxU@UNmDPGPX@^4>POo#mq1ZdogOjV_KNL#kG#-(Mp@qdc=5Rv z`YLtrax4|7Fn{=tSx|B6PXw`!aRBMt!+v|A(^|0i{=u_aLc*O6gu!XiTcavD4^ue5 zFA`nzlB_gooU7&wHZiz202?&jhqR{Ta;A!U_>O{Oy0ud~h}|!3AMVe(nl>2LLMq z!dG9p0$O1zFc5dcLr@KTd{#mRH3@qGPeSNORB_J=DW{yRPJ;}khX-DW-XezPK#?b_ zkx8ve)rHH^eZOmmF9?0E{?taI?RhBhj|0h{pF7)@d{|ZBq7)fAQ{aM*x%QWQ{eo?l z$?@`)Mp?R4-z-byI+!iD?kozGr11;i{J6H(0@vO&X}!Nie1HdJ#;@II%m#=K1U+no z?1O0*^OrUEj0jFm=Ytpl_MHt+KC}v{oyb>}d;;Q{$d0GRT{4t7*T>aui#q{%cqWhq zhzdAD44?Cj7nI5>wHwJuiV8RPX+Lt^0iNThZeddn+ZXG{8Se&p5afwQGVO}ikVXuuDC z>>%M9fLz}}lIXvcv&xrW5`n9-x!`VNgc*I%L~uQ@E#ZoBC9 zqrf$h`mKV~^nRsS2crIIqE#S0Ze8I0XHAcZVx^_8!v!tKp&zf`PAVLUK;q38NGzTm zAgrk=_#Bn8evxJ&_JZka|KB;zvha zQV-7K&a97fPdZPInbP907N+Ir4}-qzk;hl6JJ4lX5?A`yaAb4B)~SqLPc5GOK(Yq@ z>9`Tl%CwV&FwnxXziM(=g$56xm7*6WLsS(&NBKc{iU2(ng9-^LF1#TThmSGA$5iNMpy5|nvYW|Zyx*jB;glzjMM~yJ` z)xt-#h?={zG+2`R@iEpcRlg?7w9@{wsAj+ib$X!|x1hD+4n12QdN~T+^;hA(pYsFy zHFyn0TeUUfs3`vaa&_by9)ypfIV}LHRYB}1}?q?FGzam+-Pb+a>*(oL|6i(L`5i>i7yO16K;;#PUZ9y z-bP%idC&v``hZ$BUA-n<7bO>pUZtMKjO)51EtvMSN%udTmu0cq>CgZ;W=0XYBIK%c zrUGh7Q6}*Q#ixB-E<1c*Rig20g$kPa3wR#&!L#GTkbB6G8s$PH`CFqwe*keG#e75b z1No*9aW1I_YvP{MN=XPNx(wpP4EWyv#1-+vuI|}*oD1dN<84-4H$Zr@-HK#Nv zEl9pqS_}@|1$*nHO)oYr!_svNYva9yl7AWM-yp?2D0f;3U(^-Ae1Hg5 zn6~s4x&b?#3BYn2XNSkuUf&XAjN59gWMrTVUQY`9z8Q6cx{49Ia{FvUB2RQda*7$U zv7?713n+s5IzgW1(l~DN(x(6uB19CR0`{9KC_?H-lq4z;E7!3dhhIEi3I)!cwX#1w zJ0fVtza`TRJANiz?wF{5fVpXlay6&&%+B=79C6;((Th%V=ZCQhx>ou|u8icnzbIx9 z{J`BJ@PrJ&7tZ44O1SHw^S^w+vmyz(>qrje{R_qUVQtZT{G|RiIJ>RJy@|A5__?>MLwLpAsac^$qbmhjw zGX_Vj<#+&0mg7RujvadsNDBEPC1QHxUMBl9y1PUqIW0XLZsbv>K)~cl_4?Ry zg`PnWKe*tJG9vn8(=eyt1|KM#(Qi#K`cmK4@kafK)mt)pQ~;@f9pIlZncw5AOjcv2 zA$nlNL15q9PTDY$wTcb~49l#>N%MhzQeWPfPUovDiyV^B|CG(_2<)WgBC9(vmE%$w z*JLh{1o@A(`+l-^TE^x!-g%OAx@;NR>IJ^*o0#AnCHj;vp{?Juv-LCgsa}D57>p({hI~gQ!HG(!h}A z_$Vc9)WSCTx_<%`;~?e^-FDK<;;cEvVo>%WzpX+kCJEoh2~r ze%q}})A4$ai7gx76KOFqSOPE?m^>OH8loF~{s|@B2o0!wz$w+V88Q|m@gJvN&B19^ zVljeP@o+WM8Y4jBANk*RW5c(@(vvj6L3{B3xG@1mqKT~~pk9_ecKpF8wg>=oB+Uh| zFX!?u^yvq+1oW>tUyv`n9JJs3hlr$SuM=^wOE>N=l~ZU(n9SYRa~VgMu0hD z!StUJQz@WuC^Mj@Z~?MDF3x^Pkrvjn{cI~2xtyMDItXY1F4! zJ?j*w>q#1+YYaqE=^inWqWk2S_&KX65lcn)QVewD?UAw|1rrS`M^Y9#uSrKR*uxBK zeaOXA3F`)4GcgxQfQs{7dOnFYK(1D3QA`>O55z{Av^ixgkkqNv>w3GiiFNXe(cYtf zu*C_mUo*1=(E6$*R``5HhPJmWPv=5ju!F`FO20=yeLm(RB8(%>LyPkl2HTpm>;7_# zxg-6C2q)?t6%-Fj&W{Lu)@Y5bTB0#+syab{=R7gR3*x5p?a-LqLSiG>2O5&KNN4PR zDwXq&q9T$KS!-D^J*HVgZC8PapCtQLd>Lcr7bZ5`#E~@%K9-|L=T|n6&-DV}7a^T%zEJ!A zHqk!cgX~1Te!3;PpvK=;&nR4536}(eo(dAp>;FXKY=!uAZx_F%^9r!>s8S?kB z10YMZp^9&sKI%Ut1!yxICU}oIarmBh>mjUHDqQ^s(EA+xH0kfYXRZ;tad}YmzH#cA z1H$|U5mCf()TJr{bRi^$9GUH}%Rz2|dT1bV(?^ehFz3S(V-Vy2re@;FR;>E!H9FqD z-xognCJ3#8xU%_1R^=nR^N`;<}(9n6BsH}z| zgN*wxidlwhSd;$4vd4k9+2U?oJ00jN7szn@6}^j)a^Y$JJ7oc>Ii0cl67&feUcAmr zNb&9|mEg&4*crg%hWb1%%VSpB4FR$Sy`{x51k|JJAj^ovA{@lD0SM4Tu3|n0`zDeJ zk;$8>!s+sqpDP_;{@bUQHW$be;i}1&E2;EoN%)K8LB82qhVPB|G<2l7OT1xYMh@5X zze2srbjWqQwd^}Pd)arWcy6`hQ5Rk;t*<@%5>j@Ni^o)g>Qm=x1K0ah*yC;@`1H#( za@g^4EsbFs(h2k;FYzBAAJ*w;*zO?{zA^nn;^3&O2Vs&*Cs*G)vqpBo$frUvK=EcT zwh|fKzmFdz#Sf^!oiGP&GFpDgIy|R2o38yYNNz9qM1}If8MdT728w;|kkr=J*QKx} z*}53ce8ivorIxBvybjG$j+WiA%&$^Y1X#v8KSU?NauwpNKpGNO?hye3wep5JMDRw2 zgjj>SN!m`&OLuosEn{ry_azp;QLVuT?kfQYzdFoKI* z-ztB>gjj1pkczYxC%N_1b@56t6ww%Z~m%ElPJ7e)sYb z)OO)bT*-qIov8m`3t(RfDOqpq&18MQNi*vhNddwMyMb~l(GntjL=GHy)}&Iw0_wHL z4{FCUVh3sg;Xmlbx6Gu=8qiaB(J;6QvtbbpH%~OQ zPOxDDyUxeU8 zZctK&S0}zgip>GEf^Tv?YGUA_p&6fnH*jYiRJ7hbtZlwN-JBg5x@@ZNYb|d~k$134 z&~_Sz5xhT4K)~Tb-%~-dhz^q^!W9@Zyc z7Px4aXRF%50(j>!5Cl06^ideG+UnvOm-|kTly~%@-Jdvl85_)(uDVDWY=;E{v3LBM zf}|(25o2;64pfma`1yhD|hG%JZQ=w-=>>(?+AMQ+IAGbpM4R z`qSZ=9YF!q+?!QPj46RJn$m7z4oK$qGws3$u)t0TCb150tLi=-j-&*|8;`3LtOp`| z>PhbopS(q<@+c+9ZX%la@nj*^sQgx_d>YKcIJV4WbYbZ2z!Ax3lK)2Yc%UV5-Is#U z0xhj9K#uhxqASMFcD-(^{?knpmH%ZK-c53V}A1mvQN9FusQV= zZDQ5u&hl)|W^g7&WVMNT<%`R(A$}@fXelfOZFIiXxNhx^n|~pU=U8yXj@*H*2J0NY z4~<9CfmOi8v^tFDyOb3u$o{~jx@5Een8N89-LS0g47G#SFga=Z%yW=7l z*Q)n2&@(s-yw~np~i9XG&Y!Ce4y}lyFG2@w<4`T0)S#h^j3-##5F+~I!|bjLK<4joe%P; zUa`b&WKV7{4Dimyx#c^}m#W5ja1iD0q?lHq`%n&vC0JOo7qS%Wpf{Kq)j>{mjD$sr zon>fcz$jQvYQ=;BtV2y8<`R=e>jwohb$V|v7vqsi9wN+^Z4BdkgU&agT|?iNC4V9xk}MvLGhlGoq9Nv7kW{@-mlX4ILp^ z&=S2X=zWWsScBx)upw1%>ZcA;y)9(z;ZuM9`GpD4#=0Q*z=ovnu``sP#_QLKBnfGJ zuNLL!x~H9UROFL0)9>vFM0^vjz}d}1yT%q%O+av=VC4$`WqN;8JA0jUw$gj~g+FX6 zpJKPFfd0yF?!YZTvd*92p1Xhy{!N5Ytd{JWGV+PEbdGY%=P9t!Rd7DDiXVRMcsjfX zcSp|Xsz{fMF;$F4-@}Og9>LLpiB~LphgiIp@uD4{vLA zqQH?PmJEN%#zX*lP}xZixJ!a&p)qsWe@H=i8GK^)w%ZahqH2b8-8FO_6n(0RV`oF` z{{eU#dhXIv&N9?UupD7lNFS41^iaKnyN5C=1Ls~Ll=rDc;RavZOA(iLi~&%GGJN9( zREz{>JH@n{96{GCEQs!sf*?+)D?opWQ+OBABvAMVMbEz-I)OGS-Kiy-Eq9|9lp4^% zw1AoD{*R0*kzRxFlmZkE&@x?n>7^f+xmny`OHVf;D_1hH4LzyMcY+$=bWWI=;E3w| z@j`QUOyp+Pov(Mk2laU~p_S%mqakiRvCl&ccKp1+JLPDXF{r)0p=7@1o8jJ(>I1y z!hLUN+cQ~{ZQC{3c1^Zz8wM~bXt&yX>Au&!PFh5+^XOto z_}+@Q*?=xU8YYI6!Qce<6c~aov1_nq1Ti^*gn49--}oF0nKA((qOq68%w zoYU0n9KnE;0Qf}(4PA$@0!yJGz%^!go65-4QZXTXy?C3nuN>*K@S6ihB+!|wFCCVr zfG`(+xBr^a#%>9_14keG&*McYRGDm6OqPuStXBosf?t1Tq_TdiZsMAc+2%rG(V}tT{c-jYmnT>^U}m>;*jD;)+_X>+_@fve=LNZHu6|*&FR0ohl)B69KoN z%@i!exzho59K3pFsk7YYOS}yYaa_F74n4xMrL09xUGw|{3v7Pd?Z0E!-9_wW3FSde zbN zGg)1+8LKx%45(JngBt=eqTt~7XGh}?qvpK(NWr$(K*J}sZSnnxbDTvR{t=C*K>T!{ zm2u-=(gVe?0UT8Ww%++^Z&7@~`R$Di%Bk{de*I1COZ}$=Pq$Fq| zKoZ2g2hEsGCQotMFb{psMu$w>TmI3FuZ{+DCWPx9y_Va3WQ&Kqfr!tH=8)yCJ zI<@z^ZwP%zuCNMw;&Eoo0W0rqM@vU)|2VH2??vhhNpaEmTW>T!*RUtO0@2hU^m+o* zx(VmB^|U3B1IugL$BsENr;Nx)|D(`8uMhgF&bx?5P5|BxuIPx|@8=fk z{d$%W1lsjs^sl*?PWENbY-Rue13WA)bj>uyRoO7sg zP6ao46v|2Onr+NeUp@)SpH`)=WgBD|^IHpXcZLzA-GWj#jQf)eANP*$a(4<}c8lJ2 z{MzE@-N`L2H>@Fc0irk)lH(F9!D5`a_zIK(DwO+~i*PR^QwE3-He3rr1Mu4!Y^DOn z4UzAnY?Y=0hyI{I9ndQ%P$;|iLObaoFu$_#@w#tTphb103lpp0g@qBnCAr0%=qv$x_wMRI zq`vd7@jUBrdT?KY7&z(Dj@_MiF*vQwLjC`I=Nqi_H>Mw_VMioDNX*?to_}&Gw~rW% zjn9e2Y#t+SGJ_XgSTCl@OztO*xM*$r;2FK)%xQ3-#U-FU!c%1l;^(McL*kx8-=E9# zTB?sgT8tEsdz}42?sdtWl=Lp<0r+l(ppj|3mX%TEnh!%+)GIv1)IlPHsU1IcZONfT<*Vk-$oQ*t`Hkg%5`-NZh@jke zNuYb5pofM;z_IN#i>#*E+x*Yz<@>w#NmtilaXQiScWAQoMBioN9OWr5ve+JV6-nJ2|5E|J_^Xi6j!~_bUMd_{luvX)W z85oPoLHRM}7UCG2ijv$G#!N=Wz(@(9asnbLjG!@E2Ag{8#0D!h2_%5F*(`IO*1E%tW|_-zs_F|Os45BXm9dq9e8G?}ENhGJ z3xVnRoEmG13NU6D>BEk+j4hTFN&7w>O<0}B({wLrG115WqVWA8B(Gn=Gl}y|jp()7 zZx?uKs1Tun{{)yJBn};DL}4mhCo2F`$Gu|~bH-2eUftzpGCFm7W#dJdS_>qnD)bnl z!8L;i%t%%ooBu7T-V-_q`o?)Gd~Zbf_zo11X->CC9|BVnx8N0RgrCjSBn5CDyZ(DQ z0$1k?$-g>eqMz;WNR^MKe*Z&_y)ZwX`g=%0v(7BX@?*wtWYW`L13EpVS5>y&QGi0i zmPj$alXyZ+Nth5IhdYmlIT=@q95&a7*P|7L5)e4@ivu(sPI#JvA;l=Eg!uXF^h1dV{WK2@(QwQOzHWd8@;g6_^@_ZzBWcL3f~T($|$&7C@xq) zbvh!F3T&}uPYeMpK0?AVLp0TFRJiUvXqbt?=iuPLIq^OpR%IHIS9WuIGeQ3g&36%P zmDxoL#E?&LJX8%-Om^5q%_zn={|LR+*>Bm)K@`zyLu=0VM--R18jUL7P-SYh;xMFk zlHphL6s(7Bcn_I4jd)ikrz*jWKADlt$=hi>{7p7_;gcju()weS!Rj1$TKiF2TSS8) zh(Z3WBhnSrNSHuir#{s=q!wHF`;>xA4II$3%7`$aAcJc5A{@^el7`+1VhGJB@lebm?WT3rD63ZL}cq_uNV zVU4}8)kNfDF~$1poNuRJ%)YmPB5{*(8dE7sM={)PN|Ds4rH4X&3CiCd@~;O`$*WmD z6vaHk1$#eJQhM&vaysCo1%ElvpDO|PfJJ`uH_y*YK6vOuUtAk@SB* zx;rm=hi>PjY;3N*SoFX8ah$QS-H3IV4J#LV$AqJk$}yu5e9~&7@4AW$`}PF8!E5u= zw#R}X!8&!XFC>u{JrPI^t%r`ONf&qth#)Txs4*;0IAM4Y#T8shLlBIJkEjWZ8B`*8|tDv46&oGbXGJi`wJBm zBlHLhtO&YOp7g19jHu$B{|bmtCjZJuNaZn2d$i)rNY`a)$X1De|5Y3oBCtX>-CdQ7OAi|oxhP6dbHrg@p(zXcF#ZbA5A3!i}KuPH*GfnFX%S81Ov@mfml)wIF5 zQiLC+Jv`4HY-q5qk`Dii(?I{?itq2+@6G{lNPae>HGIBZGu4@W#>3=~JFNAj`3uQy zTN%Q6h}})-q(3-Uk`JbJ{9_R*@`tR&GQ1$`OfyPzfDV z?>GsMK08A9D+#U~La1HxwKsuHK!B(yf+ri*oRlZLL0jB-eQ~CeaOt152q4YS7noK9jzN@-yo zzsy|2Gn9fiZm29dR;W1OV32-yf}Ar}2}BP&5QIOBqv7(lX3*5B)!R1yCDD*XbJ9%&0SlItgN16K}$KQ?qd%86mU+p+XcA4h%&>)$se;YOl71r&rled16& z`Zap}!&=o==Ar*mMITUbnL=3*Eh4iNXX8o##0GLZ!~46}G+@USq+#5}EZ5!^Rdz?7 zLM%P-K$Fk{Im`M4+>g?4heDG4BWy3rVHrorK$GIq{J)Z8SoCJm?n45jdex69$StDYqWwL` z*Yo1M8FeH&dJ2#^3{unt-@TuqwqONX(CSmSM#);81}s%w+rZ*4GcR!>-Y>_4oeM5< zF|h7Nt8~fr*nMoI=jYvKe&2}MS`vY$w09uwMtr!$Li9 z*W>`Lv3*)Zrhkd{)@C=Lis{`+2ZkT3oAWJaJkEl>o{0gdr{lfan*8uIh|FJe zpZb>*0cYhWZ!ukbhb>J_<$-}`$Bu$aASA~mG90^VD703DfnSC6Mgbz74LE$|THN9u5wqvKgct#vNvQR7g`OvcG2qAAIwfcaX)N z-so&UXOw^y8k)%5T)O#StFQi=0t0CNf&hfXaA&`(;+Br}?veY+4a41a%HlE4V2rJNkf1_no&)rEBi={n6vGfMpQp zKKC|{MVhb;M-fFw>dG|-L=E!fls}SzSB!y6U*$ZNWl7=a1Fo4fQ~-?AXavXce5_;_ zZzYT6-xM8*Tbl;z;>XfWsX@&ZhqAR7?Pz$2$ePo+ayC~%ZQf3h4sBeyCIY8vT6@tO zabvdA9R^VqVDBiUBqUX!mtc`DR4flc=p?4#D?+VJpB?%SA_$_2fyQe+J)~mNwCxe0 z$OlnjQr8T-w!In zD%V^90>yEMkfL?Oa^@w}qA*zAj)x$4+D}SVkNBEAwYzhQF)h;l%|+C(n>B`og%F8R z{dnX{Af+ItjURGH6q#~tZg;RiE^Mst3B+~K;m8fcfvJOKC%*V`Ha_1X7O-k%X2+ggnAHWF?Z$e7qitiex0zk zqY#K$;$zHzfMs5I0-?A|CIp1o_@P^e#<2`7AL`qKR5F=7=LgXeDv@1v z?r3q~alpM2xzQm0%LQ~9@Q0P%Y|qt#-PHK zVITBU5VXkTz8|_S9+RfAm-Rmyc?*de!mc1CUFVq?V(4rp+%YC=aoa?5^Y)DksG5g$VJHQRcH!37o8j| z#^_f=t)<6X>XB3J-7_?5043JNd3)PaR1_{a7XwBt2sIj7Lp8bEUsn`;>Xl~xZ%|L-hA&NB(~E5( zLEQA?t!AEUK?bLW5jNwhL>A|{jaNCzjV>i|_?pXBi8bGO%tyF)F>)l7*>D9)FA<#K zdpE>3W037nxMc`5ouNdU@EuYjA>s`fS}QK$glUFmx*wy0`b>V#JrmIym}sJhZX06# zSEPHi1{p|W6bRR^{`ZXeNNq?Xv{|oh%1J)+f2Fbjx9&CiO>IH`7PBcMRq$)VZ14P^ z;m91$sZWpC@ef~DYWTvr3|)jJ2m5&6tuNvx{+@uTsh}p`8SIqo z&#F6I+KvTWIw1(e_q#YTPuuNNtwy@}b5r2ERmKA@KPwM!BAWgSU_mfYQVBH}exLno zGVtcnzU#)%c@>Ew$dYuRP%V`pVZIDR=60hX@hh>tUKDr)!3HNc4c>)?g|S5=pE?PU56wcgl5r zq50th^NgWe>dF)W&_V>jh-;?+t?{joiaG?3$$K}y7Jpok)Uup+{(vC3=?Me;o@BYb zBg6#+bx>Pfq1&s8SZ%sqVDX9p*&vj|@nYQRTHMi;e{q&VI?O^@KE7_a8{g{z>??YV*eVE06+XP+Rk=9NZ8<2&+-K zE)l-Eil{Chl-KSs>ZP8~f7@1)=Id!STR_tOMuZJ#?Ej}iFnEb{XWh>~w3k2fyh?T#$keTg9h94^#0+yBof9#M&+LJL%{^|(W2CPT>qgRcihi^)aN!sqSzvZ>jvwPLzuGU6*q-4>=1TT6 zn=*m%bp>Zll8Iv7HBbAms|L7U5rFG;Y36W#mNjrtXBf%$4V~Cqqqmcu2KoAWomN6K%4&$tNia6ckw zrtt++uN7jT>Aox-cD~HEVE}GIj@7auqTb}F z0WaqcK8!n#VN#-1H$$Erasg}Zn%dI3=zguC^#gh$ux15)uRMBm{jw$FHMo$()FS=# z5mYWOVIVfmgP6uajwvyk0P+%DIBA^RagOE*W>wl%(_F6gFQ@l1CV@jX*6hUp0zd^V zc+N1_1Px&P8xY-jF|?k-&jYMlgD|C5Qp+4Ax-#Dkl+}+FwyzQNp-6eDl>~$8==bHX zc^D_z6>#+#S>7XlE5I<|Nrt1* zo&1g92#gZPP@;Hz#z45KKtE@mQQmJDMTkM|1i76+KAxF7RJ&WO?`W8iP79-4e`yjF zn+87oA>7TBC}qMYlw6f0#5ACM&_4rv-Cp>-nXJiz@V|h$(PQ$nO2@CR>U)=mx6tf0PebCoIzuz@sOp;0K(4#~ujnJ>mU z2)C0!VZ7&KQLOCo9cAUxzp5`x` zj>ipSI)rD<6FIhu18b?xCNEbnz!50Gz9exrN)>?8+KJa@0GnpMayElz9hm4q8n7sI zX2Xi{fCES6dFK7}x(GBUpuiH~0c;(WmWR{f-RtNqfh`Jf(Iq#IK5BAoNhp!+PIk!^ z*2mkV25iX`9q;_sR(JQzcekt8PxJAyZqoRX57AxW;M>yPr+e#|1y$jkkhfX3a>RAiC8&jU_alCobpn*F*4Xgn)Db^>piob`TX(*WdC0dO7;OaIVir?|YHWzI^a)9^2W8tiHy{Dy}T}*{Y>T@%V2yUBVPmetnbV{zWOv&|9TXA@F^fud-w}DTw@lNytRq9=-}vv zcP+`UCV>e8r^MC>0;(!jxc8R*Pb1jqyVpp;0hIo=e90pmS?Hik=EA>U60Y(_USt7E6bZ0;PG2`BQUjWM-b6_y_a|bs{^F#JD4RC8atZp zCkSW7CeM$LpD_K)!1ISY`kGOS$(@`wfnLZ8d;kStkv>-n%YSBcOWNzyEbEGX4iLP4 zd+8q~t9IN_L5+rJ{cLxOT$sH080S#^yz-lbN#$rbNaf)rjx8pXFPDW<=H{K#bCw130~m%I_XCY z;3dBaz3eB@oikejstDt3JqO)|s@HM@s9C{_2$BX3?vNG*fcm%D>85=X8bVAS${?I; zQCniR+(y1)w;0Nu7;tYJ2xzqtKRpm}5H-xu?U6;Nqo(=tEtLm6-|It#=YEC*pM%?G z>ByvS;2dOIKn`Z$52%HdG5ES7C7&j5yIH&BXhz4rVvk{Fzv72zm~2gQI=o-g=w&aS z9$d-)yO+oP0+1zO#;U72LU;#j?@zb+<|Q`Fo|R1x6&2^kP3x?WCtP?hyUd#;W_3qkDM%p3qR3h#lP+OTKwKBdI9be&tL3QQQ_*`7h3jJj)(~n1hj4nM zd&-5kC8r>!Iz!*#ctRW5$N=ebK95KChE7v6#o0^B8W*}ex47E2+f>o`a)Lg2=8>7eEg zMo;FsqF+$b z(web&Ql~~^%XXis!93@7{zFBgDoAa>3TxGmM?Dv~n+e*e;^QQ+JMxXFP13c(-iK`H zGQm9B>osfj57(J76De3Hi$xQmW|M={f59bQXHEutT4&p}q;EkmS=)PZmMVCrc1zQr z%fq58&&_F5)8=`4@zUF~UmYOlhWq-Ob7hlHZW z?fCNDcY*C%N1~T5+p|R0rQ}^{>htd#@5A|PlzJQdGN+IHY!7Rb8X752m}e$&0;$)? z^t+$5!tbpZ=k{KDsp6l6<$V{dXYk+63}_W=l?b64Y1WLD9@Z~E(=W4Je5xSvf^sHy zqbs;B|B88ES>}mK3QJi48#Y1A8MKpJ9yypF&3ePRapRjiki4qoD4E`hABI0vDMhd5 z@}0auOsTOo9JHQm{HMPTs6-rXc54Y+A{LjXgJN}Uk9u^E;7i(TATSSLHOD@zUrH#TfJ+vHwtL0@jQ$E&n2h;lI{<}G2OX#t{qD;h(PJ4 ziB#?bHu0>-rQ1tom1giYRYGo=3$8dsdg)|xwiB`pk?V|#D)c?XCC{OUQI$}}Hq@h- zOzc+DBv9~g#0|@pZ^x6~C99XIi>H>qB%TRFaBPQ7d7bY55aZEULRk=gzt$423Ou?e zjL{8KcV@KBsm_0w0zU_TTOC`e*+iAwT=FcLdU8JeGoHojefv=UpJtN8&7wM>P)X%# zSy3tZQ|7phJeb)SV9*$A)fM&;`SiA&z2w;ap_rwxHTF&MS5|Xd&Hi8YNHzlJ>SakN zWp)*4m}E|W3V-7{Qmu`E?=V-8yToAM7A~m=Ac|Qp8Y#$&C$p`WkjF>ArG@N5^&!FL z3PLjYAU1;x)g-T6|1@5qN;XhOdWY5z-4fZ&u2{`mmE|rjx}}@fzd%V*c4nDGUQy4r zosJyN&+_;i@$U}%6atDr8w-as`i7ck@-4N$FiuXox=ovvbU=V;<}Mrhk{sZYs2+YF zxL1Qb;VvsYwWm{?nhz}721A}YTj_A>JDNvVs_y{O;Z`{E+9Q` z!_ikjn>X^gp|0riZRm9U-?Ddr4|{F@$$(nT65X=4ra+X+kt=yX zDi?KDnA|hJ(s@odV_AK(x=8Y*bH;$2p)1FF{*?5l9oXvao*NN zJ;pn_WRK7DEj2>Fmu-`=eMb~>mp6+VS3zD7-G>}Gp_?YH;XGIi;$HVVR)@;0K?@;- z2UGTS2%`~xBrf)?xow{RO^NS%b-lA_{nm5p9rEM6W3WP1>tPvj6pkKh?PREwz}n?% z!nqjgfic1y>AOrPcAz#0GskFUMLPG3ovRat^0w&A%;T5a0#y7_;4y6Q4g#v2t#T?l z&euImKR-hEEIceU$&ECvn=dko(oW=kRr#G&N$@eyDv_+~>U<4;7wEOYQPiP>)(q22 ztHf;?Pk$#mig}llW%yJ}#*C&~BD-4xWyB&ePKv`4J`yf>iA-k38nXP9u5Oe2OpS|E zByAU+k<01IS8dKAL+?nCOSc2QO|LcB@51}4VNd7vt^eKtCk0ygjsSkx0xA3bVI*Dg z`s>7QUdKoUdsZc#xh;)zzkT4bh1!+PKQuI?BO$57;ZIHg{rjKcxF=mee^ihG|cV=J(5D!Vz4YdKWy$y5R`m4p=k$p-CT>w>}lTI;KE( zP8^$M+WvovoPfM#(&S9>7O+m}IdE!veco$)4PV8hXaEKz@jeVusK|2u@#Y&&H7Nr(Qb|lkc=V-fsyD(vClE z06hI(wtVIA{)FCRr8OE5qH8R^i<5iU=H^Vxj3Y~oTy;d zW#j2H-28OAGv8+7XgaLDqvc(VQE#<{uFoz>Pe_ZTM87$!wV)%ZySV1Nc*GHo5 zaLB2?#bbMntEQZzc%*@JdVtCTe`=zIWz+d zsw*3~Tuol4B{s{LBP)_*oVG=VogyQg-O~@fzM`Vc8rA8027TH@N<sEZ)fD-APOPEG3T4f_Ovu$+M!D_PeD*Fok#aB zaEq}%$?xb_4pn#OoM#Db=Z*LCofy>S-!ZrxiLYK;%?-QWiZI##xd;+B#j*GG(vi~e znP=97bd`$M_p!Rl4zM~^8>`Wgh{<)&-Hbnwm+ZDe$quF^Tdlr7!Cutt63RP+@m9;^ zv1ryX*TVl&LDkVL;2Z^14=KK4xZIXe9cZNb%r)ZPTEtg z4ZG#DWz@FKzS@7L_K^hSxs8DBDdiaGpZ$6iI=ZS{7hRUkom*kazbCvZ!gk|0EhqTO zozE&BseiSQC-51nMJ1wY)0&6rlbFDT=LZF@TMOccvIqV=E8Rk>NUgJi_E>n@tJ8Y! zPp?~q<@+P^yZOGCE@Os_%7}d+3L(+|-ErvtnS0klFrVN+ZZ~WmmA2>mc;X3jWN+6X8KI0 z`~)4iTWC}p%4&Ho8vPyuw;|wPc2-Tb$46g@MhOm1MC*qM(=pl%Q#Nj&KK2WZRm4q; zp4b;>@K50slAa+NnI6RIFV%q`1~_3gde%xKR$+?3Bhr5iW=Q!BV#wfntXq&Ve?7n9bW%Y7PICo^ zOImx*K5{RgCb<}?liA_&B&y2F!A0oy4`Z`Zj}Tn?5JwT9%e_f!rsWoOJ&5DF5SNDo z8H}WI_<)t`hZN%5ZiV`|1W6)*kc$<@@gqf9)YeSv&9eREM6)(ap=8nS=kI!t<9JxU z1mhrTv3BW5D{;C2YXL1`NBJu&MQ_8wxoz#F2vu*D1H~pOBo8rzuQ-RD57d9ynSLQ%tu^JY)ygZZ;)>)Qc zvK_r#XZm?~H_Cy?t5$rj>!2MQ-LyXVWSp`iuT2wyp&I40$ae193=$(chj^F|st)Y| znNPdBjiT4!M@7o02_h`F*vQo^m@|m^k?T0_v`O2k^VG7agSu0Q>6Kh-kPFsM5_D*3 z+Si;)wX$4t}H_boV2<@Gtc`>OLx%!u@XWFlRJK;4N{jZ6ey z$*)5Llq2hM?Dp%A-ZBQrvS`}gM$$Jh^F7wN6lWY3wOuZF+M@A0ux&%GUCWsQYV`ms z#57uji*%_D1Abua#d1yU9zCPXH#!T$Z8$##eCXZKPGR+7sgtH7L_pvm0>+I(Ph({V z^~s-RbEbnK!RQQpfXvCl_K~~zFFIlL!CkS`edEb|L&%GXMGJfxy3Q|-IX;J6WYykR zOw*f+jf+CF5q1Wdepz_G9jI^vPV4sPtF@Y}v^iCu-sh&a&oJ6$zm#|ltNZ%gPL^(= zbTh6tiv)fZ0qDXQLc&vV&o=683gCcs(#1r=sV}8tMFdVsMAGH*oi`a-HE5yb&ai_G z<*(=RgR3BKxpeu|zQ53Iswj^bR&6HnJYr?*+E15MmXl9fEr_?SK2(A^I~(~Hgm6JT zeD0lH2e5vAA+{K`Glhh%?K0q3qpd47y6)$nu9KN<1?Bdh`|#vcM(?eYoQ}PLm26cb z|9Oq!O{w?GBjfGVu90!gL3*<-++BBDA30mRKYklC;wsSgxt0KU= z#7NI=UQyJ&Zl!e*T?t#NVpEayc@(6QkC!i^vsPh(&a%;ZJ$l;wAcf07+u*rVtws+n z8J}h9iZ0&Xd=~WNZ^e4VG+!3Jx{fuOl3y#|+d%>312>Br<;^8#)Lt?$88`KI=LMZz z9dE!IsPEsyiCOl{Mh}PJSkR0XoRfDL(3O`dQ=YQUj^)?Dr3cSC&iP4_sT@KwWH6^i zHM`}_AkW~A6pAjmTdN54-nwn@b#L!&-fV>5q&%|gs4KCr z*v8gcN?pvTn$AbJ0qY6urkxyJNEuV&P)`j+Pn?}CzeZiST4mp2r}GKi>94zSKZd%z zFB)I}&**%~m%K|#HHJRCv(2u<$g0|2r*{ezbUv9y*a&=YpebHAh9O;p)p&yvqC$!K zhu`u1N6xsvJ3)}gC^Y3!A-hH6!z=_6NCGBoDgT1j77<+%AKA2_iTr`O?`7%+CGDC@ zG95${${=?{CrWAdbST1qqum=t7x(?=e0!E^HK(bzAOHALFy?1en$gch z*RtuokN9QNq$#{F;n;c^j+zGX#SXr;s?WN7*o^M~t4E>$Oqo5J-7g+N#i>);9w>j; zncBv~`C=BF+hi|#Td=gLKSDJ{%8{5+W}m!*x<|n)>)1uNP~#?gU#MAwj$hsssww^<@o4+uw+V%`8e zydIAHpUwAhdjL%<^h?d=rx;AF+rrh4lD4+CGbat_^IFYuw?&`p42fFNRCZuRA|!ZX zkz$mK@EihkX-l%1MWR7!)hU8pm2}1)g$Rq#XToj?q!)7X5HlN%$2k1>aH2L|f->!Gq}0?kZYW zPF{82&)N`KmEpeS#H`@ZGW9i&(G!KL-c-Ipg$H@77h&h`g7y5$#|8cFe*-`9_ir*{ zEVDFHhivrS|8W7VbVkNksOg8*;#YhrBjFJGX3qI^s*NsWFVk<_4cEOE?RZkOJ>83o zDNhjuT!i~KV;z9aFn7uJFIrp8+bTg*H>W&f`@b#u)W5g;n-FSiKmM`3Q~pP1DX+Lc z&2c&(#pnBM@W}k9qYdbAJ)LB$vDE5sCoF1x?q7~u+g!SKASITLgj-xZeWV!F#Nwiy zZ^KwJY)BiK`a`e}{FETg0hx;`QOZFhJ|(53VI76qnbFf0BwYRL=3P+;tiQ@-SN{%U z2IVa82e0z92n3qH%Rp34c9Qpdc5tm_t0bxJChMu+SL_?3vA#fdlp(J>fIk2{re0fM z`O9=3T#XEgS`Rp?A}5UXL9fKX#ftIyTfE)7S~So_Z(c?u6-)o~GnxxpT$*p=Zl)XdtC_0SYt8%j4`ATO7dD%o{r}?SEHz@nged;<7flUwpNMNob=D^3H%&T^VTeiQ=61B- zkJgd>v;;4XV01LW=Jpf8Am8Q2AL5{io>*B&%_?9ncqB4lH+TL}mwNZ-;cI$8yg^$vgwp?gmJO0k9|>aB;HfCby5#2l zy&8JSpIN0Sb$5Z_0>!g$H5vF@i>6BVL{!ot?b=ntr4!$q`0nWk-D}(9^6FvM`!F|E zpvm7$|9ZqJs~}T5oUK${4vUwG81AJxrRhe742!{%>FWjlV+QiJ4Kt}OT(1iO7M9Ga z^T!Rbl&BHd{;HfOS8c2D`!{v=w68w_kQFe=a6dT&XskA}mTTP`jO&^$G#+NP>Ad!j z%JSg_ArEMe>=uGe_|dNn`7N2$eOn_k=PcG6LSIKNtR?88zO$@PkvKEPvaW+>_-O_z zM?4fsie_aavb}$l8pJOTlQN#6@cs^1<#nkn*F0oGJ(IyH4Y3 za8JuXmx)-3w*B&3u?(}P(Tje5;f10{AeD5l&uy1r@`5fc-1kJ-0#g< z)UZ+xvsn^cfZp(=PZ5#{;YB6@pj&uGY&hdjqGPp_uI`*$&~`1Y<<^16ODs7&6S5#H z_p<78IHaX0!`Xb~g-DR#aA`jrVwS6emArl9$`TTV{ zgg;hP=D_1}AxzI#@NN}ph_!NoWff49zT&Ng_%K(VQwfstzMmnM|#W+FMFy$WZ ztMK>B3Agge0A?*mT=>2#Akb#mzDRo3o9oo(}(8<4@3(1_?=DH6XRqHp+N!nWcX7Q zhCktaaG^ao8ByYcIgd2?`9$3#%Hvy3XN{Zgm?=Ga>Lt2hBd0>^6g{a1v7nwIvn?E8x%ixxbk~_Oz%PuYy`GJx4RXxrKtPVle20R9YJkYnREY z(b?X}3t95Z-~ei-_s8UGrS6=4JdWw!gIirujOL3;@)xTE@Nx4Lu^yk2cFsWK$RtUB)9zT(+Z9NRmzw zQlq5SLz0HMuXEHnOB=!n ze&vo`B41YD*)Sd**-h>>g}dxu+mz>c&;(FuUKimt?bgl7#sM$9mz6sByk$?;$^QO%3Bm-51rGrRaVCm}O|OR*meyxK zJK9jN(YKU$FhH_lHXOYFd(cg|0Y3slpwp~ zB}Iv@@9Oyw*1v12x2Z@5dz>8Zk4By$@!E)GQ7VH^vreXyeB9|?xc|+B5Ihaa)j66= zyeCwxzh=8|yP8NjoTg)nf!Mwrla;@|bxBjm6ed{tb`bT6p`QKJ_-XGu2CM~~msA-C zG8^w4M;=F@unHuMgaULpJ@@1A8?!MfZJ{k19DFPU?Ag!!Q65kvlLuE$i|k>vfy#DW z*=otkpF~`!BiLs>o|>yN39{UI$6c2);WH86$*>)v$0^Z05TQgOoBg6+Grt>lk7Zo% z4{@MhNybwV@FIcae$7JW!T?Wg@vu3V3)$EVHWA*rY%L~;B~L>5wu+p}ChpMrhK`+8 zLW?0jNuBpP=>osm$953P_u`MKksYA`ArQdtewQ$e!l5RVfCj-a3I+i~k7f4DBN-N{ za}IOshD~m7#`*LfwL!7^E$vu+N*XrlZ6c}V^{|wY16Pm&{ccI@%=`9STB^0)8$1b} z3Us0YV+>M7)ZD6kEu&ZlasIo;Z2S*-)@8TPPdw%8Bfr7yhqKbG62~3ZRF$7t^4{-$ zB60tT#Q1OVGaa(sZ8TfGPTI6Trwm#yJ-z7L%r}ZXT34v*Tn|6Qz~SDcnbE{Xlgh)X zVie@>ig=`$QGrJh$oDrhAI+l7>TfNrS+lyO9)05tQ!cP}1FfBm_kyM7l## zO1e|JyFa}5zH5DJJ%8Y-nLT^<%!J|>YbXK2>0QBR?>I^Q_UBi?uV)@Ji^UqhyiKkd zCKr~JGQlqbI7428Gg4gNp7)+)W?)RkI;~0pQsQ+1?g8f|fl<;>zNcs7$wmVpYbt(6 z{FM~E_7Y%Zc8v2y9@Eg^Qpz<}#TahT(FCMamm8xCe-37i9LtjqId(Ce>>@$7;^pgHQCW-iMj7eYAvCDw7q$M}6 zi+WjVBvXe8|M_VPBZ=dPh=85RvN-|IJK4lg>|wG3ign?%O|%y5{NlC)$Yr?gr_$t4 zg>ZTb>b`<0K@PQZ zi5SSg+SKw|Y$~bck$;L)pI2@@MUD!L82s2v@Hi&IxJ4Uw+Pg zY(gXdx0~pZl@x%_Q+<4VTqZO)?i#YLt-xMm`!IRjgK7W8XxbAUJ`92rctqBuMM_96 zvnv=|rxI3Zw{0*+r|}{41$}{<9xy{+D&XR->Q`nNfB>-d^=L(UNLXN{OrlDcQ+Dg= zfrR(M*W#$fz09acbf@!LiDEN(%G@+Q6r}B8U7YmuPyWlb;N`NIW29{ zQ5*qZdXgbS5$@#t}_37(1x!%swEO8C3a1gS7q zXklQA|r2vpee-~v9HaDxlV@S*dd;^VuSFP~uLVltuX)6SVD=5KqcRWk; z4cNV~E%Adi;o&+xjR_}MG2~gTkHMlM4l`A2h--16sm7ZCW1n;4(;U$h&N%#0J*H@q ztE-2(_q&2bff+_H_o6x@8LqffiHsNCN8bS&wT=slQg?2E;hM77j=STZwb#JInz!>O z{wl=};8ivPIjkm@|91tmNbfm6I7Mc+Hmyf3ZI3U``@c0Z`gFB_!N$hnbtGYb|1&*z zq2Ut67(fT~s+*L3w(l;@RL82Qalk<}7ZZIZOLvO_FH8pj#fD^Vh&H~z9r-Hrt=Vdi zlZ6XG00$w~QgYgyyWEWh_UFdD78$RhZ8amN@i*W>z{9PbvDdFRL_`_ja<4!6ZZ9kE zn36wq#s^KSnTo?rYGNsb{8&lBl%*p|$T8Q}?5|M25VvpkjR&Zb%+ww)96bJQIT6eN zfdzZW_M9ZSZAw0{D6r8*IYcZVeQLopB`i#-G|G@AQ=|O^MI!=;L=k@U=JmlpC?1=p z5dA=~$55vnZe2)EvIUqmjs!9)tfQvGA%&1=JXsH~yS=9FUlR8-e#X!D_Z>3Hx2JhJ zSIb{}*=RRF@AF>-oVOtUi1YLFYpx(hmqNLbH889V=-sr>D6H`_Q_!5ofkYOEm&YsjU==YvyCYB5jHj-cGNDo83l@bRO);j^^6b z+W8_jt)78ep`#deYxN{X4in#&H)IIvjqgCnj^ti1G`Ac8+H=;V{&*!7?HSX~$uNS} zrCWSJf4=p{b1HFI@8!mY@#%TuOAbSi`hmw7OF@8vLV4R!6Wj6kzJis=L|W zbjxdihK8%?!GpXP&TXGAE!qD9h|6YN0M=rq!EiZyR8mAahy<;~J&D!dgG4aNtbp>Y>$9|)!|9hN?zd?vDeGKUSDq5L(F87N z-xUfmrde4O@k2ZqzQOtQvG)##>FkUoUAqSy%@ZIy_zfd7`~^iO ze=QVcMrENB^XUWD82ahhSvWiLoi-FZ45|RASm-sVlnpSaphj6Wp?^6tjl8Lq&dU7M z%iF0U2;a;)Xc`Hg5Mn+YWQhHp4m#RfQ)gk&gctORC2_X7vHp6N+<&sF#>pa2uj*+X*^1=c~-VMbt$I5*=u$p;d6z7xy1-JP6Xp5+4Liej<(t|{OpjvjDhxWv`UD$XJsM1ObZEw?7l4#~{n6O5*amq= zxDSO>Y5NT@lBPQFd2!%L@@OJ{wRPXvMD5*CZS(B&jH)MAZYW3jMDMl#c0OKb+}4}u zX9nNyPmX)AXBusCEa$;YzJ}FUkJ7_`3(td016;_+&@*dKefY2}lbftMM#IWVj4BRFe(X*yx%TAX zVEeq;-ieeJ9)dsk-F0C6?CGKQa9w1d1zIzhZvfBYXH4tR&BD<}Ddjpu#(b3ufApL% z(h-2rS(ebMRIB&nFVc_9G{w-gRrX^Lzwj>r@51&v5$YGs&5vtcF88g-%?6QOl z*5N3MLU*|QA&;oXc+ zXRk;5s_oR5$3#6^uq{TK{?~u_(LMPOX@U0}{jM!DA9(UeFizEBTS%r!ZC-L`fjTtY zj1@?qGK5!wZ;~`c60%l1^nj_spx)4Lp6>LbMj8@{-5@Pc72`8BrNC$;OMnBf%u_j> zNMgZz(O$mQI^5_;nCwCBecark-$O<{hFap{UBQ5grBo>2xE4hN+-)j;dPt7py~kycBN0;4 zU`jOVwyr;^SLdzrC*)0Z2S-}!r-bi+I4(dD_gTK57%xB2u^jcnWd!tNWG5&QzVQ8X zw8(LI)An~uhZujOyP|EEv=l}R3^`H9ugi1{X99-QVeYsO%IW)wr>F5a^mZr+rUD&T zhwO;k;1?-f`e@RUM3U1O$H*ifz?lkFFeyxCv{3+2Fnyub$gE}fI0M#y4ZSpK{Tx2{(7UmXdG_P;%ixQqwZOk% z{qL&f@tdj9dT-YfF+_#iD(ZCB#?P;u!fI=Bi8S0(yySOy_Nj-;=jNFVWW=0kWXl&iglHE{>8vA%)L_j3wz6+>_#w6GGny zmq-OEhQ~2{=Xi8~id#LXJOh5eo*sD`@%9N_2rMHvBAszzxj(*kTicwq_Sd4_J#sz$ zn^vCNZjSDH+X1Jlt_b)Ca3tWH%jfZ4f9zkXGJUsVdG}3iyfz{5P1SS;1lPwT3ihDn zPfjGu-CEVrgG;iqX`&-}8nMxa8`oMR=nw|9D4<>OxPc5A0LmAUDLJDFMUj53;Qlos z;G}%m;o+CV!+7Zr4ua;H=0Yt+V^_2DI~S%Lr9iPk$4j}Thv0iQrGrzA`+iN%d{#@x_T1)BNRSs*S)CvE29U(qS zB&C8ZmR+lg_doTp^s!tCkDk;Gc6Kuhtv9Nw<;2gLT&>kH^xpX+a zjG;A^!jY7vpF=AI&|8?6%es@F9KVDr0oRu!C6yDN2jU+kHV!M3#Ni7kOJzvY*Jq8% z0r5Vz;Qx-?(_~m3NMMioTEF34z}Pq)t>Dp+UzDK3SVDlH!j)jZ;ttwC&~_|qk+<&` zHYiyWcrGof6$$z~E7UflESmJF%yj7}twE}Lh03aYE2-A#AzUuO^9 zPdgF42O``@Ggsh#1X6Nd^L*RsCm(7>-u@-DfawTkCztcl`_0y18npku&|}g+AX7Vn zoaStBMz`ZGAu#@PxCIG2jOtH*csT2J0+Vq1e;Y5&Zt;Ig1 z==`3!?-{Ap3^xG^b} z4Wjwjy^i@?_lqwbdxjP+bT9d>&g5UW?wly=rVtWeq>hC69vDsZV0-O3kSTpNuDdW% z^j98f5ctESN-1nfPCv=%3C zV2#KSjGCAu4#2JS4*K`z=&`(9p{C2|%%a`KXI8!;T3Y|p0<6wKqZ$07;;)Vw?Q&`! zcfMtu?@Fu=8Z%Yp#9E-9xtNEEPRZi2uCUV2tdBE_)CAVxQ*lXUo)Y^P`gWfePKnnx z<&Ay*3{eA4LoUPSocl7&Y<&OzIz3eQ1HqTi2AQm1*u^C~X1FPVh?EZP$h(N00ye!s zo&D7bX~I(_@NNCsTR}$rs`7{(S<^VU8?LV80}1bF5`j8Jh0koq1ToVa3Ah21q7m(k zeH>p141bjqw{iV7kXBYRp8}R@sU;=D%w%5F`?HrvPJ?)awrwW0Z}nhFtWe%c;xsjI zSmt@c?YJyKnxE~-Hl!)KV#2FiFI$^`YXdyDsA-b7H()O)c|~Z=<>NG(+$Vo#ohj~N z@R_La8$kF2%y_r=q;c_ExaNN1xdrZK`6nTt)snzg-|wpm{{~BvN00sFFNe#)P54!Z zdU`2bv$b|NK|kp774&+ABXzuYCyg5&u8(u(^uE5Mz(6c(#4Z)cPt9L%<|dGP%pM~} zFz2I^5(dxHSW|{*p_S3j(p6|_;F%h@5(@FR#|)(-169x>6{KQqG1+;&B1qX}QCEWr zLetUt6ceS|Uw(tXXgM@m=N#akc#dN2E4NGU}12L;*MO^QA~-c3Nsrw8Vwq)Ll+f_ zV1iN~kAhSpp``g}e$iDo7xi+@e&gcFLw~>0r0-z^mt7e<^$2muD^E@=|NXCDPJW@( zl=*zFjH>Oa<*oY7JY;8At6WUA)N1$hE=8J@p+ycsGBV5*`^ERq{*Bw8M658M?0fOH zv^ia_I-8yG&mUKP{v{laTDXfpenfbMeM8=7E_k%;=n+{*H7&i-gL$l8? zGxIUrlr0?cDk8SL1~;$?4v7GTtC{C?5^OO)E|ON!;#xu64{bUe4sLk!y#J`a#|8ov ztYNLo%5iRfwz!lv~M;Eu3OOxO^bsw|y6|^Y(VyBY%w+tei<;?TkLiRi3 zjx^mY5M8D&YD#uTZ^Z0o>ZP=ZA4XtVxAA#SJT>#b;L)?SzMw^XX4u>J)M^44Z|D%8&%{C&EQT=y#GxD~D8wNvE!bsElnkAjfF~=X;R8g2im=^d0K`Yh zqygz_U0grjT+0IAwrDcD@rHzbc2)hmr)`WWOx_uOTrv$^XVJ_|f4LJO&4J{eL$ikP zbw{|D}xjczT+Q@IUR*^YMwY z2++ZQPb?4%w?PjnK;3h!QY*{oVa)TC`Td|;%r&Rm|L2pkVlMWHTT-p4r+A1Oz2GK- z{56Gv|L}R?;oN4dH^Xhkv4B(>PzC)RK`*KT27U+$9A;lYg7z924u}GfMmMqyx~|wJ zhK6W8C!su>7QW>=bsZMN`Ch-_u$uO${5)aWak2jG{b~os(9Mf>Ex>!@o0(P3jmv|8 z=G*bfa$)e#U7Cx;TX0tW=?9=@t-n_-8?YR{JIwHl=rWFS;BLJp|2{J+TgvUHb${DyJqr{ZFm*mgYRni33;Pl z&Qzn`u)oJw!yjf+0$F|ot~$4_tZWnOeQO$ie-ssniewSSM~p$;AVbVoOb9Maq;N45 zXC?|Gl1h`k9STwxX9kE|VHzlv9w=i zK;rr)8sue+VtSwJd+Y>E?T2Du5h{7f_0uOtR*DyYyixOj8UQnUAHo2){%}dQR^L-`*#^D zfw=M2(4Do)!ShnHy6qS&c-6>#jX^aDcv8C8Zc}_R5k*JyEC6*njjd&0My)t#9;JeHBHSKgl6rd<@sbFG z4^F2hxXWf>RamT@NH)BZ-S-3xCh&g>)Jo0TI`V;Op$b|oP{cvSf*W>rqHiD*Cr z$#T*wR0JJTDtIx+{4Ef0+z`SSctD>BWqAuxqMhBI1t&y{yc-19fZF7Gm4TcD!eJvw zA(`JZu4WakYnXFdB!BjW7|JyAZeGhO%B2BcM0Z(v9I7LT6%zEBN+x-a2~?QkpnPZ= z4nk>td|0McBpa_!cFvvN=5kCYK0He(s$geqI5xeS^;fI#edxqXP1a+MI&t?5b#^Ph46si~g9Q^@k9g-Hs%2>ghp=9jyN7GMmob#2aL0c`>7V@g> zhAWCzgc36qjvP5r&wwJ8x-}{$ON6N8U#z^@x5IH5Jp?9ELO=O5Vfk4H695bM?D^`|gQCR;b}{`^1Gbb4vE6U3 zTjuyVz_QSa#1Cuh>_Nw)0+y}3ZtL-Ow-=v3dwr|eI%*N@IQB}5M8gfywoMvQdsmJ* zxAltix;YX*_}6`y!}@gypxv*Se3Hyo2tf}>*K|_5+I2avJ6t54t?}EO^A}cQBq;Y= z`A!|Me&*DJh5R(k1-aLccVj7C$a{nUrRGq-#buCb*`Eb|@VpGMhtw7aEHmagFw)_7 zyl6iOX~}rXZWGn;zXo?Ea6T@sYo>7h|I6fk;*iAVTrv*FMu^9UOXYR$+#dIT6ANU& zY2(Lj41R^psvHQRru+WeoME`v^7+)SOtIRjYMZ#COMxGSI2%o}p-3gUj!O1pU6rp5 zbun?XmS^Rrxg~8#kmR#QO``D10x2M+uybHKN>hTRl9V7ST735ob2>ek+*!wXokY$Y z0;dIVYU_Hz_(HYm~jO%5%svlE2w<*p;q{z;2fMyKoj#! zLn+^&Lo3jY(H@B(Z3GX0DyTt1ulJ`b@)|=7Sc84*4Xbxyp-tOqn3ls|ZpqUl6tIO7 z)0Lq-iJf+8E*ZS?$}0LGM`Pk~BbYz$el_Ze4pGy?zaeZ>3)1bvdrNPgtF}eQX~(Vn zBvp`EV!HfAQuf(I4AGlUElt6NP;ho1M19E?QYL4GWF>0{zpZvv-2Q5-Jm88)hc<#l zN*HDPK?9vdvVa~2+97TY@;S_i{jn?1ynjk8J4g{QA8w#`zssQcJf#=3wbGW5oN7tX zH=HeaSJ8T%DDr-^pNdD@BPt2nD+;Y~g^4%SG9GTO3{k1fzK z2;~vu^LJirwF<9c5(-EN{y;;N%OOBNtPseCY>I2aP~G;?MBYm`C=*o4i-`x90w|&? z!m)3#rAndiaVOAtSn+63oPvAA>6GZr`$~bf16dEe8F44};xmO#v<*_>cuoaRfV6}^ zB!_)V8lu}hn3`96$s6cyWt`f=g16Xs%rgUeH=KqbvuI0>5dXQE}p;bmz+DKI54J5Hz)bI>F;>N}m4 z#KkM`*-rIj`=u5(FXmz{X67SB0*OqCw_`TCT3Yj*G}5d=>5K`8%D#muY4(t&XsaT) z*7IIU(gM3s8N4Fblmr!JS~x}TOT?74E(n1+u4J)JwW*G5iyJ`?cMmgU7PhtlAjJb{ zrJal0WOcILE9q%>4A)yZq;-;07&FXXwD||2nhN%H!^@r>nK4r_Z@tO%*Ap`z>3@n= za0I&EN?kFRfB@x^-uTSvXnCb=1X{BfNQ(=mWC#<`>NUh%6=2TJxFDbNb{jjqbMYets1GohGaD9FYYN z0q}<7TlA&HTLbnK0E9oF!1;tYKDbw7jEsXK;kLsI6?#-jC@w}@K0~=2j`$U-iBZcR zhl71n@5`No`qq}ZA2t~v7|Vm z<+Bcqs;lyh0ybh*hBXhrzvDC>`koB$?eyAtspyYBPQ)=g@R#e05#1-p6!?hyw(M2L zkRXG4=$eZh1xKIEIJl3xTXXW){w|>$!Mnt((vYIZ^wUZ84B1UhA+1=DOo${J3az^g zmtGxr%sOd&gH#Kd%H1TiKJfc>1afDi8At`?qE^5M^9t|NTl|6!rH{7?RF#Zt2=06AcGvtRkate)*z z?9I)(+2mRj=OYMMe-$-Y66n!{Zmr`dO=L|VNs0A*Ep`EqpMA*Zi7m)9(LLRi|7}!b zD^d967zqjKIOMy!z4+n0(>_CYH-jtC>d#Sf0#D%r$RsjQ7_F1JJ{DgCh9D2A2E;qV zgVIAHa49t~+M5q@5e5)MLNy911CnZj2IxyPHu@{1e4vI$dnPJZ==4%Vbf0MOo@9LD zTi{P_kQO^G1XJUgB}PbD{yuk{GQ*Gdd=W0ro6dDQZ$98ZIh%wweUDhA334fd_P3|u zc?QqFIBzd$fB(mwx;%kgalWUdZS|p|D#$NV27IJpB;akmb9_H{;UIXw!QY&|B1|t1 zbcPmU_SNI%&lzRRC0VVy9Mu_`CrA&I@lS>FM!%4wv;YM$dI4=BVz&!tF;}OO)jm8; zE~ku_*tN=85y60YRMJhezzFwZihEh!WX;Yd1zZoD>WZFn`QD#XK3(f)o&Gpc_bUwI z9Ep|5A-_iPgrW5ptV#j+L+bFYGSp$&+}qi!dvrb^C6{UQ=sqvJ#k#sB-bowSL=itd%U27yTBD2jWmH3@ z1+A{AfQsK&uL&A+pMRB6RCJ;#bf**TmP&MG%4dfQ&@3Y9Hx{Oet&WB4`UXk^ni8VM zRcV2Nd?*RQKF{F6gXq%$Gn{s+=l0K?iaO)yMo<#Lw#820JM$0)6f$om*-&@E6=5YC z$o3wW=zt9fO3;oPlmU)wjxUVn1rtUQkZqGzxRKtbn939X;>-n5DR&Th@!Vgh3k|mc zFt2Kp%YOZ8F5JI7B;&8H`qAU>1=B{vvA?6(9Vv#mB3+RrH3h6z1U6nc@D{WjZ!xd- z0CQOM1c8mHgZKXE1Ms6_*VWxuhnZ3~3AtF{z2f#g` z_cu{?vVASfbw*-z#j~(+w4aby5Ec#iqW-S^pxt~mKhOI~?TfCY(~(pgiNf0$_LKg8 z|F|=bL$?i+!v_C}e*{uK4ZTq;5){#JeH>zssWJ;Tkrt8GQMBxO>-`MuSJJb1aHtJ` zH#wtj%CK+o8h5Gx0%CggJx!Mrg^9;ddV82a=wHI??|KLvd{u3Qh|< z!V+;A%?!j3U|tczeUExO`%r)K{$1)P^!}*W@8QK5B-kZ{ri$5@{l&RuTu=C(zS8D& zQu;>BP(MDlCq~qNK~{TMjW~^P1N9HXAq&*3I-3Cbl2Ea2LhU=TbtYS_f8}kT)gBHF zRtF$HNJi*fZk4kiX-?UO7hw<0>3GpbjwdUxB$Rk!4^nUr9e7JFL?UI_r4}hBYv&es znE8r-OE~_^XOjh%eW72`#PJjiRlFZVvK6(^0Jzg~RhkE-l6*?jDmLF4@_)?;>19{Q zFd$ZN8#HVm9;X|Jp^XQpDo4Yoxh~q9^D)`&D)Er?&#)-TdSPB|#y1YR1YdmOw6mtNa7xprVc%KiJPRc*MsrE+=RCtT@p8rj+0P_v~GPxpo z3e)3~pQr$(iT^{w=Fd3-fdh@-0SiTJ(d>11gb~9A2_}}}8LH3L;>fQ`0kyD2pcX!Q z$h_HU$cdv{rv~kyA!#1JlseNvloO#blb%oMs{*MCdObnfE_^I!60`_FsMYV^)Z*7) z{np4OmR*LaJ%4S!<2&54y`A?hx!DTAEgWr zv_5*FShu3skjsGYFe8SG_H!Qn>!a7PnsI#M=G%H7LPdWj@jXb0`>*XxrT+YPy490j zLb9>2wHEUY9lL zm_l#Sz`2}h1;--6A194*2m3d7#8k0rc^P-3qL1=Q-BR9DIkh?0-6l;wp9{*G(Qlx= z_C?mP7p(cgBZhR&*aC_iny*4EbkArx$O22{HL}Y>wgEfw<|K5A+*LI41T$aW_P4Lm z_XDEabS2pmI11Gw=TS=BpbEJ}$w2c+5{?8@hR7oYykH`~KZ-qnyLct~Btj#8Eff?{AU&)6pOJ-%R(Q-hVP3hSdj9GV=U8=LjNc zb-A_jL*s1NtU;#(C%hwXsn%kH5U}Te(S@ay6d-NN+g423cevE*clzG8pOZnO1>U)0a)OI%%R+ZSL{q zIy3|6Azld57db2aH_qbrw~dXpG1*4k`!fZem417=QI4(fUqLT1ZNjXlw00anDxL84 zv4k;V34t%Y498ukpd~K>w`gamTY)+N%_Kgv=sb(U9x=rhpQVc!rlUBNKTn5nmy7`% zsqK>&-c-KNJ1N?!48YzAhERQ>SiId7^*F%1 zcl#eL3Fg1eT*h6A zou5+GZk~u2(l)i?Mr%q#`Qwns#fgiFw~&aa_Qum+?Z=s5|Ec8h;ALcAqJf2>|ApXa;&au*|_(S)QCqI$<3Y6KxR3t7Q$Yhd62 zh{%mh7?w)T9wvxU3htupR@2KHDLN9g?bC7wS0lr64R&^3w9#QVk?XxsA zj`A~gv&-$z?(!I_W6C+%nI~*L1>kl!YOV`g7=9Dm#)cB zxww~W7u_wmZA$8f>vDhk3WwOD@qf7e_4#tat>~K8b{fMYYPiA3LyhxRgxJ%oP@$go zS^a?8*UDpF3cv4Vc)azSt9fy+Zs#!d%~;cB4J(iS`ZK+vckA&!wLt6DhWsoOqt)t^ z^NVhCAa%>FUtja3zoV@q;+DM&3v!Dlhj_(_qUmBfO7Rl+tr-cJ`9T5^ulWKau<=m{AYzQ1BS9q2{ z^igAs3y;LsSnEAu^enoyj41^A{3Ek8Bm+%N3Ol{Fe-=#&6fNU!6FRQ)Qq*%< z!R+j_-)NG0GkmQlpi1{SC1sIc)Wi+-$ICO~<8f_O#rgZa1j;|7JrH9g)5xD(EE_LA zF9Ao{F4H8xA&)RR4Td|xL@DZ`r3ezlXy^lOo~G7PH0u*@E~rN@MC(72w?)bxQwN-7 zPMD4Tmx0G^k~8r-8Odah4FHc}LDjV`W=3}>@0L%vnh0wh-rX7pwz46Zk3RY?JREh_ zS|+UqWViY~=sS4uUK21kbZVLeg2=b+=u8(0~_S=gh#oet~olmi*>GRMQr7VlQ1G`@R2I=@v0+F`gr9XKxIrQ7d>XW}EJOx@OvY?wO)3q<> z{=tE-qxrj=$FAwlVNhFV9QB@(OFfR{6>14ygax#vYGguqmbdka%d!p!Uokgfmpx`l zJJM++Aa9Iq^6)L>A^dz9srRURiROS9Zu>VPI zVsn~O9A`|`9zfKQ0#%pmAXdiMZP6noBR^`m=P49r(UH89Ez*AoaDRQgL!(GM`{TXd zc+2%qlhoZ>SyzFq?bXi5qh_K;j{u+j_rFkMXghBm=5qb-EIf3l%8fJ75pC&bFJRz! zt3LX#f$$LI2*of7qJ%i_j(vnb5T?#{fu@nr#Y~RErs0Z5OCN}ZPk>vR-;ki1mM6&S zZXgk;2CHW;K?e{5h)4Lo9DHMh8Kka{k@<(Dn@Vb7!=y)?+OWy^=;NQq8YH%;$SFrK zkr(s|ph5$sLAl&J$8oP4SFW5-dO2Al^IlZ35YKGTmUC~TCj=8J1?@bagp#ZXw||-O zTEPr0fX4RUq5fXq@|&yuU_1I$6PEJC#nH|@ZC7XBd#xz-3R_bY@Qq+xwZaGx<10HB z1vi$z768g7@aN7#prV~n()5q5b+?84m1h~8gU zC8ZeX@9q=LVqk6F+w^#pG$Jv!%|b~aw+sm z5`+Zc5-gH5- zMJ4UQLJX^=U&bG3?B6%iyWO*Olr!?E9{u(yH@eJFKbF5lL4t=}P_^PGJhp_CIhHdi z6_kseOgErV-~H*2=*#GMFZStut+DR)bdNZn|NcapfOYCA-#$uNQgVGEY7IrNt!h9K zhINn-n?}eD+8?Mor3z+l(pM}Q2*|*oNfd^k7{VAR^C7d44n$4E%`{~dm7lfZPugdm z+6DqLc4)&t7b3T@A`ApMWnpR^aD;gH_1A9ZQpUjuXoRos;&As@9V#LK1D=?Huz0cT zKJT*4D0XL(ck*|7MSv{3!SAVbS#slToG@#a)-=qZsC`y!T0! zzaL^aI=hv%idva=?g1x=eYz{s-LDeP!>JtSg1!|Tjqdvc#DZ!5quCN%Cy<=Si^bh3 z%6k1doc}-}^mJL9Nq{_4LjG8nl%TF9?gf=igWVASJ&vR;gr8+9Z)#TL(RPzaTEe-k z?r+3c<9m`tdk9>IXDY6~Z>`@vera;GO1F@d#JgX9o-SaoZ+zRka7cYS5@s)i$D?HP zO42zego46N#=7Gry+J%~r)j)`hSYmPt;rYcNYjw55MqjG=5WU_JPlo&JU_O0e*6tS zcpClwn-Hen>E#>Bc83oI$&??*zUr2z&}ROiQH6{{InZiQ^K-fY#(&I7+k{w(c{abf zYvJ3*>R=5CfbN4DU|lnr30R6~RqVf!dyzv}OBnE@@W0^Fk)3MIf-6ugG5e}qbc6N^ zo#Byys_0kGfjS>GkoBK&W0+EOu+yn2Z)2Kjho~3DMwC2Lo%flWt&dkEgR~p5Kwu`t ze<47U%RKY473y4-Xn=cv(wR-chFKkWYyzs(t3(5F(j55?Xa#JvyyPfTP>P}3jhFFA zXi^^+0Eor+z!Q>1<8irBdCVNYnEm`xY!g^boBCUfW_%Yb`-O0zMUVRF)v-1Oxo9Yz zMKQNTtLNyDk0U})aG|2i_x_?Zx8*LALG{T?iJ%Dxn%>M6jz8W8P&^969sef z@Q-scjUnIsNkjlDeFXti^{!W?$_wNYupN(-9T75y6$6h)*Qv1&ViNXR>*_o0#j&sK zq8~^X^m_LOCZv_~=IT#-(iZ-+89V0nZLTxDtoIj%Q-UR!bJ>|} z*ZGnijR=`FP#?(^bNzJ!L3}xV9g;>ZDS`TLUMrz2k=?>`D@Aq=DfI77QpFoKq?VA1 zoamdCZ8AK@_Lyv_K`3GU_)1rJ-~#>H^qW^eTs%hmEu-Vjx1BIGVc6?Meogj)zd+>li!RR^T#H$YUvckA*^Ks ze`)+r%=@9l9i-_MtqJ(2DyzIV@x?H)2%VmsS40{6j#pSJ%_f?*@Y)akRs$k{GA(b! z#4bTOb|QW}8K3T}FIHT<^^LNojR;hOXIQ9wNZI^0uPZLTHfMU^v%|wveg*V?kVvl& zJkSW1k^ZK8sinD$Zxi-^y}fl*l;0OV`qJGEQbP-ZbPO@z&#k@znP4FEf!eZ$kELsz{5ZWJ9FE-P#H)zizRZo>B@IQAAX2}AuEv_YK`WmD>$Agc#a0ddXv3%qmuI5?<${ zhmEvws$N5XIJjZ6D_cX=RJ|m=N*fRKYRtZ_c(?FS9Oa3kYi^?6=bd0-kdUn{{CH*- zvROLeq;isM)gY)O1epvBZ_L+;LS8&6_2G96LQ!_VL-E?P6khui1~ehc9jjOu?-5^g)4>q(~}LGSQEQu~e8I;djs^WN2^I&nv+G9e1u4bf*H zmytZOoPjpMRj6`BN;I{sCQsI!+cm(??M4txv$4BMq+fQZD22qu%lb=bvQkraE~fC= zi!8(iYfN6h78DU|f?U^$NL$7UiVUf~wN$_CwPlWB)r0SkCFZDJYfej9b3 zhgL?1=O1p?I^-H-o3JMM04uc1DjmA4roTT_`Hc7i{}+v5^F~T3exanYbc&9c#i{?) zZGnSi%#bQ{l=XQl{~60sWRchKbL(Bmvm^NOw(H|H+n67^h&-exBDb5Hh@SS~_OPN- zK2PK5ApU*jrI!SF;k1Luu(Ij6{>{M*937jgmR$S`SP0FGL5?q*7e_t_eabG{yzezn z1GPcYlNW)S$l?Kbd=mFm>mW|b6^dTE2ki94bc0ZtFByUKtVvhuUv3|1`}HDtZZwf>UOFXHSX zGU8cVFdR+jAmCJ!Jq#?M$5&MM$@gbi*pp0U*ne|>E+zL<@Hx9uGr=eK_)oD%Ua#6w zH1AoqjAC?lVoU^%Y(@4DFbwc+F;Nbb2@xwI$`Z;oT~74M>tQU3gh(XTe2e4nFn-Wl z%Wjc0a5wFzs5l|vXdb!vZVoe>qY1)KG@<-O|9T_Jg5Kp45Ev^3VrFa*WMpJDey?j> z54J6KFfA;pa3^28ibx5DmF(%MjSiW4ID9;-lX=}%R8-dBypcMm3 zE1Ev>&YGG*MsWJRJ$N+=sX}rJ%Zux-+|d=W*U!tkT^sgVwV(ao)P#oK6Rz?);*7kO zJSfflor*XQ9qp)6h_m>bQW&%`q)#o739;aXN|n^h*Q>@XZr}&4fq9`VCD$lC!@y9s zVCBOu$0fyX%o@DXlFP=;#)&0#u)=cY0l3xncB65a!ocb&5#V^o_ z3Qk`1)E}KJFDeW;-XtSoEl+q>D^T3sw(7I%vh~aOc^y~@o;;Pgte-d7qF_Rz`NG7^ z+oQtP#ni&e#=BKWSlmA0b>+t2lj8L7O zk*z^p#r4OPV`#o?UEA^M_w_W?lj}UiI)%-b0!=t)Z#; zZF;oeU9Y4+lOK`aU3m#?hi1F>6?Oz5D}Bbj1s?u&6T6 zx}dG9LCULxYex3|mvw6DE8@uPvk-Yxkyi|?^-oaU`#{PLLrJ-C=X3bWF82!}UEQVM*KbDp!fsrx!!%^@qy?N0w_f%dXCN$39IUc5EE9$oO!nRNX){LdnkIE z1_An%dApK`W3X^PQM|~rLWl4LbURd`Z!O&E!F%Rn*JN|X;)c@A|MF|2Q8C*JV$HmA z)i}S{HIbmJqOHEv$4OoWkekwX`oqJkt~$p#O`oo|Vk8HNyV(*gn@GB`P4IYEcYSzU zWpsYOFJWwr}E8jOjIe&>W$Gw!HKE1M+bYLJgG*( z&|{MsJ-4Fhv&{N|EzzJxX6_?M=;n&hONP+`@0=8F!juAo^}V;6ZlV#wfu=a-q4b6VNUoG;Xi%#?x4vRL7>_W)EQs!XI`w>Krn?YOd)17p-(G?sPmRWEk?S zD(pY9@`kZ^m`bB^I}FHDW6oi4q3$tRDDf%_bTkb&w5HtjC1^+)`|g&lMjI`8o(L!Z z0>uCwz-z^DwhgFN@=~*RB-Cnj<`(zRF^F+m_k7zoOd{azuQRKPkcmmoV5u6cfH$4P1v;)1H(j=+JUGqZib?)GQ7F0wvq z_XG2$pax3$kn4ao%3TZ7FdQ)JF~%CT3yXnFVmGC;VC%@>gz>|1(Y&_?$a89&r#;~I z5BguPrbn|f5&K~^m*9pG#e%MgZj3kgyf~*e`A?2Q zdlwgp(rMb?efT5htmBKbUkM2=ZX?%a;kx|Pa6>6OZbi)RE?dM4Dj4tC_H01+G_$}A zj+&};LAdR%p)zOI^0e7-4vwHd9)S;2^rT0E2k?VHOSbBR*&VJ)(Pr_-*2pM6lm`KE z1%MHFhB*~@1A;w>LN6+wyWw~m7jzfY1!gyZr!#g?Wy#>BXiaM_ zlT~gM)24)R;7X}u81|ftQvyz4VSe}82mVNA4(u>1;zQrZX0)WORPP_cNRIS#b9&{t zf*@Ro+;ftp^(gD8lsEWi4@?E;ZXN0DaT0aGJhcyVZpd}U~+ zp%p>*12fCLZ0*|wHWGym33m${4p&ieKbggn|%LO7m#_MUJgj z$^1Xfc)sppVE=(4Hj<1G6t+<+wW0gIxEz~-mA z)8YAubyNt|X6B7tgCQ3m&({|H60;JRwWCOUj0$q(j*?9TM>xF{EefD9DX0I!_VmXwbgf6QHKvh1;#vTb!N^)=gEm+I&W0Ml>n>8iMU?5R#!Mq&2>Eos- zn0-$EiIVzkhg9Y3B{Q)%szvfn%ljU2G6N5Jp%(AG&CvN!{0sa5Wah?JE5`Fu8)5h zE{QHm+uF+JwK>0Nu&=V~%_0ahYwMsF8E ziwu;&I0zh5a7|zer=Z=I&xHL_H&ZELJ_*majFzPCu`7&lL~Wqxrc~}J=fKZAY#9Ln zGF4@$tk%~rHAa#<7fyMtzaus@*G zzCOEPi{z^^8C~|dY@8QuT>USc_P;wsQeR2}>;(54<6pToY$l^vVFAiytj5kK#A{*u zJ^OJPI)>jbF2}!9;32jzSO1KdF$UPUtzsE@?XB&5x14?o$^kSvH~p3uC=dh(I-;Tu zh6#3tbx)C-+#6Wm4$H^y^5L725LzJbJzW2s({`83)}6qffM1|iK)~6-YoftU{TWe` zBKHJW4>=4cK0ygXBB|{KfFHNyTFZ%-FE(r&-}J4{bAc~b+cRR_r-{96btiSOl&R;#&0PZF#gKJGMe!H|Cmz>CbQ1-xOS@mquk?NkAz)5PED1xDSwrkYXey&U0&GF- zz_y+*1ts$<+_0(gDI26+BdMskPk&9oYO6H2J55tQ*$(2g;>c{<~ILuL4sgZhhSmIW1p7SDvFRf3ocy5tMdVY0819{2cVdKBiN#7xphk4&Lnxcon6xnxuJ4@W)F2JC7+&C+MR%NsYqGV3DmzcF9@lfb9W-ge*`O zyyd?sx*{_8y7M(_TGTjZzbF#*&xT*dqmOa5$Bgpuyp%j?XGt^iI$j&L{5g7DJVPt> zx4UrlIq9%3uZ)h(AfJ0}-E3pyLc(zcp_`{?&)c_0&OSZ{Q!7RTb%^B1P($gg!QN0g zUaGXXD3;Xf2vr!WC-W(JX1H}~_PE+yv8bk_(5p((S7p<$DraAnOuZ@7Mrc)(8p5j$ zD{^2Z$fuKa$z4ol<>_Q`SjQM6@k`(>A?3`t86jY1v8cFm;j}N6D(A_uh>gUkxF^UYGoWvFQTB$amyaRkZ)mfI?^u|q@Ri;wVRHu?p*-hMoFAfmZw0!1f{hhhyU>;% z=cM+DzmJORvphapePX);fZl+8g3)NCBzf)IG)-y4xmB+9rQuumK%L?RYem5@CshhF zQB_LD7nk^1He~)NzVLhMaPic9u@{10G;D!GroNTo&h0;%<4FbE>EIW72A;$-TQ=hZ zB)wGUg+5C*I^eXPLPfaNw7R%>d!`zugN%4q)?gPRj31mxpmEIAocG`u;*^ddlQ{Fw z-U6!8_U2Q(mi3LSo?%6Vo{FgwFi%$H0U+*h|CG>IY>>)vk{-Sruu#UUf-|Eyv` zkXd8FrFWiK-uGmnQQne7z25xAr|fbCChkztSh)7sxJ%6r52Mh)6@mCB+{Pm{og`_H zq*-_qTV+iRqKz|+K7;)R;u%N*m_vE+B%bwhrDkM5lw0AjjB;%~?GS}M=(R7%wg*~M zU46cK#=79SN^tO#_lha+KMxMNMu#zCvBy5rNL|-=SGKuTi^5IcnD&<*R5aLaA#{wZ zNo(U&;6H5KE_&j2vcO{jYh${9`x7jECWQPHhrfGOT60s3uNcWG`lKOI7aj!F_=>ii zK}k5wfCR}UD}bROpFO4|J#q{^rVOESgtxv7p}q_azJ#}8auuFO@xqSB8FTWvW4DAIXljz*|5HJ6iHht7H-ye zEFCY;(}vd=mDT7wR_Vj@^vg<&?5kk#62ppY{SxbUCBL=`A_u;fzOg|(3=J)<*PTlt zA+!WfU(Di^cUDzI+zOagrai<8+W4kDeX-hb>h_a9;LQ2Qvi5KDjQgSfPg^9Y%%iC< zx@w%VdA~V&I*=N1?|zWgeQx`l!2EkBPk8?p@3_#uZ_;jqxCeaR2d?Kczbi$n>?r}T z7?9nr!GTgTJ5&{PEr16_m$iXuS1crtH!49SxNz2bn}Lf;xhqIJ$PmM1?LpS;lZ7HH zJ*AtNvI`d9PvHMC(VAjHx1y26yg}K$(jjf8fuZ4L7e{8x)yX=UPNw7skBys~slJOt zUo1J9p}*=+Jy+Ps=!pT?&0vZk)ariHwU3Uv>UT0KikEF`=>wleIY~DAN?yq5Gh3NI8Zj$oNT8CR|%NcU)s_`UkfU^hD(mjjMoMw_kB{03oM()r?A@6 zGXGL%ln@GV%Fas?(Z;@v)o0NDN>8g#^JY*scxIEhA0v!Bu0+)V`V@A;qsqM)lB*4# z)y@wNYJy06uU-*cH}5&Zh?}vRSp*=9D)RV5*Jkg%0G2L26W5+TCWTK}&&8I)#0CU- z)<2!UI8GNL8?kiAY(lG%q$|Eeadp_ebAf6p=-HBLUM*+`YUznxJcKQ{7)~;AMphH4 z#d;j0T`{u3NYA#SJBL_toRmy#AfO!FVvrNLY9Yzx49;O3s zi&zv1>D$a5to;?uOZ-0+7%uDb>gc>FMXc1V$F2(9`V#6@PN=(ix@VU)ku7H&?d~5# zHAc_O=y#6?T6rn)m`G5flFU*xe>jW|@NES>QRvu%>w@ItgBk{t^5Wp`EhsDd+_RB* z=>~(ZcgRxoPf<=E?y}(Fg?OOR>+fj#i+Y49$WY8?n0>@X-Wom^8jB%Qv(|Gvh8}yw zLiZ$o`m4T(vkJsc;k|VpaOj)T;^Sdw=SPMf7q_{WTDNOY5aiiX$BI__+*epa0z5W8 z{%Ise#LcbN(%ADyUQG>ssPFLuJq0jWr1E3vv1vo0?m56|$ZI^VFmMv|0U7U6%d-RrtWEUbQti2G7-FMCqSL@%H{Yc}x4~Ea*6{GwcjWwb?)=AG$_AK|-`S^acXKz{JmmQ<9wAYoT@7R>&@4MUIuKr7I9`gJ1@#i+%J|yP} zjUz`1=`xC!wa6=ARsA=?*WOd8hCzekXcsMM4)acjm%#x|9^3G??jZw`K__~TMiWCQ z^ciS>tNUYtPKlQ3<^D9kpdi`gcj^D3LiyUQ$b?~7e<7$Locwg*F?zw1V{sK58o0wNfT@QGK;;*tJ3N)7{> zu4?^L-KxLO*|6xUZ`q+_Rd;4|c<&$~%47R7>RN!yqJ7=6K6%f_@SE{gzk3EQFcGAU zhL+Zw7t~5YVvCe`6V?0IgMg5bn;-N6yz@}=cz-RU<-q`WCs@h@|Jq;@Cg;D;Dm&{y z)c^M{v=N5@Bw$cnL!tXzd?(o45@lDBt3YNe{h&xaV?QwiBYSmdcsPS6^4D$R#K-EI zfB*9T)gS>%=2*a;wv7<2Czbr^a`=r3)XjCI>2t1E^|Vb3%tI{Df6Pi~hD!dsAV?Yv z2Ky`@FE_1nfyp3zbPNoC-WR}bT~zjLNt`XAOVlJ>1sD1ww>{xrjmr*y%a#&>i_~1? zfdA6a(Ul3O4O2ztS`{Q_BITzW3yms`lVLVn>BbB+H1j{)542bL0KB<+XEVgS-JfjE z$Y7H1ydWEMOVnNWyu3V}H)Yd#Tm`4$UUk}KetuR~R>NasV1s6Kapz>ct1T*gn5$r2yXL`?5zAm{}mfVD5o6oB#nG?H zq=81JpD3$1(?lIx#X-lP!@JDMNtL^G9P33~g0)-y0LCS!wG053aS4|xsCxo43CX2Ofy+S*J$Qv1Oa`>{;v@Syn)_}h04fB5Tt;U3w2;fy zj65_y5m`<1#WR_c0r~5`-QC@<2>qk4;q^}oEmns8KO76*1v5+v(s-@5d1-pR4A8cQ0$^ee1@p?4B|+08&b5!WR`4g}>^5f5fMurbdojilfudCrM82 zkS3`;Oa}lS#$gLrrX61{{L+4f9C^G-f^w1(F|h}{_9v-UL9H?XA<;(0FPnW At^fc4 literal 241993 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 $ikeh!l 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 v=H4HE{pOo%fx_`SCmDkJ5`!P?IQ7q7#> #> Dispersion parameter: 0.94 #> Matérn range: 0.01 -#> Spatial SD: 727.28 -#> Spatiotemporal IID SD: 2064.88 +#> Spatial SD: 727.31 +#> Spatiotemporal IID SD: 2064.97 #> 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 cb931227ff28ebf97e16deba9e727b576573a274..0fbc16af38be1c6729b0c90e69a48d229f61943d 100644 GIT binary patch literal 48711 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 literal 49080 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 P@B`O0&?voY`|5uH>VsPL literal 29754 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 literal 52659 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