TailFitMCMC

class gwtails.bayesian_tails.TailFitMCMC(t, A, t_tail_window, lsq_params=None, log_Atail_range=(-5, 15), ctail_range=(0, 2500), ptail_range=(-15, -1), fixed_params=None, percentage_err_in_data=2.5)[source]

Bases: object

Unified Bayesian fitting class for tail decay function: Atail * (t + ctail)**ptail Supports fixing any combination of parameters.

Example

# Create fit instance fitter = gwtails.TailFitMCMC(t=t, # post-merger time

A=abs(h[(2,2)]), # post-merger amplitue t_tail_window=[1200, 8000], lsq_params=None, # no initial guess log_Atail_range=(0, 20), ctail_range=(0, 2500), ptail_range=(-15, -1), fixed_params=None, percentage_err_in_data=2.5)

# Perform fitting samples, percentiles, log_likelihood = fitter.fit(n_walkers=32, n_steps=2000, burn_in=500)

# quick corner plot fitter.plot_corner();

__init__(t, A, t_tail_window, lsq_params=None, log_Atail_range=(-5, 15), ctail_range=(0, 2500), ptail_range=(-15, -1), fixed_params=None, percentage_err_in_data=2.5)[source]

Initialize the class.

Parameters:
  • t – array-like Time array

  • A – array-like Amplitude data

  • t_tail_window – list [t_start, t_end] for fitting window

  • lsq_params – list or array, optional [Atail, ctail, ptail] from least squares fit to use as initial guess

  • log_Atail_range – tuple, optional (min, max) range for log10(Atail) prior, default (-5, 15)

  • ctail_range – tuple, optional (min, max) range for ctail parameter prior, default (0, 2500)

  • ptail_range – tuple, optional (min, max) range for ptail parameter prior, default (-15, -1)

  • fixed_params – dict, optional Dictionary specifying fixed parameters, e.g., {‘ptail’: -6}, {‘ctail’: 0}, {‘ptail’: -6, ‘ctail’: 0}, or None for all free parameters

  • percentage_err_in_data – float, optional Percentage error in data for likelihood calculation, default 2.5%

tail_model(t, free_param_values)[source]

Tail decay model.

log_likelihood(free_param_values)[source]

Log likelihood function.

log_prior(free_param_values)[source]

Log prior function.

log_probability(free_param_values)[source]

Log posterior probability.

fit(n_walkers=32, n_steps=2000, burn_in=500)[source]

Perform Bayesian fitting using MCMC.

Parameters:

n_walkersint, default 32

Number of MCMC walkers

n_stepsint, default 2000

Number of MCMC steps

burn_inint, default 500

Number of burn-in steps to discard

get_best_fit_params()[source]

Get best-fit parameters from percentiles.

predict(t_pred=None)[source]

Predict model values using best-fit parameters.

Parameters:

t_predarray-like, optional

Time points for prediction. If None, uses fitting time range.

plot_corner(**kwargs)[source]

Create a corner plot of the MCMC samples.

Parameters:

**kwargsoptional

Additional keyword arguments to pass to corner.corner()

Returns:

figmatplotlib.figure.Figure

The corner plot figure