Open
Description
Description
As discussed in: https://discourse.pymc.io/t/semantik-description-of-kruschke-diagrams-model-to-graphviz/16142/8 we could be making more use of the conditional partition of the logp graph for partial step samplers.
When the proposal depends on a ratio between probabilities (BinaryMetropolois, BinaryGibbsMetropolis, CategoricalGibbsMetropolis, Slice, NUTS), we don't need to compute terms that don't depend on the updated variables.
Step samples that explicitly request delta_logp
(Metropolis, DEMetropolis) achieve this implicitly via PyTensor rewrites.
I suggest adding a model.dependent_logp(vars)
that helps us get the logp we need (the variables of interest + conditional dependent variables)