Source code for firecrown.likelihood.gauss_family.student_t
"""The Student-t likelihood."""
from __future__ import annotations
from typing import Optional
import numpy as np
from .gauss_family import GaussFamily
from ...modeling_tools import ModelingTools
from .statistic.statistic import Statistic
from ... import parameters
[docs]class StudentT(GaussFamily):
r"""A T-distribution for the log-likelihood.
This distribution is appropriate when the covariance has been obtained
from a finite number of simulations. See Sellentin & Heavens
(2016; arXiv:1511.05969). As the number of simulations increases, the
T-distribution approaches a Gaussian.
:param statistics: list of statistics to build the theory and data vectors
:param nu: The Student-t $\nu$ parameter
"""
def __init__(
self,
statistics: list[Statistic],
nu: Optional[float] = None,
):
super().__init__(statistics)
self.nu = parameters.register_new_updatable_parameter(nu)
[docs] def compute_loglike(self, tools: ModelingTools):
"""Compute the log-likelihood.
:param cosmo: Current Cosmology object
"""
chi2 = self.compute_chisq(tools)
return -0.5 * self.nu * np.log(1.0 + chi2 / (self.nu - 1.0))