require(readxl)
require(tidyverse)
require(rjags)
require(coda)
require(MCMCpack)
require(bayesplot)
Em construção: problema com convergencia
Planilha de dados
dados=read_excel("dados_renato.xlsx",sheet=1)
names(dados)=c("Ano","UF","Cod.UF","tx.latrc","tx.pres","gini.ibge","perc.jov.1524","perc.hom","pbf","densidade.urbana1","densidade.urbana2","taxa.casamentos","Taxa.desligamentos","raz.2020","raz.1040")
l1<-1.16673
l2 <-1.931932
dados = dados %>%
mutate(ytrans = ((tx.latrc + l2)^l1-1)/l1,
taxa.casamentos=taxa.casamentos*100000, #por 100 mil habitantes!
Taxa.desligamentos=Taxa.desligamentos*100) #taxa por 100 habitantes!
head(dados)
## # A tibble: 6 x 16
## Ano UF Cod.UF tx.latrc tx.pres gini.ibge perc.jov.1524 perc.hom pbf
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2005 Rond~ 1 1.30 298. 0.544 19.7 49.6 62.7
## 2 2006 Rond~ 1 1.60 272. 0.537 20.2 50.7 84.6
## 3 2007 Rond~ 1 1.51 354. 0.472 19.7 49.7 110.
## 4 2008 Rond~ 1 1.14 400. 0.478 19.1 50.2 119.
## 5 2009 Rond~ 1 0.997 465. 0.49 19.6 49.9 139.
## 6 2010 Rond~ 1 1.67 476. NA NA NA 145.
## # ... with 7 more variables: densidade.urbana1 <dbl>, densidade.urbana2 <dbl>,
## # taxa.casamentos <dbl>, Taxa.desligamentos <dbl>, raz.2020 <dbl>,
## # raz.1040 <dbl>, ytrans <dbl>
cat("model {
for( i in 1:n)
{
eta[i] <- b[1]*tx.pres[i]+b[2]*gini.ibge[i]+b[3]*perc.jov.1524[i]+b[4]*perc.hom[i]+b[5]*pbf[i]+b[6]*densidade.urbana1[i]+b[7]*Taxa.desligamentos[i]+b[8]*Ano[i]+b[9]*taxa.casamentos[i]+u[UFnum[i],1]*Ano[i]+u[UFnum[i],2]
tx.latrc[i] ~ dnorm( eta[i], tau)
}
#MVN Prior for random intercepts and slopes
for (j in 1:nUF)
{
u[j, 1:2] ~ dmnorm(meanu[], prec.Sigma[,])
}
meanu[1]~dnorm(0, .001)
meanu[2]~dnorm(0, .001)
prec.Sigma[1:2, 1:2] ~ dwish(Omega[,], 2)
Sigma[1:2, 1:2]<-inverse(prec.Sigma[,])
rho12<-Sigma[1,2]/ sqrt(Sigma[1,1]* Sigma[2,2])
#Valores iniciais para a matrix de covariancias
for (j in 1:2){ for (k in 1:2){ Omega[j,k] <-equals(j,k)*.1 } }
#Priori multivariada normal para os coeficientes
b[1:9]~dmnorm(meanb[], prec.beta[,])
for(j in 1:9){
meanb[j]~dnorm(0, .0001)
}
#A Wishart é generalização da Gamma para o caso multivariado
prec.beta[1:9,1:9]~dwish(Obeta[,], 9)
for(j in 1:9){ for(k in 1:9){ Obeta[j,k] <- equals(j,k)*.1 } }
#Priori Gamma para a precisão da normal (dos dados)
tau ~ dgamma(0.001,0.001)
}",file="modelo1_lab.txt")
dados1<-dados[complete.cases(dados),]
nUF<-table(dados1$Cod.UF)
head(nUF) #Number of UF
##
## 1 2 3 4 5 6
## 8 8 8 7 8 7
dados1$UFnum<-rep(1:length(unique(dados1$Cod.UF)), nUF)
dados2<-list(tx.latrc=dados1$tx.latrc,Ano=dados1$Ano-2000, tx.pres=dados1$tx.pres,gini.ibge=dados1$gini.ibge,perc.jov.1524=dados1$perc.jov.1524,perc.hom=dados1$perc.hom,pbf=dados1$pbf,densidade.urbana1=dados1$densidade.urbana1,Taxa.desligamentos=dados1$Taxa.desligamentos,taxa.casamentos=dados1$taxa.casamentos,n=length(dados1$tx.latrc), UFnum=dados1$UFnum,nUF=length(unique(dados1$Cod.UF)))
lapply(dados2 , summary)
## $tx.latrc
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.06595 0.67274 0.92725 1.06438 1.30328 4.78987
##
## $Ano
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.000 7.000 9.000 9.631 12.000 14.000
##
## $tx.pres
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 51.71 156.34 224.67 247.80 328.76 634.53
##
## $gini.ibge
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4290 0.4800 0.5040 0.5074 0.5280 0.6150
##
## $perc.jov.1524
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 9.711 16.821 18.300 18.079 19.400 23.500
##
## $perc.hom
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 46.80 48.40 48.90 49.02 49.70 52.40
##
## $pbf
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 22.04 72.46 135.08 156.68 223.49 423.79
##
## $densidade.urbana1
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 34.29 45.03 63.84 73.63 99.63 160.29
##
## $Taxa.desligamentos
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.196 3.666 5.443 6.899 10.103 17.911
##
## $taxa.casamentos
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 210.8 396.2 485.9 485.8 559.1 801.1
##
## $n
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 225 225 225 225 225 225
##
## $UFnum
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 8.00 15.00 14.41 21.00 27.00
##
## $nUF
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 27 27 27 27 27 27
#Set some initial values
init.rng1<-list(".RNG.seed" = 1234, ".RNG.name" = "base::Mersenne-Twister", tau=1)
init.rng2<-list(".RNG.seed" = 5678, ".RNG.name" = "base::Mersenne-Twister", tau=5)
#initialize the model
mod1<-jags.model(file = "modelo1_lab.txt", data=dados2, n.chains=2,inits =list(init.rng1, init.rng2) )
## Compiling model graph
## Resolving undeclared variables
## Allocating nodes
## Graph information:
## Observed stochastic nodes: 225
## Unobserved stochastic nodes: 42
## Total graph size: 4586
##
## Initializing model
#burn in
update(mod1, 5000)
#collect samples of the parameters
samps<-coda.samples(mod1, variable.names=c( "u","b", "tau", "Sigma", "rho12"), n.iter=100000, n.thin=5)
#effective sample size for each parameter
effectiveSize(samps)
## Sigma[1,1] Sigma[2,1] Sigma[1,2] Sigma[2,2] b[1] b[2]
## 60060.03933 50398.78096 50398.78096 31407.89343 11625.82401 410.64111
## b[3] b[4] b[5] b[6] b[7] b[8]
## 23673.32431 99.65523 12821.49782 4432.76172 7793.60050 34.01867
## b[9] rho12 tau u[1,1] u[2,1] u[3,1]
## 17738.80176 72793.52566 51507.01575 34.19321 35.26782 33.37459
## u[4,1] u[5,1] u[6,1] u[7,1] u[8,1] u[9,1]
## 33.64053 32.52244 31.18955 34.01279 34.03364 35.39632
## u[10,1] u[11,1] u[12,1] u[13,1] u[14,1] u[15,1]
## 32.37113 34.12017 33.20623 31.95757 33.54143 36.80153
## u[16,1] u[17,1] u[18,1] u[19,1] u[20,1] u[21,1]
## 34.40408 33.73431 34.47381 32.51550 36.28141 33.80605
## u[22,1] u[23,1] u[24,1] u[25,1] u[26,1] u[27,1]
## 33.77891 33.41121 32.21172 33.93159 32.49731 32.33780
## u[1,2] u[2,2] u[3,2] u[4,2] u[5,2] u[6,2]
## 52.53121 52.26985 50.01875 55.01452 48.00119 50.45733
## u[7,2] u[8,2] u[9,2] u[10,2] u[11,2] u[12,2]
## 52.41599 48.13428 48.10095 54.25454 55.05785 52.74327
## u[13,2] u[14,2] u[15,2] u[16,2] u[17,2] u[18,2]
## 58.31251 55.69996 57.53209 51.09583 49.07004 49.57876
## u[19,2] u[20,2] u[21,2] u[22,2] u[23,2] u[24,2]
## 46.68085 47.65631 46.87304 50.47525 46.37216 49.07358
## u[25,2] u[26,2] u[27,2]
## 50.57598 48.35832 47.78949
#Numerical summary of each parameter:
summary(samps, quantiles = c(.025, .05, .95, .975))
##
## Iterations = 5001:105000
## Thinning interval = 1
## Number of chains = 2
## Sample size per chain = 1e+05
##
## 1. Empirical mean and standard deviation for each variable,
## plus standard error of the mean:
##
## Mean SD Naive SE Time-series SE
## Sigma[1,1] 0.0131751 0.0044173 9.877e-06 1.804e-05
## Sigma[2,1] -0.0990381 0.0407061 9.102e-05 1.814e-04
## Sigma[1,2] -0.0990381 0.0407061 9.102e-05 1.814e-04
## Sigma[2,2] 1.3429230 0.4747631 1.062e-03 2.679e-03
## b[1] 0.0005835 0.0008397 1.878e-06 7.794e-06
## b[2] -2.9586538 1.8140545 4.056e-03 8.886e-02
## b[3] -0.0135856 0.0277427 6.203e-05 1.805e-04
## b[4] 0.0935164 0.0660053 1.476e-04 6.601e-03
## b[5] -0.0012602 0.0020310 4.541e-06 1.798e-05
## b[6] 0.0018992 0.0048291 1.080e-05 7.253e-05
## b[7] -0.0530504 0.0482953 1.080e-04 5.479e-04
## b[8] -0.2682581 0.7176049 1.605e-03 1.162e-01
## b[9] 0.0003209 0.0006678 1.493e-06 5.013e-06
## rho12 -0.7335677 0.1014565 2.269e-04 3.761e-04
## tau 6.3785553 0.7039709 1.574e-03 3.112e-03
## u[1,1] 0.1767952 0.7132692 1.595e-03 1.145e-01
## u[2,1] 0.4098966 0.7166177 1.602e-03 1.165e-01
## u[3,1] 0.3492482 0.7159102 1.601e-03 1.194e-01
## u[4,1] 0.3390226 0.7214067 1.613e-03 1.182e-01
## u[5,1] 0.2275859 0.7140559 1.597e-03 1.211e-01
## u[6,1] 0.3144307 0.7154721 1.600e-03 1.214e-01
## u[7,1] 0.3076919 0.7208290 1.612e-03 1.202e-01
## u[8,1] 0.3316518 0.7192204 1.608e-03 1.161e-01
## u[9,1] 0.3668030 0.7183958 1.606e-03 1.160e-01
## u[10,1] 0.2532712 0.7171159 1.604e-03 1.218e-01
## u[11,1] 0.2938173 0.7204021 1.611e-03 1.183e-01
## u[12,1] 0.2567256 0.7206316 1.611e-03 1.219e-01
## u[13,1] 0.0452871 0.7191123 1.608e-03 1.214e-01
## u[14,1] 0.4262527 0.7203427 1.611e-03 1.185e-01
## u[15,1] 0.4142366 0.7175641 1.605e-03 1.149e-01
## u[16,1] 0.3506178 0.7210824 1.612e-03 1.171e-01
## u[17,1] 0.2574542 0.7164915 1.602e-03 1.186e-01
## u[18,1] 0.3593535 0.7175202 1.604e-03 1.146e-01
## u[19,1] 0.2400627 0.7162367 1.602e-03 1.203e-01
## u[20,1] 0.3014717 0.7161569 1.601e-03 1.139e-01
## u[21,1] 0.2751692 0.7162111 1.601e-03 1.174e-01
## u[22,1] 0.3303303 0.7153043 1.599e-03 1.151e-01
## u[23,1] 0.2894581 0.7166352 1.602e-03 1.174e-01
## u[24,1] 0.3467643 0.7165647 1.602e-03 1.188e-01
## u[25,1] 0.2955389 0.7160196 1.601e-03 1.181e-01
## u[26,1] 0.3750559 0.7155612 1.600e-03 1.179e-01
## u[27,1] 0.1953586 0.7139816 1.597e-03 1.151e-01
## u[1,2] -1.0612331 3.5124052 7.854e-03 4.824e-01
## u[2,2] -3.4312486 3.5633245 7.968e-03 4.907e-01
## u[3,2] -2.7415641 3.5432958 7.923e-03 4.996e-01
## u[4,2] -3.2139587 3.6892142 8.249e-03 4.954e-01
## u[5,2] -0.2355212 3.5114290 7.852e-03 5.053e-01
## u[6,2] -1.7490985 3.5127352 7.855e-03 4.930e-01
## u[7,2] -2.2526716 3.6431645 8.146e-03 5.024e-01
## u[8,2] -2.2479455 3.5675986 7.977e-03 5.122e-01
## u[9,2] -3.0344206 3.5504230 7.939e-03 5.106e-01
## u[10,2] -1.4578350 3.5490599 7.936e-03 4.814e-01
## u[11,2] -2.1279031 3.6734031 8.214e-03 4.932e-01
## u[12,2] -1.8161046 3.5935473 8.035e-03 4.936e-01
## u[13,2] 0.8985677 3.5876285 8.022e-03 4.679e-01
## u[14,2] -2.7458182 3.6228836 8.101e-03 4.834e-01
## u[15,2] -2.9376063 3.5562892 7.952e-03 4.675e-01
## u[16,2] -2.4683810 3.6335063 8.125e-03 5.066e-01
## u[17,2] -2.0715560 3.5237555 7.879e-03 5.019e-01
## u[18,2] -2.8554186 3.5580922 7.956e-03 5.033e-01
## u[19,2] -1.1482265 3.4069035 7.618e-03 4.968e-01
## u[20,2] -2.2862453 3.4971791 7.820e-03 5.047e-01
## u[21,2] -2.0379131 3.5199254 7.871e-03 5.123e-01
## u[22,2] -2.4367671 3.5253595 7.883e-03 4.941e-01
## u[23,2] -1.7732653 3.4968612 7.819e-03 5.116e-01
## u[24,2] -2.6133254 3.5493172 7.937e-03 5.044e-01
## u[25,2] -1.4549802 3.6146560 8.083e-03 5.065e-01
## u[26,2] -2.4081407 3.4996987 7.826e-03 5.011e-01
## u[27,2] 0.1839307 3.4157130 7.638e-03 4.925e-01
##
## 2. Quantiles for each variable:
##
## 2.5% 5% 95% 97.5%
## Sigma[1,1] 6.902e-03 0.0075609 0.021411 0.023930
## Sigma[2,1] -1.975e-01 -0.1746043 -0.046473 -0.039924
## Sigma[1,2] -1.975e-01 -0.1746043 -0.046473 -0.039924
## Sigma[2,2] 6.646e-01 0.7359750 2.224191 2.495970
## b[1] -1.066e-03 -0.0007974 0.001962 0.002222
## b[2] -6.453e+00 -5.9187199 0.077959 0.698624
## b[3] -6.813e-02 -0.0592878 0.031919 0.040828
## b[4] -3.778e-02 -0.0159789 0.198787 0.220002
## b[5] -5.269e-03 -0.0046113 0.002064 0.002698
## b[6] -7.829e-03 -0.0061351 0.009670 0.011126
## b[7] -1.477e-01 -0.1324413 0.026477 0.041735
## b[8] -1.327e+00 -1.2149939 1.158751 1.377456
## b[9] -9.863e-04 -0.0007776 0.001420 0.001631
## rho12 -8.847e-01 -0.8685809 -0.544319 -0.492599
## tau 5.076e+00 5.2661417 7.576784 7.834061
## u[1,1] -1.457e+00 -1.2319746 1.121948 1.230695
## u[2,1] -1.228e+00 -1.0161688 1.360617 1.471061
## u[3,1] -1.285e+00 -1.0755821 1.295616 1.407346
## u[4,1] -1.319e+00 -1.1005661 1.291663 1.402093
## u[5,1] -1.406e+00 -1.1920288 1.173190 1.283529
## u[6,1] -1.323e+00 -1.1089594 1.259732 1.372227
## u[7,1] -1.347e+00 -1.1324977 1.259967 1.369962
## u[8,1] -1.314e+00 -1.1029122 1.281773 1.394006
## u[9,1] -1.282e+00 -1.0654829 1.319727 1.427677
## u[10,1] -1.394e+00 -1.1732302 1.203084 1.312171
## u[11,1] -1.364e+00 -1.1446101 1.247166 1.356616
## u[12,1] -1.401e+00 -1.1819715 1.210163 1.319882
## u[13,1] -1.609e+00 -1.3864355 0.998420 1.106120
## u[14,1] -1.231e+00 -1.0140825 1.380866 1.489753
## u[15,1] -1.229e+00 -1.0147199 1.362467 1.475799
## u[16,1] -1.307e+00 -1.0916502 1.302121 1.413118
## u[17,1] -1.388e+00 -1.1656478 1.204790 1.314215
## u[18,1] -1.290e+00 -1.0661373 1.308226 1.418139
## u[19,1] -1.404e+00 -1.1820103 1.187517 1.296480
## u[20,1] -1.342e+00 -1.1169519 1.247341 1.357017
## u[21,1] -1.368e+00 -1.1456876 1.222569 1.331126
## u[22,1] -1.311e+00 -1.0848399 1.275810 1.384522
## u[23,1] -1.358e+00 -1.1324119 1.234824 1.345680
## u[24,1] -1.297e+00 -1.0785440 1.292563 1.403353
## u[25,1] -1.348e+00 -1.1250967 1.240837 1.351757
## u[26,1] -1.270e+00 -1.0460499 1.321235 1.431077
## u[27,1] -1.437e+00 -1.2173766 1.139019 1.250273
## u[1,2] -7.782e+00 -6.6284091 4.989643 6.211596
## u[2,2] -1.023e+01 -9.0317417 2.732629 3.937803
## u[3,2] -9.549e+00 -8.3404721 3.358385 4.530828
## u[4,2] -1.026e+01 -9.0454472 3.135060 4.402625
## u[5,2] -6.995e+00 -5.7868915 5.824094 7.030410
## u[6,2] -8.500e+00 -7.2918839 4.294099 5.484548
## u[7,2] -9.215e+00 -8.0251958 4.030086 5.263622
## u[8,2] -9.110e+00 -7.8925312 3.900965 5.103167
## u[9,2] -9.851e+00 -8.6378403 3.101585 4.349864
## u[10,2] -8.307e+00 -7.0601407 4.658784 5.898439
## u[11,2] -9.221e+00 -7.9214946 4.196840 5.491607
## u[12,2] -8.752e+00 -7.4717419 4.370511 5.648082
## u[13,2] -6.044e+00 -4.7530386 7.072301 8.352060
## u[14,2] -9.719e+00 -8.4689011 3.487261 4.771750
## u[15,2] -9.796e+00 -8.5542036 3.175363 4.424958
## u[16,2] -9.464e+00 -8.1967958 3.779300 5.046218
## u[17,2] -8.831e+00 -7.6272414 4.004332 5.222245
## u[18,2] -9.674e+00 -8.4684517 3.288630 4.496681
## u[19,2] -7.691e+00 -6.5202668 4.741497 5.907003
## u[20,2] -8.989e+00 -7.7829201 3.743758 4.934541
## u[21,2] -8.770e+00 -7.6057873 4.039051 5.256644
## u[22,2] -9.173e+00 -8.0174155 3.638764 4.830611
## u[23,2] -8.485e+00 -7.2931352 4.250986 5.445516
## u[24,2] -9.400e+00 -8.2047126 3.512052 4.744964
## u[25,2] -8.379e+00 -7.1621115 4.777746 6.004306
## u[26,2] -9.092e+00 -7.9302572 3.640119 4.841649
## u[27,2] -6.340e+00 -5.2002297 6.097174 7.306433
Segundo a literatura, o valor de R não pode ultrapassar 1.2.
#GBR diagnostic
gelman.diag(samps, multivariate = F)
## Potential scale reduction factors:
##
## Point est. Upper C.I.
## Sigma[1,1] 1.00 1.00
## Sigma[2,1] 1.00 1.00
## Sigma[1,2] 1.00 1.00
## Sigma[2,2] 1.00 1.00
## b[1] 1.00 1.00
## b[2] 1.03 1.15
## b[3] 1.01 1.03
## b[4] 1.17 1.58
## b[5] 1.00 1.01
## b[6] 1.01 1.03
## b[7] 1.00 1.02
## b[8] 2.34 5.99
## b[9] 1.00 1.01
## rho12 1.00 1.00
## tau 1.00 1.00
## u[1,1] 2.36 6.04
## u[2,1] 2.35 5.98
## u[3,1] 2.36 6.05
## u[4,1] 2.31 5.91
## u[5,1] 2.36 6.06
## u[6,1] 2.35 6.04
## u[7,1] 2.31 5.91
## u[8,1] 2.33 5.96
## u[9,1] 2.32 5.94
## u[10,1] 2.33 5.97
## u[11,1] 2.31 5.90
## u[12,1] 2.31 5.89
## u[13,1] 2.32 5.92
## u[14,1] 2.31 5.89
## u[15,1] 2.34 6.01
## u[16,1] 2.31 5.92
## u[17,1] 2.34 6.00
## u[18,1] 2.33 5.96
## u[19,1] 2.34 6.02
## u[20,1] 2.34 6.01
## u[21,1] 2.34 5.99
## u[22,1] 2.35 6.02
## u[23,1] 2.34 5.99
## u[24,1] 2.34 6.01
## u[25,1] 2.34 6.02
## u[26,1] 2.34 6.01
## u[27,1] 2.36 6.06
## u[1,2] 1.25 1.80
## u[2,2] 1.24 1.78
## u[3,2] 1.23 1.76
## u[4,2] 1.24 1.77
## u[5,2] 1.24 1.78
## u[6,2] 1.24 1.78
## u[7,2] 1.24 1.78
## u[8,2] 1.24 1.78
## u[9,2] 1.25 1.81
## u[10,2] 1.25 1.81
## u[11,2] 1.25 1.80
## u[12,2] 1.25 1.81
## u[13,2] 1.25 1.80
## u[14,2] 1.24 1.79
## u[15,2] 1.24 1.78
## u[16,2] 1.24 1.79
## u[17,2] 1.24 1.79
## u[18,2] 1.24 1.79
## u[19,2] 1.24 1.79
## u[20,2] 1.24 1.79
## u[21,2] 1.24 1.79
## u[22,2] 1.24 1.78
## u[23,2] 1.24 1.79
## u[24,2] 1.24 1.79
## u[25,2] 1.24 1.78
## u[26,2] 1.24 1.79
## u[27,2] 1.25 1.81
gelman.plot(samps)
mcmc_trace(samps)
mcmc_dens(samps)
plot(samps)
#DIC
dic.samples(mod1, n.iter = 1000,type = "pD")
## Mean deviance: 222.3
## penalty 56.93
## Penalized deviance: 279.2