Spatial SSO Models

MCMC algorithms generate Markov Chains which simulate the posterior distribution. The idea behind the Geweke diagnostic is to mimic a two-sample test of means and determine whether the first 10% and last 50% are of the same posterior distribution. If the chain has converged to a stationary distribution, the means of the two sections should be equal and the Geweke diagnostic approaches a normal distribution with a Z-score test statistic. The Geweke diagnostic plots are generated by dividing the chain into segments. The Z-scores are then calculated for the chain using all the iterations at first, then again for the iterations minus the first segment and then, minus the second segment and so on. If a large amount of the Z-scores fall outside the range \(\pm 1.96\), i.e. are extreme and fall within the tails of a standard normal distribution, the chain has not converged.

There are nine parameters that required estimation in the spatial SSO models, including three regression coefficients for the detection process and five coefficients for the occupancy process. For each the parameter within the chain, the \(\hat{R}\) value is inspected. The \(\hat{R}\) is the potential scale reduction factor and indicates whether within- and between-chain estimates agree. The notion behind \(\hat{R}\) is that if the chains have not reached the same target distribution, the within chain variance will be much lower than the variance of the chain combined. If chains have mixed well, the \(\hat{R}\) value should be below 1.1. Additionally, the trace plots are generated and Geweke diagnostic plots inspected. Regression coefficients have been summarised in main body of project.

2007

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2007_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2         beta0        beta1
## mean   9.547532e-02 2.733159e-01  8.379479e-02     0.1918378   -3.1010172
## sd     9.623813e-02 1.113634e-01  9.688349e-02     0.2398669    0.4230569
## 50%    9.547852e-02 2.726303e-01  8.331709e-02     0.1869214   -3.0831982
## 2.5%  -9.347946e-02 5.741150e-02 -1.051987e-01    -0.2625039   -3.9801297
## 97.5%  2.841762e-01 4.938762e-01  2.749407e-01     0.6788085   -2.3236287
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00     1.0000000    1.0000000
## neff   5.872200e+04 8.049600e+04  8.711600e+04 18630.0000000 9907.0000000
##               beta2         beta3         beta4          tau
## mean     -0.3899731    -3.1674606  4.245287e-01 1068.4142909
## sd        0.3929238     0.4844305  2.314980e-01 1531.9503790
## 50%      -0.3806006    -3.1531502  4.203960e-01  487.8400911
## 2.5%     -1.1892829    -4.1621986 -1.859793e-02    0.5856747
## 97.5%     0.3568744    -2.2614895  8.894078e-01 5482.6273595
## Rhat      1.0000000     1.0000000  1.000000e+00    1.0020000
## neff  21508.0000000 14706.0000000  2.070000e+04  986.0000000

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2007_mcmc)<-names

traplot(spat2007_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2007_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2007_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2007)
# geweke diagnostic plot
geweke.plot(spat2007_mcmc)

2008

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2008_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1       alpha2        beta0       beta1
## mean  -4.555660e-02 3.561772e-01 1.504871e-01    0.4260527   -3.884374
## sd     3.866796e-02 4.480411e-02 4.020971e-02    0.2859883    0.459528
## 50%   -4.560898e-02 3.562822e-01 1.503113e-01    0.4150221   -3.865001
## 2.5%  -1.216099e-01 2.685069e-01 7.213478e-02   -0.1045610   -4.837265
## 97.5%  3.032004e-02 4.444967e-01 2.299943e-01    1.0216320   -3.034088
## Rhat   1.000000e+00 1.000000e+00 1.000000e+00    1.0000000    1.000000
## neff   7.500800e+04 7.698000e+04 8.914200e+04 6327.0000000 4961.000000
##             beta2       beta3        beta4          tau
## mean    -0.638632   -3.563468 6.258679e-01 2.976267e-02
## sd       0.453111    0.489537 2.866475e-01 1.477350e-02
## 50%     -0.622363   -3.549891 6.174403e-01 2.657510e-02
## 2.5%    -1.575815   -4.563058 8.693672e-02 1.163883e-02
## 97.5%    0.199979   -2.644241 1.213869e+00 6.576681e-02
## Rhat     1.001000    1.000000 1.001000e+00 1.004000e+00
## neff  8320.000000 8626.000000 7.512000e+03 3.366000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2008_mcmc)<-names

traplot(spat2008_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2008_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2008_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2008)
# geweke diagnostic plot
geweke.plot(spat2008_mcmc)

2009

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2009_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0        beta1
## mean  -3.240145e-01 4.637381e-01 -6.623078e-02    0.7355214   -4.3062556
## sd     3.025338e-02 3.593240e-02  3.093313e-02    0.2894247    0.5013659
## 50%   -3.240704e-01 4.636315e-01 -6.600558e-02    0.7279748   -4.2838428
## 2.5%  -3.834952e-01 3.938882e-01 -1.274427e-01    0.1918105   -5.3451016
## 97.5% -2.650083e-01 5.345026e-01 -6.122056e-03    1.3271431   -3.3843553
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0000000    1.0010000
## neff   7.654000e+04 7.540600e+04  8.602800e+04 5277.0000000 3950.0000000
##              beta2        beta3        beta4          tau
## mean    -1.3253856   -3.5396359    0.9635996 1.661052e-02
## sd       0.5221614    0.5229422    0.3440414 6.229827e-03
## 50%     -1.3072442   -3.5254014    0.9531533 1.553410e-02
## 2.5%    -2.3970815   -4.6050283    0.3187313 7.736400e-03
## 97.5%   -0.3480417   -2.5562421    1.6625764 3.180547e-02
## Rhat     1.0000000    1.0000000    1.0000000 1.001000e+00
## neff  6540.0000000 7917.0000000 6770.0000000 4.008000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2009_mcmc)<-names

traplot(spat2009_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2009_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2009_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2009)
# geweke diagnostic plot
geweke.plot(spat2009_mcmc)

2010

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2010_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0        beta1
## mean  -2.697472e-01 4.149317e-01 -6.550085e-02    0.3529805   -3.0342663
## sd     3.113102e-02 3.726412e-02  3.440541e-02    0.2430207    0.3490704
## 50%   -2.697138e-01 4.148343e-01 -6.545899e-02    0.3456003   -3.0210906
## 2.5%  -3.308455e-01 3.422918e-01 -1.333156e-01   -0.1028007   -3.7540230
## 97.5% -2.088314e-01 4.883771e-01  1.861322e-03    0.8536860   -2.3883861
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0000000    1.0000000
## neff   7.700800e+04 7.428100e+04  8.969000e+04 6327.0000000 6386.0000000
##              beta2         beta3        beta4          tau
## mean    -1.1246240    -2.8739614    0.8097136 2.471242e-02
## sd       0.4542341     0.4245038    0.2931053 1.039829e-02
## 50%     -1.1123303    -2.8642684    0.8029546 2.277195e-02
## 2.5%    -2.0577909    -3.7384114    0.2568668 1.043832e-02
## 97.5%   -0.2732805    -2.0710501    1.4070889 5.010682e-02
## Rhat     1.0000000     1.0000000    1.0000000 1.001000e+00
## neff  8720.0000000 10262.0000000 9513.0000000 4.069000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2010_mcmc)<-names

traplot(spat2010_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2010_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2010_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2010)
# geweke diagnostic plot
geweke.plot(spat2010_mcmc)

2011

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2011_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0        beta1
## mean  -5.115426e-01 3.947137e-01  1.017839e-02    0.6259115   -3.8759380
## sd     3.259716e-02 3.719042e-02  3.354548e-02    0.2734991    0.4867279
## 50%   -5.115456e-01 3.946416e-01  1.032181e-02    0.6148171   -3.8533482
## 2.5%  -5.757525e-01 3.221207e-01 -5.622133e-02    0.1187449   -4.8835052
## 97.5% -4.480944e-01 4.679606e-01  7.559858e-02    1.1936137   -2.9901410
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0010000    1.0010000
## neff   5.008300e+04 5.014900e+04  7.027200e+04 5194.0000000 3460.0000000
##              beta2        beta3         beta4          tau
## mean    -1.5047296   -2.8245638    0.55027834 1.332709e-02
## sd       0.5562617    0.5387546    0.30566888 5.242902e-03
## 50%     -1.4833739   -2.8065266    0.54639967 1.239481e-02
## 2.5%    -2.6573679   -3.9321077   -0.04239367 5.905413e-03
## 97.5%   -0.4768706   -1.8247387    1.16050982 2.607055e-02
## Rhat     1.0000000    1.0010000    1.00000000 1.001000e+00
## neff  5358.0000000 5939.0000000 7085.00000000 3.195000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2011_mcmc)<-names

traplot(spat2011_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2011_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2011_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2011)
# geweke diagnostic plot
geweke.plot(spat2011_mcmc)

2012

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2012_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0        beta1
## mean  -4.529358e-01 3.613814e-01 -1.427828e-01    0.3235362   -4.3019369
## sd     3.315932e-02 3.837352e-02  3.524531e-02    0.2477249    0.5023942
## 50%   -4.528027e-01 3.613172e-01 -1.424129e-01    0.3171327   -4.2796997
## 2.5%  -5.175211e-01 2.862645e-01 -2.128392e-01   -0.1455169   -5.3480831
## 97.5% -3.884512e-01 4.365270e-01 -7.436165e-02    0.8261779   -3.3845394
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0000000    1.0000000
## neff   7.155300e+04 6.532000e+04  7.046700e+04 6941.0000000 3991.0000000
##              beta2        beta3        beta4          tau
## mean    -1.1957101   -2.5885486    1.1076990 1.872758e-02
## sd       0.4566911    0.4894602    0.3027597 8.473163e-03
## 50%     -1.1751568   -2.5758930    1.0943629 1.706109e-02
## 2.5%    -2.1487102   -3.5786168    0.5537249 7.585679e-03
## 97.5%   -0.3626883   -1.6656963    1.7368762 3.972106e-02
## Rhat     1.0000000    1.0000000    1.0000000 1.001000e+00
## neff  7017.0000000 7902.0000000 4659.0000000 2.719000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2012_mcmc)<-names

traplot(spat2012_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2012_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2012_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2012)
# geweke diagnostic plot
geweke.plot(spat2012_mcmc)

2013

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2013_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2         beta0        beta1
## mean  -2.880320e-01 3.516381e-01  3.099119e-02    0.06780459   -3.7645378
## sd     3.572129e-02 4.067839e-02  3.606005e-02    0.23366313    0.4793439
## 50%   -2.878515e-01 3.515213e-01  3.115950e-02    0.06426269   -3.7370949
## 2.5%  -3.583738e-01 2.721086e-01 -3.991157e-02   -0.38308766   -4.7856828
## 97.5% -2.184848e-01 4.315953e-01  1.015976e-01    0.53776306   -2.9001360
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.00000000    1.0010000
## neff   5.702700e+04 7.585900e+04  8.889300e+04 7970.00000000 3213.0000000
##              beta2        beta3        beta4          tau
## mean    -1.3069987   -2.2413453    1.0384261 2.137149e-02
## sd       0.4068388    0.4263195    0.2946821 9.035961e-03
## 50%     -1.2893432   -2.2296287    1.0244946 1.966941e-02
## 2.5%    -2.1544098   -3.1104983    0.5006407 8.864063e-03
## 97.5%   -0.5595999   -1.4352679    1.6559678 4.372764e-02
## Rhat     1.0000000    1.0000000    1.0010000 1.000000e+00
## neff  6639.0000000 8446.0000000 5438.0000000 3.588000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2013_mcmc)<-names

traplot(spat2013_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2013_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2013_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2013)
# geweke diagnostic plot
geweke.plot(spat2013_mcmc)

2014

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2014_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0       beta1
## mean  -3.544902e-01 4.853430e-01 -1.792666e-02   -0.1214181   -3.505455
## sd     3.419473e-02 4.185505e-02  3.837588e-02    0.2169342    0.363806
## 50%   -3.543789e-01 4.851748e-01 -1.775988e-02   -0.1227713   -3.489988
## 2.5%  -4.219550e-01 4.036240e-01 -9.390238e-02   -0.5448233   -4.258745
## 97.5% -2.876428e-01 5.679133e-01  5.665106e-02    0.3085152   -2.839877
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0000000    1.000000
## neff   7.458900e+04 7.088100e+04  8.323900e+04 8776.0000000 6082.000000
##              beta2        beta3        beta4          tau
## mean    -1.0548817   -2.6398276 5.312559e-01 2.112099e-02
## sd       0.3528725    0.4350792 2.487837e-01 8.495508e-03
## 50%     -1.0458906   -2.6275529 5.279203e-01 1.953588e-02
## 2.5%    -1.7771563   -3.5221232 5.354584e-02 9.388922e-03
## 97.5%   -0.3882572   -1.8208888 1.029274e+00 4.207994e-02
## Rhat     1.0000000    1.0000000 1.000000e+00 1.000000e+00
## neff  9728.0000000 9731.0000000 1.092700e+04 3.888000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2014_mcmc)<-names

traplot(spat2014_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2014_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2014_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2014)
# geweke diagnostic plot
geweke.plot(spat2014_mcmc)

2015

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2015_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1        alpha2        beta0        beta1
## mean  -5.449302e-01 5.219243e-01  4.950079e-02   -0.2466172   -4.6542141
## sd     2.933774e-02 3.576816e-02  3.264866e-02    0.2427111    0.5135504
## 50%   -5.449103e-01 5.218913e-01  4.959148e-02   -0.2459597   -4.6277604
## 2.5%  -6.029884e-01 4.521834e-01 -1.450314e-02   -0.7273131   -5.7333002
## 97.5% -4.876385e-01 5.920273e-01  1.135494e-01    0.2278210   -3.7243347
## Rhat   1.000000e+00 1.000000e+00  1.000000e+00    1.0000000    1.0000000
## neff   6.225100e+04 6.031500e+04  7.946700e+04 6356.0000000 3286.0000000
##               beta2        beta3        beta4          tau
## mean    -0.86632099   -2.7304118    1.1801569 2.597163e-02
## sd       0.41775872    0.4661905    0.2495907 1.410792e-02
## 50%     -0.85483705   -2.7171698    1.1707300 2.292749e-02
## 2.5%    -1.72169253   -3.6734282    0.7166818 1.000382e-02
## 97.5%   -0.08041326   -1.8531008    1.6962878 5.965492e-02
## Rhat     1.00000000    1.0010000    1.0000000 1.002000e+00
## neff  9342.00000000 7315.0000000 6447.0000000 2.698000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2015_mcmc)<-names

traplot(spat2015_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2015_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2015_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2015)
# geweke diagnostic plot
geweke.plot(spat2015_mcmc)

2016

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2016_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1       alpha2        beta0        beta1
## mean  -5.137297e-01 3.973741e-01 1.014621e-01   -0.1920369   -4.2337187
## sd     2.605235e-02 3.074598e-02 2.763708e-02    0.2468447    0.5304146
## 50%   -5.136841e-01 3.973588e-01 1.014898e-01   -0.1919950   -4.2164000
## 2.5%  -5.649841e-01 3.369920e-01 4.737004e-02   -0.6787896   -5.3253628
## 97.5% -4.623566e-01 4.579276e-01 1.556955e-01    0.2924882   -3.2458760
## Rhat   1.000000e+00 1.000000e+00 1.000000e+00    1.0010000    1.0000000
## neff   5.586400e+04 6.802700e+04 8.765700e+04 5679.0000000 2566.0000000
##              beta2       beta3        beta4          tau
## mean    -0.8329716   -2.936810    0.9578128 1.365339e-02
## sd       0.3745536    0.474754    0.3214812 5.203767e-03
## 50%     -0.8197351   -2.924222    0.9468532 1.272538e-02
## 2.5%    -1.6059061   -3.912251    0.3591828 6.352925e-03
## 97.5%   -0.1340858   -2.040824    1.6132369 2.619757e-02
## Rhat     1.0000000    1.000000    1.0010000 1.001000e+00
## neff  6387.0000000 5663.000000 4519.0000000 3.212000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2016_mcmc)<-names

traplot(spat2016_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2016_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2016_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2016)
# geweke diagnostic plot
geweke.plot(spat2016_mcmc)

2017

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2017_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1       alpha2        beta0        beta1
## mean  -7.816209e-01 2.101334e-01 1.125410e-01    0.3135378   -3.9410632
## sd     2.535378e-02 3.159980e-02 3.030092e-02    0.2479279    0.4444266
## 50%   -7.815741e-01 2.101739e-01 1.126008e-01    0.3055055   -3.9274890
## 2.5%  -8.315687e-01 1.483361e-01 5.319746e-02   -0.1551698   -4.8387942
## 97.5% -7.319338e-01 2.720919e-01 1.717218e-01    0.8165730   -3.1026126
## Rhat   1.000000e+00 1.000000e+00 1.000000e+00    1.0000000    1.0010000
## neff   6.336400e+04 4.900400e+04 7.364900e+04 5461.0000000 3153.0000000
##              beta2        beta3        beta4          tau
## mean    -1.3314129   -2.7949886    1.1879937 1.806395e-02
## sd       0.4008919    0.5120651    0.2981219 6.803083e-03
## 50%     -1.3170763   -2.7886921    1.1767081 1.688849e-02
## 2.5%    -2.1598766   -3.8191399    0.6346398 8.373954e-03
## 97.5%   -0.5877511   -1.8085823    1.8103914 3.453322e-02
## Rhat     1.0010000    1.0010000    1.0010000 1.000000e+00
## neff  6466.0000000 6201.0000000 6320.0000000 3.498000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2017_mcmc)<-names

traplot(spat2017_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2017_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2017_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2017)
# geweke diagnostic plot
geweke.plot(spat2017_mcmc)

2018

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2018_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0        alpha1       alpha2         beta0        beta1
## mean  -8.435900e-01  4.267414e-02 1.503119e-01   -0.01982776   -3.0366039
## sd     2.532053e-02  3.183177e-02 3.107529e-02    0.20476354    0.3354727
## 50%   -8.435150e-01  4.262304e-02 1.503895e-01   -0.02156223   -3.0134672
## 2.5%  -8.933605e-01 -1.950290e-02 8.924486e-02   -0.41383067   -3.7701139
## 97.5% -7.936876e-01  1.054699e-01 2.112423e-01    0.38999423   -2.4461014
## Rhat   1.000000e+00  1.000000e+00 1.000000e+00    1.00100000    1.0020000
## neff   4.581000e+04  3.338100e+04 4.441500e+04 7854.00000000 4481.0000000
##               beta2         beta3        beta4          tau
## mean     -0.1555503    -2.4584808 8.265343e-01 1.712779e-02
## sd        0.3857365     0.4467143 2.206106e-01 6.156839e-03
## 50%      -0.1489599    -2.4490749 8.206102e-01 1.608030e-02
## 2.5%     -0.9331055    -3.3660691 4.087327e-01 8.319794e-03
## 97.5%     0.5831979    -1.6109385 1.275477e+00 3.196519e-02
## Rhat      1.0000000     1.0010000 1.000000e+00 1.000000e+00
## neff  13597.0000000 10010.0000000 1.095900e+04 4.321000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2018_mcmc)<-names

traplot(spat2018_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2018_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2018_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2018)
# geweke diagnostic plot
geweke.plot(spat2018_mcmc)

2019

All parameters have R-hat values below 1.05 and thus the chains have mixed well.

post_summ(spat2019_mcmc, c("alpha","beta","tau"),Rhat=TRUE,neff = TRUE)
##              alpha0       alpha1       alpha2        beta0       beta1
## mean  -6.901123e-01 1.166232e-01 8.340946e-02   -0.1485436   -3.540421
## sd     2.574681e-02 3.347260e-02 3.185985e-02    0.2229607    0.410955
## 50%   -6.900961e-01 1.165479e-01 8.335690e-02   -0.1502330   -3.515038
## 2.5%  -7.407811e-01 5.121735e-02 2.112964e-02   -0.5839889   -4.425369
## 97.5% -6.395300e-01 1.821506e-01 1.458187e-01    0.2955889   -2.806689
## Rhat   1.000000e+00 1.000000e+00 1.000000e+00    1.0000000    1.000000
## neff   6.065700e+04 5.237700e+04 6.749000e+04 7694.0000000 4728.000000
##              beta2        beta3        beta4          tau
## mean    -0.9788179   -2.4747363    1.6088955 1.696253e-02
## sd       0.4647674    0.4738498    0.3117966 5.895056e-03
## 50%     -0.9639137   -2.4633701    1.5951942 1.605559e-02
## 2.5%    -1.9239973   -3.4343261    1.0363981 8.173084e-03
## 97.5%   -0.1096624   -1.5746646    2.2599055 3.106630e-02
## Rhat     1.0000000    1.0000000    1.0000000 1.001000e+00
## neff  8251.0000000 9745.0000000 5587.0000000 4.668000e+03

All trace plots are indicative of convergence.

names<-c("alpha[0]","alpha[1]","alpha[2]","beta[0]","beta[1]","beta[2]","beta[3]","beta[4]","tau")
varnames(spat2019_mcmc)<-names

traplot(spat2019_mcmc,"alpha",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2019_mcmc,"beta",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

traplot(spat2019_mcmc,"tau",style="plain",col=c("deepskyblue2","firebrick1","goldenrod1"),greek=T,cex.main=1.5)

It is evident that only a few Z-scores for each parameter are larger than the absolute value of 1.96 and as such, there is evidence for convergence.

# geweke z-scores
# geweke.diag(occ2019)
# geweke diagnostic plot
geweke.plot(spat2019_mcmc)