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; use fisher_derived when 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 follow fisher_matrix.param_names.

  • new_names (list of string) – names of the new parameters, one per Jacobian column.

  • new_names_latex (list of string) – optional LaTeX names of the new parameters.

  • new_fiducial (list of float) – optional fiducial values of the new parameters.

  • name (string) – optional name of the output Fisher matrix; defaults to the input name with _reparametrised appended.

Returns:

the Fisher matrix in the new parameters.

Return type:

cosmicjellyfish.analysis.fisher_matrix.fisher_matrix