This method is called by step() to generate proposed values
        if self.proposal_distribution is "Normal" (i.e. no proposal specified).

def propose(self):
        """
        This method is called by step() to generate proposed values
        if self.proposal_distribution is "Normal" (i.e. no proposal specified).
        """
    
        prop_dist = self.proposal_distribution.lower()
        if  prop_dist == "normal":
            self.stochastic.value = rnormal(
                self.stochastic.value,
                self.adaptive_scale_factor *
                self.proposal_sd,
                size=self.stochastic.value.shape)
        elif prop_dist == "prior":
            self.stochastic.random()