bayesstack detailed object documentation

Classes

class bayesstack.bayesstack(sourcedata, muS0, sigmaS0, muB0, sigmaB0, ndraws, burnin=None, analysistype='flux', dfS=5.0, sigmaSprior=(2.3025850929940459, 1.151292546497023), sigmaBprior=(-0.5, 0.0), tune_interval=1000, quantiles=None, verbose=1)

Class for luminosity- and flux-based stacking-type inference.

Example:

# Create bayesstack_lum object
analysis = bayesstack(...)

# Run MCMC based analysis
run = analysis.runmcmc()
Parameters:
  • sourcedata

    Structured (or record) array containing at least the following columns: countS, countB, exposureS, exposureB, effareaS, areaS, areaB, ecf, acf

    For luminosity-based analysis, the following columns are required in addition to the above: distance, kcorr

  • muS0 – Starting value for mean log-intensity
  • sigmaS0 – Starting value for scale parameter of log-intensity distribution
  • muB0 – Starting value for E[ln(lambda_B)], where lambda_B is per-pixel count rate in background region
  • sigmaB0 – Starting value for std. dev. of ln(lambda_B)
  • ndraws – Number of draws to return (excluding burnin)
  • burnin – Number of draws to run for initial burnin (default is same as ndraws)
  • analysistype – Type of analysis desired (flux- or luminosity-based). Default is flux-based.
  • dfS – Degrees of freedom on t distribution for log-intensity (default=5.0)
  • sigmaSprior – (loc, scale) for log-normal prior on scale parameter for log-intensity; defaults to vaguely informative values of (log(10), log(10)/2)
  • sigmaBprior – (alpha, beta) for inverse gamma prior on scale parameter for ln(lambda_B); defaults to noninformative values
  • tune_interval – Interval of tuning for Metropolis-Hastings steps during burnin; defaults to 1000
  • quantiles – Quantiles to use when calculating logintensityquantiles; if None, defaults to np.array((0.025,0.05,0.16,0.25,0.5, 0.75,0.84,0.95,0.975)).
  • verbose – Sets verbosity of output. Defaults to 1.
mcmcstep()

Method to execute single step for luminosity-based MCMC simulation. Takes no arguments; updates state values of bayesstack_lum object, including iteration counter. Sequence of parameter updates is:

  • muS: Expectation of log-intensity (Gibbs)
  • uS: Variance of each source’s log-intensity (Gibbs)
  • tauS: Scale parameter for log-intensity distribution (Metropolis-Hastings)
  • muB: Expectation of log(lambda_B) (Gibbs)
  • sigmaB: Standard deviation of log(lambda_B) (Gibbs)
  • logintensity: Parallel update of log-intensity (Metropolis-Hastings)
  • loglambdaB: Parallel update of log(lambda_B) (Metropolis-Hastings)
  • countN: Actual counts from source; deconvolution of background (Gibbs)
Return type:None
runmcmc()

Method to run MCMC on initialized bayesstack_lum object. Takes no arguments. Prints diagnostic output during run (current iteration at appropriate points and tuning information during burnin).

Return type:

Nested dictionary containing key outputs. Contains 3 items:

  • hyperparams: Simulated chains for parameters of luminosity and background intensity distributions. Contains:

    • muS: Expectation of log-intensity (ndraws-dim vector)
    • sigmaS: Scale parameter for log-intensity distribution (ndraws-dim vector)
    • muB: Expectation of log(lambda_b) (ndraws-dim vector)
    • sigmaB: Standard deviation of log(lambda_b) (ndraws-dim vector)
  • summaries: Summaries of posterior inferences for each source. Contains:

    • logintensitymeans: Posterior mean of the log-intensity for each source (n-dim vector)
    • logintensitysigmas: Posterior standard deviation of log-intensity for each source (n-dim vector)
    • loglambdaBmeans: Posterior mean of the log(lambda_B) for each source (n-dim vector)
    • loglambdaBsigmas: Posterior standard deviation of log(lambda_B) for each source (n-dim vector)
  • quantiles: Chains of simulated quantiles for in-sample log-intensity distribution (ndraws x len(quantiles) array)

tune()

Method to tune MCMC proposal scales based on acceptance rates during burnin. Takes no arguments; calls _tune_single for each chain being tuned.

Tuning schedule:

Acceptance Rate Scale adaptation
<0.001 x 0.1
<0.05 x 0.5
<0.3 x 0.9
>0.5 x 1.2
>0.75 x 2
>0.95 x 10

Functions

bayesstack.lambdaPosterior(x, countN, scalefactor, mu, sigma)
Function to compute unnormalized conditional (log) posterior density of intensities given all parameters and unobserved data for Poisson-lognormal model. Used by lambdaMHStep and lambdaInit.
bayesstack.lambdaObjFunc(logLambda, countN, scalefactor, mu, sigma)
Function to compute first derivative of unnormalized conditional (log) posterior density of intensities given all parameters and unobserved data for Poisson-lognormal model. Used by lambdaMHStep and lambdaInit.
bayesstack.lambdaObjFuncDeriv(logLambda, countN, scalefactor, mu, sigma)
Function to compute second derivative of unnormalized conditional (log) posterior density of intensities given all parameters and unobserved data for Poisson-lognormal model. Used by lambdaMHStep and lambdaInit.
bayesstack.lambdaInit(countN, scalefactor, mu, sigma, lambdam1)
Function to find conditional posterior means for log-intensities for Poisson-lognormal models. Uses Halley’s method (an extension of Newton’s method with second derivatives). Used by lambdaMHStep to set center of Metropolis-Hastings proposals.
bayesstack.lambdaMHStep(countN, scalefactor, mu, sigma, lambdam1, propscale=2.0)
Function to execute Metropolis-Hastings step on vector of log-intensities for Poisson-lognormal model. Sets centers of proposal distributions using lambdaInit. Used by both bayesstack_lum and bayesstack_flux.

Indices and tables