reparametrise#
- cosmicjellyfish.analysis.fisher_operations.reparametrise(fisher_matrix, jacobian, new_names, new_names_latex=None, new_fiducial=None, name=None)[source]#
Change the parameters of a Fisher matrix with the chain rule.
For old parameters \(p_i\) that are functions of new parameters \(q_\alpha\), the Fisher matrix in the new parameters is
\[\tilde F_{\alpha\beta} = \sum_{ij} J_{i\alpha} F_{ij} J_{j\beta}, \qquad J_{i\alpha} = \frac{\partial p_i}{\partial q_\alpha}.\]This is the projection used, for example, to go from the redshift-binned \(H(z_i)\), \(D_A(z_i)\), \(f\sigma_8(z_i)\) constraints of a galaxy clustering forecast to cosmological parameters. The number of new parameters can be smaller than the number of old ones.
This is different from
cosmicjellyfish.analysis.fisher_derived.fisher_derived, which propagates the covariance to derived parameters \(d_a(p)\) through \(A^T F^{-1} A\) with \(A_{ia} = \partial d_a / \partial p_i\). Use this function when the old parameters are functions of the new ones; usefisher_derivedwhen the new parameters are functions of the old ones.- Parameters:
fisher_matrix (
cosmicjellyfish.analysis.fisher_matrix.fisher_matrix) – input Fisher matrix in the old parameters.jacobian (
numpy.ndarray) – matrix \(\partial p_i / \partial q_\alpha\) with shape(n_old, n_new); rows followfisher_matrix.param_names.new_names (
listofstring) – names of the new parameters, one per Jacobian column.new_names_latex (
listofstring) – optional LaTeX names of the new parameters.new_fiducial (
listoffloat) – optional fiducial values of the new parameters.name (
string) – optional name of the output Fisher matrix; defaults to the input name with_reparametrisedappended.
- Returns:
the Fisher matrix in the new parameters.
- Return type: