UserStat

class sherpa.stats.UserStat(statfunc=None, errfunc=None, name='userstat')[source] [edit on github]

Bases: `Stat`

Support simple user-supplied statistic calculations.

Notes

This class is used by the `sherpa.ui.load_user_stat` to provide a user-definable statistic calculation as a function. For more complicated cases it is suggested that users should write their own class instead of using this one.

Methods Summary

 `calc_stat`(data, model) Return the statistic value for the data and model. `calc_staterror`(data) Return the statistic error values for the data. `goodness_of_fit`(statval, dof) Return the reduced statistic and q value. `set_errfunc`(func) `set_statfunc`(func)

Methods Documentation

calc_stat(data, model)[source] [edit on github]

Return the statistic value for the data and model.

Parameters:
Returns:

• statval (number) – The value of the statistic.

• fvec (array of numbers) – The per-bin “statistic” value.

calc_staterror(data)[source] [edit on github]

Return the statistic error values for the data.

Parameters:

data (scalar or 1D array of numbers) – The data values.

Returns:

staterror – The errors for the input data values (matches the data argument).

Return type:

scalar or array of numbers

goodness_of_fit(statval, dof) [edit on github]

Return the reduced statistic and q value.

The reduced statisitc is conceptually simple, as it is just statistic / degrees-of-freedom, but it is not meaningful for all statistics, and it is only valid if there are any degrees of freedom.

Parameters:
• statval (float) – The statistic value. It is assumed to be finite.

• dof (int) – The number of degrees of freedom, which may be 0 or negative.

Returns:

• rstat (float or NaN or None) – The reduced statistic. If the statistic does not support a goodness of fit then the return value is `None`. If it does then NaN is returned if either the number of degrees of freedom is 0 (or less), or the statistic value is less than 0.

• qval (float or NaN or None) – The q value. If the statistic does not support a goodness of fit then the return values are `None`. If it does then NaN is returned if either the number of degrees of freedom is 0 (or less), or the statistic value is less than 0.

set_errfunc(func)[source] [edit on github]
set_statfunc(func)[source] [edit on github]