def maxlike(theta, x, y, yerr, P, name): print 'initial values = ', theta, P print 'initial nll = ', neglnlike(theta, x, y, yerr, P) result = fmin(neglnlike, theta, args = (x, y, yerr, P)) print 'final values = ', result, P like = neglnlike(result, x, y, yerr, P) print 'final likelihood = ', like # savedata = np.empty(len(result)+2) # savedata[:len(result)] = result # savedata[-2] = P # savedata[-1] = like # np.savetxt('results/ml_result%s.txt'%name, savedata) return -like, result
def global_max(x, y, yerr, theta, Periods, P, r, s, b, save): print "Initial parameters = (exp)", theta start = time.clock() print "Initial lnlike = ", -neglnlike(theta, x, y, yerr, P), "\n" elapsed = (time.clock() - start) print 'time =', elapsed L = np.zeros_like(Periods) results = np.zeros((len(L), 4)) for i, p in enumerate(Periods): L[i], results[i, :] = maxlike(theta, x, y, yerr, p, i) iL = L == max(L) mlp = Periods[iL] mlresult = results[iL] print 'max likelihood period = ', mlp print 'mlresult = ', mlresult[0] print 'L', L # plot data # pl.clf() # pl.errorbar(x, y, yerr=yerr, fmt='k.', capsize=0, ecolor='0.5', zorder=2) # xs = np.linspace(min(x), max(x), 1000) # pl.plot(xs, predict(xs, x, y, yerr, mlresult[0], mlp)[0], color='#339999', linestyle = '-',\ # zorder=1, linewidth='2') # pl.xlabel('$\mathrm{Time~(days)}$') # pl.ylabel('$\mathrm{Normalised~Flux}$') # pl.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) # pl.savefig('/Users/angusr/Python/george/data/%sml_data%s' %(int(KID), save)) # plot GPeriodogram pl.clf() area = sp.integrate.trapz(np.exp(L)) pl.plot(Periods, (np.exp(L)) / area, 'k-') pl.xlabel('Period') pl.ylabel('Likelihood') tdata = np.genfromtxt( '/Users/angusr/angusr/Suz_simulations/final_table.txt', skip_header=1).T truemin = tdata[19][KID] truemax = tdata[20][KID] true = .5 * (truemin + truemax) pl.title('Period = %s, true = %s, init = %s' % (mlp, true, P)) pl.savefig('/Users/angusr/Python/george/likelihood/%shr_ml_likelihood%s' % (int(KID), save)) # set period prior boundaries bm = mlp - b * mlp bp = mlp + b * mlp return L, mlp, bm, bp, mlresult[0]
def global_max(x, y, yerr, theta, Periods, P, r, s, b, save): print "Initial parameters = (exp)", theta start = time.clock() print "Initial lnlike = ", -neglnlike(theta, x, y, yerr, P),"\n" elapsed = (time.clock() - start) print 'time =', elapsed L = np.zeros_like(Periods) results = np.zeros((len(L), 4)) for i, p in enumerate(Periods): L[i], results[i,:] = maxlike(theta, x, y, yerr, p, i) iL = L==max(L) mlp = Periods[iL] mlresult = results[iL] print 'max likelihood period = ', mlp print 'mlresult = ', mlresult[0] print 'L', L # plot data # pl.clf() # pl.errorbar(x, y, yerr=yerr, fmt='k.', capsize=0, ecolor='0.5', zorder=2) # xs = np.linspace(min(x), max(x), 1000) # pl.plot(xs, predict(xs, x, y, yerr, mlresult[0], mlp)[0], color='#339999', linestyle = '-',\ # zorder=1, linewidth='2') # pl.xlabel('$\mathrm{Time~(days)}$') # pl.ylabel('$\mathrm{Normalised~Flux}$') # pl.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) # pl.savefig('/Users/angusr/Python/george/data/%sml_data%s' %(int(KID), save)) # print 'plotting likelihoods' # pl.clf() # area = sp.integrate.trapz(np.exp(L)) # pl.plot(Periods, (np.exp(L))/area, 'k-') # pl.xlabel('Period') # pl.ylabel('Likelihood') # tdata = np.genfromtxt('/Users/angusr/angusr/Suz_simulations/final_table.txt', skip_header=1).T # truemin = tdata[19][KID] # truemax = tdata[20][KID] # true = .5*(truemin+truemax) # pl.title('Period = %s, true = %s, init = %s' %(mlp, true, P)) # pl.savefig('/Users/angusr/Python/george/likelihood/%sml_likelihood%s' %(int(KID), save)) # set period prior boundaries bm = mlp - b*mlp bp = mlp + b*mlp return L, mlp, bm, bp, mlresult[0]
def global_max(x, y, yerr, theta, Periods, P, r, s, b, save): print "Initial parameters = (exp)", theta start = time.clock() print "Initial lnlike = ", -neglnlike(theta, x, y, yerr, P), "\n" elapsed = (time.clock() - start) print 'time =', elapsed L = np.zeros_like(Periods) results = np.zeros((len(L), 4)) for i, p in enumerate(Periods): L[i], results[i, :] = maxlike(theta, x, y, yerr, p, i) iL = L == max(L) mlp = Periods[iL] mlresult = results[iL] print 'max likelihood period = ', mlp print 'mlresult = ', mlresult[0] # plot data pl.clf() pl.errorbar(x, y, yerr=yerr, fmt='k.', capsize=0, ecolor='0.5', zorder=2) xs = np.linspace(min(x), max(x), 1000) pl.plot(xs, predict(xs, x, y, yerr, mlresult[0], mlp)[0], color='#339999', linestyle = '-',\ zorder=1, linewidth='2') pl.xlabel('$\mathrm{Time~(days)}$') pl.ylabel('$\mathrm{Normalised~Flux}$') pl.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) pl.savefig('%sml_data%s' % (int(KID), save)) # plot GPeriodogram pl.clf() area = sp.integrate.trapz(np.exp(L)) pl.plot(Periods, (np.exp(L)) / area, 'k-') pl.xlabel('Period') pl.ylabel('Likelihood') pl.title('Period = %s' % mlp) pl.savefig('%sml_likelihood%s' % (int(KID), save)) # set period prior boundaries bm = mlp - b * mlp bp = mlp + b * mlp return L, mlp, bm, bp, mlresult[0]
def global_max(x, y, yerr, theta, Periods, P, r, s, b, save): print "Initial parameters = (exp)", theta start = time.clock() print "Initial lnlike = ", -neglnlike(theta, x, y, yerr, P),"\n" elapsed = (time.clock() - start) print 'time =', elapsed L = np.zeros_like(Periods) results = np.zeros((len(L), 4)) for i, p in enumerate(Periods): L[i], results[i,:] = maxlike(theta, x, y, yerr, p, i) iL = L==max(L) mlp = Periods[iL] mlresult = results[iL] print 'max likelihood period = ', mlp print 'mlresult = ', mlresult[0] # plot data pl.clf() pl.errorbar(x, y, yerr=yerr, fmt='k.', capsize=0, ecolor='0.5', zorder=2) xs = np.linspace(min(x), max(x), 1000) pl.plot(xs, predict(xs, x, y, yerr, mlresult[0], mlp)[0], color='#339999', linestyle = '-',\ zorder=1, linewidth='2') pl.xlabel('$\mathrm{Time~(days)}$') pl.ylabel('$\mathrm{Normalised~Flux}$') pl.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) pl.savefig('%sml_data%s' %(int(KID), save)) # plot GPeriodogram pl.clf() area = sp.integrate.trapz(np.exp(L)) pl.plot(Periods, (np.exp(L))/area, 'k-') pl.xlabel('Period') pl.ylabel('Likelihood') pl.title('Period = %s' %mlp) pl.savefig('%sml_likelihood%s' %(int(KID), save)) # set period prior boundaries bm = mlp - b*mlp bp = mlp + b*mlp return L, mlp, bm, bp, mlresult[0]