npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
npstat::GCVCopulaSmoother< F > Class Template Reference
Inheritance diagram for npstat::GCVCopulaSmoother< F >:
npstat::AbsCVCopulaSmoother npstat::AbsCopulaSmootherBase

Public Types

typedef AbsBandwidthGCVND< double, ArrayND< double > > GCVCalc
 
typedef F Filter
 

Protected Member Functions

 GCVCopulaSmoother (const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, double initialBw, const GCVCalc *cvCalc, bool becomeCvCalcOwner, double cvRange, unsigned nGCV, bool useConvolve)
 
 GCVCopulaSmoother (const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, const std::vector< double > &bandwidthValues, const GCVCalc *cvCalc, bool becomeCvCalcOwner, bool useConvolve)
 
void setFilter (unsigned i, Filter *filter, Filter *looFilter)
 
- Protected Member Functions inherited from npstat::AbsCVCopulaSmoother
 AbsCVCopulaSmoother (const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, double initialBw, double cvRange, unsigned nCV, bool useConvolve)
 
 AbsCVCopulaSmoother (const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, const std::vector< double > &bandwidthValues, bool useConvolve)
 

Additional Inherited Members

- Public Member Functions inherited from npstat::AbsCVCopulaSmoother
bool isConvolving () const
 
void setConvolving (const bool b)
 
const std::vector< double > & bandwidthValues () const
 
const std::vector< double > & lastCVValues () const
 
const std::vector< double > & lastRegularizedFractions () const
 
unsigned getNFilters () const
 
unsigned lastFilterChosen () const
 
- Public Member Functions inherited from npstat::AbsCopulaSmootherBase
 AbsCopulaSmootherBase (const unsigned *nBinsInEachDim, unsigned dim, double tolerance, unsigned maxNormCycles)
 
unsigned dim () const
 
ArrayShape copulaShape () const
 
void setArchive (gs::AbsArchive *ar, const char *category=0)
 
template<class Point >
const HistoND< double > & smooth (unsigned long uniqueId, std::vector< OrderedPointND< Point > > &in, double *bandwidthUsed=0)
 
template<class Point >
const HistoND< double > & weightedSmooth (unsigned long uniqueId, const std::vector< std::pair< const Point *, double > > &in, const unsigned *dimsToUse, unsigned nDimsToUse, double *bandwidthUsed=0)
 

Constructor & Destructor Documentation

◆ GCVCopulaSmoother() [1/2]

template<class F >
npstat::GCVCopulaSmoother< F >::GCVCopulaSmoother ( const unsigned *  nBinsInEachDim,
unsigned  dim,
double  marginTolerance,
unsigned  maxNormCycles,
double  initialBw,
const GCVCalc cvCalc,
bool  becomeCvCalcOwner,
double  cvRange,
unsigned  nGCV,
bool  useConvolve 
)
protected

Constructor arguments are as follows:

nBinsInEachDim – number of copula bins in each dimension

dim – copula dimensionality

marginTolerance – tolerance for the margin to be uniform

maxNormCycles – max number of copula normalization cycles

initialBw – "central" bandwidth for cross validation calculations (or the actual bandwidth used in case cross validation is not performed). Set this parameter to 0.0 in order to disable filtering altogether.

cvCalc – calculator for the quantity being optimized in the cross validation process. May be NULL in which case cross validation will not be used.

becomeCvCalcOwner – tells us whether we should destroy cvCalc in our own destructor

cvRange – we will scan bandwidth values between initialBw/cvRange and initialBw*cvRange uniformly in the log space.

nGCV – number of bandwidth values to try in the bandwidth scan. If this number is even, it will be increased by 1 internally so that the "central" bandwidth is included in the scan. If this parameter is 0 or 1, the value given by "initialBw" will be used.

useConvolve – if "true", use "convolve" method of the filter rather than "filter" method.

◆ GCVCopulaSmoother() [2/2]

template<class F >
npstat::GCVCopulaSmoother< F >::GCVCopulaSmoother ( const unsigned *  nBinsInEachDim,
unsigned  dim,
double  marginTolerance,
unsigned  maxNormCycles,
const std::vector< double > &  bandwidthValues,
const GCVCalc cvCalc,
bool  becomeCvCalcOwner,
bool  useConvolve 
)
protected

Constructor which explicitly specifies the complete set of bandwidth values to use in cross-validation

Member Function Documentation

◆ setFilter()

template<class F >
void npstat::GCVCopulaSmoother< F >::setFilter ( unsigned  i,
Filter *  filter,
Filter *  looFilter 
)
protected

Constructors of the derived classes should call this method for each bandwidth value. "i" is the bandwidth value number, while the bandwidth corresponding to this number should be obtained from the "bandwidthValues()" vector.

This base class will assume the ownership of the filter objects.


The documentation for this class was generated from the following file: