I have a random variable over the interval (-\infty, 0]. I’m using an improper
HalfFlat prior and multiplying by -1 to get the variable I want. Is there a way to avoid having
_var_name in my model output, since I really only want
var_name = pm.Deterministic('var_name', -pm.HalfFlat('_var_name'))
I suppose I could write a custom random variable, or maybe use
pm.Potential, but I’m hoping for a lighter-weight option.
I don’t think there’s a way to do this (though I might be wrong!). I think your best bet is to filter out the variables you don’t need after sampling has done. Once you have an ArviZ
InferenceData object, you could filter those variables out of the trace with
To complete what @tushar_chandra wrote, note that I think dropping vars could make it impossible to compute statistical diagnostics later on, which is a problem if you want to compare models for instance.
So, unless memory space is an issue, I’d advise keeping everything in the trace
Figured it out! The variable name just needs to end in two underscores:
beta1 = pm.Deterministic('var_name', -pm.HalfFlat('neg_var_name__'))
Then, when running
az.plot_posterior(idata) it’ll skip plotting the distribution for