A++ » INCLUDE » TRobustEstimator

class TRobustEstimator: public TObject


  TRobustEstimator

 Minimum Covariance Determinant Estimator - a Fast Algorithm
 invented by Peter J.Rousseeuw and Katrien Van Dreissen
 "A Fast Algorithm for the Minimum covariance Determinant Estimator"
 Technometrics, August 1999, Vol.41, NO.3


Function Members (Methods)

public:
virtual~TRobustEstimator()
voidTObject::AbstractMethod(const char* method) const
voidAddColumn(Double_t* col)
voidAddRow(Double_t* row)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
voidEvaluate()
voidEvaluateUni(Int_t nvectors, Double_t* data, Double_t& mean, Double_t& sigma, Int_t hh = 0)
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGetBDPoint()
Double_tGetChiQuant(Int_t i) const
const TMatrixDSym*GetCorrelation() const
voidGetCorrelation(TMatrixDSym& matr)
const TMatrixDSym*GetCovariance() const
voidGetCovariance(TMatrixDSym& matr)
const TMatrixD&GetData()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const TVectorD*GetHyperplane() const
voidGetHyperplane(TVectorD& vec)
virtual const char*TObject::GetIconName() const
const TVectorD*GetMean() const
voidGetMean(TVectorD& means)
virtual const char*TObject::GetName() const
Int_tGetNHyp()
Int_tGetNOut()
Int_tGetNumberObservations() const
Int_tGetNvar() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TArrayI*GetOuliers() const
const TVectorD*GetRDistances() const
voidGetRDistances(TVectorD& rdist)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TRobustEstimator&operator=(const TRobustEstimator&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp) const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TRobustEstimator()
TRobustEstimator(const TRobustEstimator&)
TRobustEstimator(Int_t nvectors, Int_t nvariables, Int_t hh = 0)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
voidAddToSscp(TMatrixD& sscp, TVectorD& vec)
voidClassic()
voidClearSscp(TMatrixD& sscp)
voidCorrel()
voidCovar(TMatrixD& sscp, TVectorD& m, TMatrixDSym& cov, TVectorD& sd, Int_t nvec)
voidCreateOrtSubset(TMatrixD& dat, Int_t* index, Int_t hmerged, Int_t nmerged, TMatrixD& sscp, Double_t* ndist)
voidCreateSubset(Int_t ntotal, Int_t htotal, Int_t p, Int_t* index, TMatrixD& data, TMatrixD& sscp, Double_t* ndist)
Double_tCStep(Int_t ntotal, Int_t htotal, Int_t* index, TMatrixD& data, TMatrixD& sscp, Double_t* ndist)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
Int_tExact(Double_t* ndist)
Int_tExact2(TMatrixD& mstockbig, TMatrixD& cstockbig, TMatrixD& hyperplane, Double_t* deti, Int_t nbest, Int_t kgroup, TMatrixD& sscp, Double_t* ndist)
Double_tKOrdStat(Int_t ntotal, Double_t* arr, Int_t k, Int_t* work)
voidTObject::MakeZombie()
Int_tPartition(Int_t nmini, Int_t* indsubdat)
Int_tRDist(TMatrixD& sscp)
voidRDraw(Int_t* subdat, Int_t ngroup, Int_t* indsubdat)

Data Members

public:
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
TMatrixDSymfCorrelationcorrelation matrix
TMatrixDSymfCovariancecovariance matrix estimate
TMatrixDfDatathe original data
Int_tfExactif there was an exact fit, stores the number of points on a hyperplane
Int_tfHalgorithm parameter, determining the subsample size
TVectorDfHyperplanein case more than fH observations lie on a hyperplane
TMatrixDSymfInvcovarianceinverse of the covariance matrix
TVectorDfMeanlocation estimate (mean values)
Int_tfNnumber of observations
Int_tfNvarnumber of variables
TArrayIfOutarray of indexes of ouliers, size <0.5*n
TVectorDfRdarray of robust distances, size n
TVectorDfSdarray of standard deviations
Int_tfVarTempnumber of variables already added to the data matrix
Int_tfVecTempnumber of observations already added to the data matrix

Class Charts

Inheritance Chart:
TObject
TRobustEstimator

Function documentation

void AddToSscp(TMatrixD& sscp, TVectorD& vec)
functions needed for evaluation
void ClearSscp(TMatrixD& sscp)
void Classic()
void Covar(TMatrixD& sscp, TVectorD& m, TMatrixDSym& cov, TVectorD& sd, Int_t nvec)
void Correl()
void CreateSubset(Int_t ntotal, Int_t htotal, Int_t p, Int_t* index, TMatrixD& data, TMatrixD& sscp, Double_t* ndist)
Double_t CStep(Int_t ntotal, Int_t htotal, Int_t* index, TMatrixD& data, TMatrixD& sscp, Double_t* ndist)
Int_t Exact(Double_t* ndist)
Int_t Exact2(TMatrixD& mstockbig, TMatrixD& cstockbig, TMatrixD& hyperplane, Double_t* deti, Int_t nbest, Int_t kgroup, TMatrixD& sscp, Double_t* ndist)
Int_t RDist(TMatrixD& sscp)
void RDraw(Int_t* subdat, Int_t ngroup, Int_t* indsubdat)
Double_t KOrdStat(Int_t ntotal, Double_t* arr, Int_t k, Int_t* work)
TRobustEstimator()
TRobustEstimator(Int_t nvectors, Int_t nvariables, Int_t hh = 0)
virtual ~TRobustEstimator()
{;}
void AddColumn(Double_t* col)
void AddRow(Double_t* row)
void Evaluate()
void EvaluateUni(Int_t nvectors, Double_t* data, Double_t& mean, Double_t& sigma, Int_t hh = 0)
Int_t GetBDPoint()
const TMatrixD & GetData()
 returns a reference to the data matrix
{ return fData; }
void GetCovariance(TMatrixDSym& matr)
const TMatrixDSym* GetCovariance() const
{return &fCovariance;}
void GetCorrelation(TMatrixDSym& matr)
const TMatrixDSym* GetCorrelation() const
{return &fCorrelation;}
void GetHyperplane(TVectorD& vec)
const TVectorD* GetHyperplane() const
Int_t GetNHyp()
{return fExact;}
void GetMean(TVectorD& means)
const TVectorD* GetMean() const
{return &fMean;}
void GetRDistances(TVectorD& rdist)
const TVectorD* GetRDistances() const
{return &fRd;}
Int_t GetNumberObservations() const
{return fN;}
Int_t GetNvar() const
{return fNvar;}
const TArrayI* GetOuliers() const
{return &fOut;}
Int_t GetNOut()
ONLY those with robust distances significantly larger than the
cutoff value, should be considered outliers!
Double_t GetChiQuant(Int_t i) const