code: def get_garch_model():
      r = np.array([28, 8, -3, 7, -1, 1, 18, 12], dtype=np.float64)
      sigma1 = np.array(
          [15, 10, 16, 11, 9, 11, 10, 18], dtype=np.float64
      )
      alpha0 = np.array(
          [10, 10, 16, 8, 9, 11, 12, 18], dtype=np.float64
      )
      shape = r.shape
  
      with Model() as garch:
          alpha1 = Uniform("alpha1", 0.0, 1.0, shape=shape)
          beta1 = Uniform("beta1", 0.0, 1 - alpha1, shape=shape)
          mu = Normal("mu", mu=0.0, sigma=100.0, shape=shape)
          theta = tt.sqrt(
              alpha0
              + alpha1 * tt.pow(r - mu, 2)
              + beta1 * tt.pow(sigma1, 2)
          )
          Normal("obs", mu, sigma=theta, observed=r)
      return garch
  
imports: import numpy
  import theano.tensor
  from arviz import summary
  from pymc3 import Model, Normal, Uniform, sample
label_desc: Use image node_id 1 for calling a global function with example usage: get_garch_model() and returns: garch