Parameter

class gammapy.utils.fitting.Parameter(name, factor, unit='', scale=1, min=nan, max=nan, frozen=False)[source]

Bases: object

Class representing model parameters.

Note that the parameter value has been split into a factor and scale like this:

value = factor x scale

Users should interact with the value, quantity or min and max properties and consider the fact that there is a factor` and scale an implementation detail.

That was introduced for numerical stability in parameter and error estimation methods, only in the Gammapy optimiser interface do we interact with the factor, factor_min and factor_max properties, i.e. the optimiser “sees” the well-scaled problem.

Parameters:

name : str

Name

factor : float or Quantity

Factor

scale : float, optional

Scale (sometimes used in fitting)

unit : Unit or str, optional

Unit

min : float, optional

Minimum (sometimes used in fitting)

max : float, optional

Maximum (sometimes used in fitting)

frozen : bool, optional

Frozen? (used in fitting)

Attributes Summary

factor Factor (float).
factor_max Factor max (float).
factor_min Factor min (float).
frozen Frozen? (used in fitting) (bool).
max Maximum (float).
min Minimum (float).
name Name (str).
quantity Value times unit (Quantity).
scale Scale (float).
unit Unit (Unit).
value Value = factor x scale (float).

Methods Summary

autoscale([method]) Autoscale the parameters.
to_dict()

Attributes Documentation

factor

Factor (float).

factor_max

Factor max (float).

This factor_max = max / scale is for the optimizer interface.

factor_min

Factor min (float).

This factor_min = min / scale is for the optimizer interface.

frozen

Frozen? (used in fitting) (bool).

max

Maximum (float).

min

Minimum (float).

name

Name (str).

quantity

Value times unit (Quantity).

scale

Scale (float).

unit

Unit (Unit).

value

Value = factor x scale (float).

Methods Documentation

autoscale(method='scale10')[source]

Autoscale the parameters.

Set factor and scale according to method

Available methods:

  • scale10 sets scale to power of 10, so that abs(factor) is in the range 1 to 10
  • factor1 sets factor, scale = 1, value

In both cases the sign of value is stored in factor, i.e. the scale is always positive.

Parameters:

method : {‘factor1’, ‘scale10’}

Method to apply

to_dict()[source]