Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modeling Kepler systematics using Gaussian processes

Modeling Kepler systematics using Gaussian processes

Dan Foreman-Mackey

July 25, 2013
Tweet

More Decks by Dan Foreman-Mackey

Other Decks in Science

Transcript

  1. Reference: kepler.nasa.gov 2 1study the population of Earth-sized planets in

    the "habitable zone" learn a whole lot about stars
  2. Reference: kepler.nasa.gov 2 1study the population of Earth-sized planets in

    the "habitable zone" learn a whole lot about stars
  3. Reference: kepler.nasa.gov 2 1study the population of Earth-sized planets in

    the "habitable zone" learn a whole lot about stars Earth-like
  4. Reference: kepler.nasa.gov 2 1study the population of Earth-sized planets in

    the "habitable zone" learn a whole lot about stars Earth-like of Sun-like stars
  5. model parameters expected data observed (noisy) data physical model gravity,

    limb darkening, etc. noise model likelihood function
  6. 2 astrophysical: variable stars, binary stars, star spots, etc. 1

    instrumental: pointing drift, temperature variations, electronic noise, etc.
  7. Pre-search Data Conditioning (PDC) (yeah it's a strange name) attempts

    to remove instrumental effects without affecting astrophysical signals (nearby targets are correlated) (nearby targets are uncorrelated)
  8. Pre-search Data Conditioning (PDC) (yeah it's a strange name) run

    PCA on nearby light curves fit the target with the top few components
  9. "corrected" aperture photometry [ppm] Object: Kepler-37 Cool story. I can

    haz planetz? still have astrophysical "noise" have introduced correlated systematic noise
  10. What next? 2 preprocessing hacks to "remove" systematics 1 "sophisticated"

    model of stellar activity + transit EXPENSIVE IT'S A HACK
  11. model parameters expected data observed (noisy) data physical model gravity,

    limb darkening, etc. noise model likelihood function
  12. model parameters expected data observed (noisy) data physical model gravity,

    limb darkening, etc. noise model likelihood function + infinite time…
  13. model parameters expected data observed (noisy) data physical model gravity,

    limb darkening, etc. noise model likelihood function + infinite time… in theory…
  14. Characterization 2 independent noise or Carter + Winn (2009) 1

    wide median filter + piecewise polynomial
  15. 2 = N X n=1 [ yn ˆ y (

    xn)]2 2 n p(Y | ✓) = N Y n=1 N(yn; ˆ yn, 2 n )
  16. 1 p 2 ⇡ 2 n exp ✓ 1 2

    [ yn ˆ yn] 2 2 n ◆ 2 = N X n=1 [ yn ˆ y ( xn)]2 2 n p(Y | ✓) = N Y n=1 N(yn; ˆ yn, 2 n )
  17. ln p(Y | ✓) = 1 2 [y ˆ y]TV

    1[y ˆ y] 1 2 ln |V| + C ln p(Y | ✓) = 1 2 N X n=1  [yn ˆ yn]2 2 n + ln 2 n + C 1 2 n yn ˆ yn yn ˆ yn
  18. ln p(Y | ✓) = 1 2 [y ˆ y]TV

    1[y ˆ y] 1 2 ln |V| + C ln p(Y | ✓) = 1 2 N X n=1  [yn ˆ yn]2 2 n + ln 2 n + C 1 2 n yn ˆ yn yn ˆ yn A Gaussian Process
  19. periodic noise k(xn, xm) = ↵ 2 e x 2

    / 2 ` 2 + 2 e x 2 / 2 ` 2 2 cos 2⇡ | x | T
  20. periodic noise k(xn, xm) = ↵ 2 e x 2

    / 2 ` 2 + 2 e x 2 / 2 ` 2 2 cos 2⇡ | x | T
  21. Measurement uncertainties? k ( xn, xm) = 2 n nm

    (the sum of 2 valid kernels is a kernel)
  22. Isn't this too expensive? ln p(Y | ✓) = 1

    2 [y ˆ y]TV 1[y ˆ y] 1 2 ln |V| + C
  23. Credit: NASA/ESA & Evans et al. (2013) HD 189733b Evans

    et al. (2013): an "Azure" planet – 6 – −1500 0 +1500 0 +300 λ = 290–450 nm λ = 450–570 n Relative Flux (ppm) flux time
  24. Object: KIC 3641858 ln " ptransit(data | t(k) 0 ,

    P(k) . . .) pnull(data | t(k) 0 , P(k) . . .) #
  25. import kplr client = kplr.API() # Find a KOI. koi

    = client.koi(952.01) print(koi.koi_period) # This KOI has an associated star. star = koi.star print(star.kic_teff) # Download the lightcurves for this KOI. lightcurves = koi.get_light_curves() for lc in lightcurves: hdus = lc.open() a Python interface to Kepler data kplr dan.iel.fm/
  26. p e B A R T bart github.com/dfm/ Python/C framework

    for modeling exoplanet observations WORK IN PROGRESS flexible + fast limb darkening (C) Gaussian process likelihood (C++) expressive model building syntax (Python) simple interface to fitting software (Python)
  27. import numpy as np import emcee def lnprob(x, ivar): return

    -0.5 * np.sum(ivar * x ** 2) ndim, nwalkers = 10, 100 ivar = 1. / np.random.rand(ndim) p0 = [np.random.rand(ndim) for i in range(nwalkers)] sampler = emcee.EnsembleSampler(nwalkers, ndim, lnprob, args=[ivar]) sampler.run_mcmc(p0, 1000) The MCMC Hammer: user-friendly MCMC in Python emcee dan.iel.fm/ it's hammer time!