class_docstr: Representation of a group specific effects term in PyMC
  
  Creates an object that builds the PyMC distribution for a group specific effect. It also
  contains the coordinates that we then add to the model.
  
  Parameters
  ----------
  term : bambi.terms.GroupSpecificTerm
      An object representing a group specific effects term.
  noncentered : bool
      Specifies if we use non-centered parametrization of group-specific effects.
class_docstr_tok: ["Representation","of","a","group","specific","effects","term","in","PyMC","Creates","an","object","that","builds","the","PyMC","distribution","for","a","group","specific","effect",".","It","also","contains","the","coordinates","that","we","then","add","to","the","model",".","Parameters","--","--","--","--","--","term",":","bambi.terms.GroupSpecificTerm","An","object","representing","a","group","specific","effects","term",".","noncentered",":","bool","Specifies","if","we","use","non-centered","parametrization","of","group-specific","effects","."]
docstr: Build and return a PyMC Distribution.
docstr_tok: ["Build","and","return","a","PyMC","Distribution","."]
code: def build_distribution(self, prior, label, **kwargs):
      """Build and return a PyMC Distribution."""
      distribution = get_distribution_from_prior(prior)
  
      if "dims" in kwargs:
          group_dim = [
              dim
              for dim in kwargs["dims"]
              if dim.endswith("__expr_dim")
          ]
          kwargs = {
              k: self.expand_prior_args(k, v, label, dims=group_dim)
              for (k, v) in kwargs.items()
          }
      else:
          kwargs = {
              k: self.expand_prior_args(k, v, label)
              for (k, v) in kwargs.items()
          }
  
      if self.noncentered and has_hyperprior(kwargs):
          sigma = kwargs["sigma"]
          offset = pm.Normal(
              label + "_offset", mu=0, sigma=1, dims=kwargs["dims"]
          )
          return pm.Deterministic(
              label, offset * sigma, dims=kwargs["dims"]
          )
      return distribution(label, **kwargs)
  
imports: import inspect
  import numpy
  import pymc
  import pytensor.tensor
  from bambi.backend.utils import get_distribution_from_likelihood, get_distribution_from_prior, get_linkinv, has_hyperprior, make_weighted_distribution, GP_KERNELS
  from bambi.families.multivariate import MultivariateFamily, Multinomial, DirichletMultinomial
  from bambi.families.univariate import Categorical
  from bambi.priors import Prior
  from bambi.utils import get_aliased_name
label_desc: Use image node_id 4 for calling the GroupSpecificTerm obj's underlying member method code with example usage: obj.build_distribution(prior, label) and returns: distribution, pm