示例#1
0
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
示例#2
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))

    # 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]
示例#3
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]
示例#4
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]
示例#5
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]