x3cflux.run_profile_likelihood_cis

class x3cflux.run_profile_likelihood_cis(simulator, mle: ndarray, alpha: float = 0.95, names: List[str] = None, bounds: Dict[str, Tuple[float, float]] = None, num_procs: int = -1, rel_tol: float = 0.001, abs_tol: float = 0.001, **kwargs)

Bases:

Estimate confidence intervals based on profile likelihoods.

A simple binary search is used to find the point where the profile likelihood threshold is exceeded. For re-optimization, the interior point optimizer Ipopt and its Python interface cyipopt are used. Ipopt can be configured by passing the appropriate keyword arguments. See A. Wächter and L. T. Biegler (2006), https://link.springer.com/article/10.1007/s10107-004-0559-y.

Parameters:
  • simulator (Simulator) – Labeling simulator used to evaluate the likelihood and its gradient.

  • mle (numpy.ndarray) – Maximum likelihood estimator of the free parameters.

  • alpha (float, default=0.95) – Confidence level of the interval, between 0 and 1.

  • names (list[str], optional) – Compute profile likelihoods only for a subset of parameters given by name.

  • bounds (dict[str, tuple[float, float], optional) – Parameter boundary constraints.

  • num_procs (int, default=-1) – Number of parallel workers. If the value is below one, the number of workers is set to the number of available CPUs.

  • rel_tol (float, default=1e-3) – Relative convergence criterion for binary search.

  • abs_tol (float, default=1e-3) – Absolute convergence criterion for binary search.

  • **kwargs – Ipopt options. See https://coin-or.github.io/Ipopt/OPTIONS.html.

Returns:

Lower and upper confidence interval bounds for each parameter.

Return type:

list[tuple[float, float]]