'ESS' in Turing.jl


I’m new to MCMC, and I’m using the Turing package to implement NUTS.

par_NUTS = sample(model, NUTS(1000, 0.65), MCMCThreads(), 1000, 3)

I’m trying to figure out what the Effective Sample Size (ESS) values returned in the summary statistics mean.

I’ve run 3 separate chains. When I check the ESS values for the individual chains and the combined chains they turn out to be identical:

# Appended chains
summarystats(par_NUTS; append_chains=true)
# Individual chains
summarystats(par_NUTS; append_chains=false)[1]
summarystats(par_NUTS; append_chains=false)[2]
summarystats(par_NUTS; append_chains=false)[3]

What does this mean? Is it the relative ESS values that are returned?

1 Like

Could you post the full output or even the actual chains in a JLD2 file?

Hmmm. In most cases, I don’t think ESS should be equal for each chain and the combined chain. This might be a bug. Can someone verify?

I think par_NUTS[:,:,i] gives the correct ESS for the ith chain.