code: def _create_latent_variables(self):
          
  
          for p_term in range(self.p):
              self.latent_variables.add_z('p(' + str(p_term+1) + ')', fam.Normal(0,0.5,transform='logit'), fam.Normal(0,3))
              if p_term == 0:
                  self.latent_variables.z_list[-1].start = 3.00
              else:
                  self.latent_variables.z_list[-1].start = -4.00
  
          for q_term in range(self.q):
              self.latent_variables.add_z('q(' + str(q_term+1) + ')', fam.Normal(0,0.5,transform='logit'), fam.Normal(0,3))
              if q_term == 0:
                  self.latent_variables.z_list[-1].start = -1.50  
              else: 
                  self.latent_variables.z_list[-1].start = -4.00  
  
          self.latent_variables.add_z('v', fam.Flat(transform='exp'), fam.Normal(0,3))
          self.latent_variables.add_z('GARCH-M', fam.Normal(0, 3, transform=None),fam.Normal(0,3))
  
          for parm in range(len(self.X_names)):
              self.latent_variables.add_z('Vol Beta ' + self.X_names[parm], fam.Normal(0,10,transform=None), fam.Normal(0,3))
  
          for parm in range(len(self.X_names)):
              self.latent_variables.add_z('Returns Beta ' + self.X_names[parm], fam.Normal(0,10,transform=None), fam.Normal(0,3))
  
          # Starting values        
  
          for i in range(self.p+self.q, self.z_no):
              self.latent_variables.z_list[i].start = 0.0
  
          self.latent_variables.z_list[self.p+self.q].start = 2.0
docs: Creates model latent variables
  
          Returns
          ----------
          None (changes model attributes)