Overview

The default model parametrization is the one described in Section 4.4 of Hand et al. 2017. See this section for a detailed discussion of the free and constrained parameters, as well as the priors used during parameter fitting. There are 13 free parameters that are varied during the fitting procedure.

The default set of parameters can be easily loaded from a GalaxySpectrum object as

In [1]: from pyRSD.rsd import GalaxySpectrum

In [2]: model = GalaxySpectrum()

In [3]: params = model.default_params()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-20168f551e3a> in <module>()
----> 1 params = model.default_params()

~/checkouts/readthedocs.org/user_builds/pyrsd/conda/latest/lib/python3.6/site-packages/pyRSD/rsd/power/gal/power_gal.py in default_params(self)
    128         """
    129         from pyRSD.rsdfit.theory import GalaxyPowerParameters
--> 130         return GalaxyPowerParameters.from_defaults(model=self)
    131 
    132     #---------------------------------------------------------------------------

~/checkouts/readthedocs.org/user_builds/pyrsd/conda/latest/lib/python3.6/site-packages/pyRSD/rsdfit/theory/base.py in from_defaults(cls, model, extra_params)
    155         """
    156         # initialize an empty class
--> 157         params = cls()
    158 
    159         # add extra parameters

~/checkouts/readthedocs.org/user_builds/pyrsd/conda/latest/lib/python3.6/site-packages/pyRSD/rsdfit/parameters/parameterset.py in __init__(self, *args, **kwargs)
     35     def __init__(self, *args, **kwargs):
     36 
---> 37         kwargs['asteval'] = lmfit.asteval.Interpreter(symtable=SmartSymTable(self))
     38         super(ParameterSet, self).__init__(*args, **kwargs)
     39         self._prepared = False

AttributeError: module 'lmfit' has no attribute 'asteval'

In [4]: print(params)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-1b9f0c7a8c29> in <module>()
----> 1 print(params)

NameError: name 'params' is not defined

The params variable here is a pyRSD.rsdfit.parameters.ParameterSet object, which is a dictionary of pyRSD.rsdfit.parameters.Parameter objects. The Parameter object not only stores the value of the parameter (as the value attribute), but also stores information about the prior and whether the parameter is freely varied or constrained. For example, the satellite fraction fs can be accessed as

In [5]: fsat = params['fs']
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-5-0bdcc73fb526> in <module>()
----> 1 fsat = params['fs']

NameError: name 'params' is not defined

In [6]: print(fsat.value)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-fa43826f61de> in <module>()
----> 1 print(fsat.value)

AttributeError: 'numpy.float64' object has no attribute 'value'

# freely varying
In [7]: print(fsat.vary)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-631a00d377f3> in <module>()
----> 1 print(fsat.vary)

AttributeError: 'numpy.float64' object has no attribute 'vary'

In [8]: fsat.value = 0.12  # change the value to 0.12
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-1245a81779b7> in <module>()
----> 1 fsat.value = 0.12  # change the value to 0.12

AttributeError: 'numpy.float64' object has no attribute 'value'

# uniform prior assumed by default
In [9]: print(fsat.prior)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-9-eccca42b31f4> in <module>()
----> 1 print(fsat.prior)

AttributeError: 'numpy.float64' object has no attribute 'prior'

The Free Parameters

The 13 free parameters by default are:

In [10]: for par in params.free:
   ....:   print(par)
   ....: 
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-10-5cecc5874546> in <module>()
----> 1 for par in params.free:
      2   print(par)
      3 

NameError: name 'params' is not defined
Parameter Name Description
\(N_{s,\mathrm{mult}}\) Nsat_mult The mean number of satellites in halos with >1 sat
\(\alpha_\parallel\) alpha_par The Alcock-Paczynski effect parameter for parallel to the line-of-sight
\(\alpha_\perp\) alpha_perp The Alcock-Paczynski effect parameter for perpendicular to the line-of-sight
\(b_{1,c_A}\) b1_cA The linear bias of type A centrals (no satellites in the same halo)
\(f\) f The growth rate at \(z\): \(f = d\mathrm{ln}D/d\mathrm{ln}a\)
\(f_{1h, s_B s_B}\) f1h_sBsB An order unity amplitude value multiplying the 1-halo term, NsBsB
\(f_s\) f_s The satellite fraction, which is (total number of satellites / total number of galaxies)
\(f_{s_B}\) f_sB The type B satellites fraction, which is (total number of type B satellites / total number of satellites)
\(\gamma_{b_{1,s_A}}\) gamma_b1sA The relative fraction of b1_sA to b1_cA
\(\gamma_{b_{1,s_B}}\) gamma_b1sB The relative fraction of b1_sB to b1_cA
\(\sigma_8(z)\) sigma8_z The mass variance at \(r = 8 \ \mathrm{Mpc}/h\) at \(z\)
\(\sigma_c\) sigma_c The centrals FoG velocity dispersion, in units of \(\mathrm{Mpc}/h\)
\(\sigma_{s_A}\) sigma_sA The type A satellites FoG velocity dispersion, in units of \(\mathrm{Mpc}/h\)

The Constrained Parameters

There are several constrained parameters, i.e., parameters whose values are solely determined by other parameters, in the default configuration. Note also that since these parameters are not freely varied, they do not require priors.

In [11]: for par in params.constrained:
   ....:   print(par)
   ....: 
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-11-0bf19a17b9e8> in <module>()
----> 1 for par in params.constrained:
      2   print(par)
      3 

NameError: name 'params' is not defined
Parameter Name Description
\(F_\mathrm{AP}\) F_AP The AP parameter, given by \(alpha_\parallel / \alpha_\perp\)
\(N_{c_B s}\) N_cBs The amplitude of the constant 1-halo term between type B centrals, [units: \((\mathrm{Mpc}/h)^3\)]
\(N_{s_B s_B}\) N_sBsB The amplitude of the constant 1-halo term between type B satellites, [units: \((\mathrm{Mpc}/h)^3\)]
\(\alpha\) alpha The isotropic AP dilation, given by \((\alpha_\perp^2 \alpha_\parallel)^{1/3}\)
\(b_1\) b1 The total galaxy linear bias
\(b_{1,c}\) b1_c The linear bias of the central sample
\(b_{1,c_B}\) b1_cB The linear bias of type B centrals (1 or more satellite(s) in the same halo)
\(b_{1,s}\) b1_s The linear bias of the satellite sample
\(b_{1,s_A}\) b1_sA The linear bias of the type A satellites sample
\(b_{1,s_B}\) b1_sB The linear bias of the type B satellites sample
\(b_1 \sigma_8\) b1sigma8 The value of \(b_1(z) \times \sigma_8(z)\)
\(\epsilon\) epsilon The anisotropic AP warping, given by \((\alpha_\perp / \alpha_\parallel)^{-1/3} - 1\)
\(f_{c_B}\) f_cB The type B centrals fraction, which is (total number of type B centrals / total number of centrals)
\(f \sigma_8\) fsigma8 The value of \(f(z) \times \sigma_8(z)\)
\(\sigma_{s_B}\) sigma_sB The type B satellites FoG velocity dispersion, in units of \(\mathrm{Mpc}/h\)

The ParameterSet object handles constrained parameters automatically. For example, in our default configuration, we have the parameter fsigma8, which is the product of the growth rate f and the mass variance sigma8_z. We can change the value of either f or sigma8_z and the value of fsigma8_z will reflect those changes. For example,

In [12]: print(params['fsigma8'])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-12-d6f6c6bb8ef8> in <module>()
----> 1 print(params['fsigma8'])

NameError: name 'params' is not defined

In [13]: print(params['f']*params['sigma8_z'])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-13-3c4254d13be2> in <module>()
----> 1 print(params['f']*params['sigma8_z'])

NameError: name 'params' is not defined

In [14]: params['f'].value = 0.75
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-14-afcbaefd60f2> in <module>()
----> 1 params['f'].value = 0.75

NameError: name 'params' is not defined

In [15]: print(params['fsigma8'])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-15-d6f6c6bb8ef8> in <module>()
----> 1 print(params['fsigma8'])

NameError: name 'params' is not defined

In [16]: print(params['f']*params['sigma8_z'])
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-3c4254d13be2> in <module>()
----> 1 print(params['f']*params['sigma8_z'])

NameError: name 'params' is not defined