MCMCChains.jl icon indicating copy to clipboard operation
MCMCChains.jl copied to clipboard

There is no easy way to get a subchain with a given set of parameters

Open dlakelan opened this issue 1 year ago • 3 comments

At the moment I'm using something like this:

function subchain(ch,secname,vars)
    Chains(set_sections(ch,Dict(secname => vars)),secname)
end

This gets me a Chains object that I can pass to plotting and summarizing type functions without having to look at all the parameters in my models. Often I might have hundreds of nuisance parameters but might only want to summarize 5-10 important key parameters in the model.

Is there an intended way to be able to do this that I'm missing in the docs? or should we add something? It feels to me like you should probably be able to just do:

Chains(basechain,[:a,:b,:c,:d]) and get a chain with just those parameters from the basechain or something similar.

Also see discussion here: https://discourse.julialang.org/t/working-with-mcmcchains/99014

dlakelan avatar May 18 '23 16:05 dlakelan

This is the default behavior when indexing into a chain, see this code.

You should very easily be able to do

chain[["parameter_1", "parameter_2"]]

cpfiffer avatar May 18 '23 17:05 cpfiffer

Thanks Cameron. After reading the docs multiple times this never really came through as an option. How can we make this more obvious and discoverable? Perhaps especially putting it in some very obvious and early examples?

dlakelan avatar May 19 '23 02:05 dlakelan

I'd love a PR on the README! Maybe towards the top of the document?

On Thu, May 18, 2023, at 7:58 PM, Daniel Lakeland wrote:

Thanks Cameron. After reading the docs multiple times this never really came through as an option. How can we make this more obvious and discoverable? Perhaps especially putting it in some very obvious and early examples?

— Reply to this email directly, view it on GitHub https://github.com/TuringLang/MCMCChains.jl/issues/420#issuecomment-1553932386, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADHITSWLHUKRO76VCENED3XG3OVXANCNFSM6AAAAAAYGVOZI4. You are receiving this because you commented.Message ID: @.***>

cpfiffer avatar May 24 '23 22:05 cpfiffer