def _create_latent_variables(self):
        """ Creates model latent variables

        Returns
        ----------
        None (changes model attributes)
        """

        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
Creates model latent variables

        Returns
        ----------
        None (changes model attributes)