def test_likelihood_fitting_exponential(self): """ Fit using the likelihood method. """ b = Parameter(4, min=3.0) x = Variable() pdf = Exp(x, 1 / b) # Draw points from an Exp(5) exponential distribution. np.random.seed(100) xdata = np.random.exponential(5, 100000) fit = Likelihood(pdf, xdata) fit_result = fit.execute() self.assertAlmostEqual(fit_result.value(b), np.mean(xdata), 3)
def test_likelihood_fitting_exponential(self): """ Fit using the likelihood method. """ b = Parameter(4, min=3.0) x = Variable() pdf = Exp(x, 1/b) # Draw points from an Exp(5) exponential distribution. np.random.seed(100) xdata = np.random.exponential(5, 100000) fit = Likelihood(pdf, xdata) fit_result = fit.execute() self.assertAlmostEqual(fit_result.value(b), np.mean(xdata), 3)
def test_likelihood_fitting_gaussian(self): """ Fit using the likelihood method. """ mu, sig = parameters('mu, sig') sig.min = 0.01 sig.value = 3.0 mu.value = 50. x = Variable() pdf = Gaussian(x, mu, sig) # pdf = sympy.exp(-(x - mu)**2/(2*sig**2))/sympy.sqrt(2*sympy.pi*sig**2) np.random.seed(10) xdata = np.random.normal(51., 3.5, 100000) fit = Likelihood(pdf, xdata) fit_result = fit.execute() self.assertAlmostEqual(fit_result.value(mu), np.mean(xdata), 1) self.assertAlmostEqual(fit_result.value(sig), np.std(xdata), 3)