1 #ifndef __JFIT__JMESTIMATOR__
2 #define __JFIT__JMESTIMATOR__
13 namespace JPP {
using namespace JFIT; }
34 virtual double getRho(
const double z)
const = 0;
43 virtual double getPsi(
const double z)
const = 0;
55 virtual double getRho(
const double z)
const {
return 0.5*z*z; }
56 virtual double getPsi(
const double z)
const {
return z; }
68 virtual double getRho(
const double z)
const {
return log (1.0 + 0.5*z*z); }
69 virtual double getPsi(
const double z)
const {
return z / (1.0 + 0.5*z*z); }
81 virtual double getRho(
const double z)
const {
return sqrt(1.0 + 0.5*z*z) - 1.0; }
82 virtual double getPsi(
const double z)
const {
return 0.5 * z / sqrt(1.0 + 0.5*z*z); }
95 virtual double getRho(
const double z)
const {
return z; }
96 virtual double getPsi(
const double z)
const {
return 1.0; }
117 virtual double getRho(
const double z)
const override
119 const double w = 0.5 *
k*
k / 3.0;
123 const double u = z/
k;
124 const double v = 1.0 -
u*
u;
126 return w * (1.0 -
v*
v*
v);
132 virtual double getPsi(
const double z)
const override
136 const double u = z/
k;
137 const double v = 1.0 -
u*
u;
164 virtual double getRho(
const double z)
const override
166 const double w = exp(-0.5*z*z);
171 virtual double getPsi(
const double z)
const override
173 const double w = exp(-0.5*z*z);
175 return z *
w / (
w +
p);
Auxiliary classes and methods for linear and iterative data regression.
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
JMEstimator_t
Definition of the various M-Estimators available to use.
@ EM_NORMALWITHBACKGROUND
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
Normal M-estimator with background.
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
JMEstimatorNormalWithBackground(const double p)
Constructor.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getRho(const double z) const
Get maximum likelihood estimate.
virtual double getPsi(const double z) const
Get derivative of maximum likelihood estimate.
Tukey's biweight M-estimator.
virtual double getRho(const double z) const override
Get maximum likelihood estimate.
virtual double getPsi(const double z) const override
Get derivative of maximum likelihood estimate.
JMEstimatorTukey(const double k)
Constructor.
Interface for maximum likelihood estimator (M-estimator).
virtual double getRho(const double z) const =0
Get maximum likelihood estimate.
virtual double getPsi(const double z) const =0
Get derivative of maximum likelihood estimate.
virtual ~JMEstimator()
Virtual destructor.