if (requireNamespace("neojags", quietly = TRUE)){
::load.neojagsmodule()
neojags
} #> module neojags loaded
if (requireNamespace("neojags", quietly = TRUE)){
library(rjags)
} #> Loading required package: coda
#> Linked to JAGS 4.3.1
#> Loaded modules: basemod,bugs,neojags
<- "
mod model {
# Likelihood
for (i in 1:100) {
x[i] ~ djskew.ep(2,1,0.8,1)
}
}
"
<- jags.model(textConnection(mod), n.chains=1, inits = list(".RNG.name" = "base::Wichmann-Hill",".RNG.seed" = 314159))
modelv #> Compiling model graph
#> Resolving undeclared variables
#> Allocating nodes
#> Graph information:
#> Observed stochastic nodes: 0
#> Unobserved stochastic nodes: 100
#> Total graph size: 103
#>
#> Initializing model
<- coda.samples(modelv, variable.names = c("x"), n.iter = 1)
samplesv <- (as.data.frame(as.matrix(samplesv)))
gen_datav <- as.numeric(gen_datav[1,]) x
<- "
model_string model {
# Likelihood
for (i in 1:100) {
x[i] ~ djskew.ep(mu, tau,nu1, nu2)
}
# Prior distributions
mu ~ dnorm(2,10000)
tau ~ dgamma(10,10)
nu1 ~ dgamma(10,10)
nu2 ~ dgamma(10,10)
}
"
<- jags.model(textConnection(model_string), data = list(x=c(x)),n.chains=2)
model #> Compiling model graph
#> Resolving undeclared variables
#> Allocating nodes
#> Graph information:
#> Observed stochastic nodes: 100
#> Unobserved stochastic nodes: 4
#> Total graph size: 107
#>
#> Initializing model
<- coda.samples(model, variable.names = c("mu", "tau", "nu1", "nu2"), n.iter = 2000) samples
summary(samples)
#>
#> Iterations = 1001:3000
#> Thinning interval = 1
#> Number of chains = 2
#> Sample size per chain = 2000
#>
#> 1. Empirical mean and standard deviation for each variable,
#> plus standard error of the mean:
#>
#> Mean SD Naive SE Time-series SE
#> mu 1.9984 0.01010 0.0001597 0.0001982
#> nu1 0.7434 0.06452 0.0010201 0.0023966
#> nu2 1.1576 0.15089 0.0023858 0.0051121
#> tau 0.9699 0.27345 0.0043236 0.0108397
#>
#> 2. Quantiles for each variable:
#>
#> 2.5% 25% 50% 75% 97.5%
#> mu 1.9786 1.9916 1.9985 2.0051 2.0183
#> nu1 0.6290 0.6978 0.7411 0.7846 0.8724
#> nu2 0.9016 1.0513 1.1450 1.2509 1.4931
#> tau 0.5521 0.7747 0.9319 1.1247 1.5952
traceplot(samples)
<- "
model_string1 model {
d <- djskew.ep(0.5,2,2,2,2)
p <- pjskew.ep(0.5,2,2,2,2)
q <- qjskew.ep(0.5,2,2,2,2)
}
"
<- jags.model(textConnection(model_string1), n.chains=2)
model1 #> Compiling model graph
#> Resolving undeclared variables
#> Allocating nodes
#> Graph information:
#> Observed stochastic nodes: 0
#> Unobserved stochastic nodes: 0
#> Total graph size: 5
#>
#> Initializing model
<- coda.samples(model1, variable.names = c("d","p","q"), n.iter = 2) samples1
summary(samples1)
#>
#> Iterations = 1:2
#> Thinning interval = 1
#> Number of chains = 2
#> Sample size per chain = 2
#>
#> 1. Empirical mean and standard deviation for each variable,
#> plus standard error of the mean:
#>
#> Mean SD Naive SE Time-series SE
#> d 0.008864 0 0 0
#> p 0.001350 0 0 0
#> q 2.000000 0 0 0
#>
#> 2. Quantiles for each variable:
#>
#> 2.5% 25% 50% 75% 97.5%
#> d 0.008864 0.008864 0.008864 0.008864 0.008864
#> p 0.001350 0.001350 0.001350 0.001350 0.001350
#> q 2.000000 2.000000 2.000000 2.000000 2.000000