npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
SequentialGroupedCopulaSmoother.hh
Go to the documentation of this file.
1 #ifndef NPSTAT_SEQUENTIALGROUPEDCOPULASMOOTHER_HH_
2 #define NPSTAT_SEQUENTIALGROUPEDCOPULASMOOTHER_HH_
3 
4 /*!
5 // \file SequentialGroupedCopulaSmoother.hh
6 //
7 // \brief LOrPE copula smoother with cross-validation using tensor product
8 // filters
9 //
10 // The cross-validation is implemented in the base class, this class only
11 // needs to build the filters for different bandwidth values.
12 //
13 // Author: I. Volobouev
14 //
15 // June 2015
16 */
17 
21 
22 namespace npstat {
23  /**
24  // This class builds multivariate copula filters
25  // which are tensor products of univariate filters
26  */
28  public GCVCopulaSmoother<SequentialPolyFilterND>
29  {
30  public:
32 
33  inline virtual ~SequentialGroupedCopulaSmoother() {}
34 
35  /**
36  // Constructor arguments are as follows:
37  //
38  // nBinsInEachDim -- number of copula bins in each dimension
39  //
40  // dim -- copula dimensionality
41  //
42  // marginTolerance -- tolerance for the margin to be uniform
43  //
44  // maxNormCycles -- max number of copula normalization cycles
45  //
46  // symbetaPower -- these parameters will be passed to the
47  // maxFilterDegree "symbetaLOrPEFilter1D" function when the
48  // boundaryMethod filters will be constructed
49  //
50  // initialBw -- "central" bandwidth for cross validation
51  // calculations (or the actual bandwidth used
52  // in case cross validation is not performed).
53  // Set this parameter to 0.0 in order to
54  // disable filtering altogether.
55  //
56  // bwCoeffs -- bandwidth factors for each dimension. This
57  // array must have "dim" positive numbers.
58  // The argument can also be NULL in which case
59  // it is assumed that all factors are 1.0.
60  //
61  // cvCalc -- calculator for the quantity being optimized
62  // in the cross validation process. May be NULL
63  // in which case cross validation will not
64  // be used.
65  //
66  // becomeCvCalcOwner -- tells us whether we should destroy cvCalc
67  // in our own destructor
68  //
69  // cvRange -- we will scan bandwidth values between
70  // initialBw/cvRange and initialBw*cvRange
71  // uniformly in the log space.
72  //
73  // nCV -- number of bandwidth values to try in the
74  // bandwidth scan. If this number is even, it
75  // will be increased by 1 internally so that
76  // the "central" bandwidth is included in
77  // the scan. If this parameter is 0 or 1, the
78  // value given by "initialBw" will be used.
79  //
80  // useConvolve -- if "true", use "convolve" method of the
81  // filter rather than "filter" method.
82  */
83 #ifdef SWIG
84  private:
85 #endif // SWIG
86  SequentialGroupedCopulaSmoother(const unsigned* nBinsInEachDim,
87  unsigned dim, double marginTolerance,
88  unsigned maxNormCycles,
89  int symbetaPower, double maxFilterDegree,
90  const BoundaryHandling& boundaryMethod,
91  double initialBw, const double* bwCoeffs,
92  const GCVCalc* cvCalc, bool becomeCvCalcOwner,
93  double cvRange, unsigned nCV, bool useConvolve);
94 
95 #ifdef SWIG
96  public:
98  const unsigned* nBinsInEachDim, unsigned dim,
99  double marginTolerance, unsigned maxNormCycles,
100  int symbetaPower, double maxFilterDegree,
101  const BoundaryHandling& boundaryMethod, double initialBw,
102  const double* bwCoeffs, unsigned nBwCoeffs,
103  const GCVCalc* cvCalc, bool becomeCvCalcOwner,
104  double cvRange, unsigned nCV, bool useConvolve);
105 #endif // SWIG
106  };
107 }
108 
109 #include "npstat/stat/SequentialGroupedCopulaSmoother.icc"
110 
111 #endif // NPSTAT_SEQUENTIALGROUPEDCOPULASMOOTHER_HH_
Interface definition for 1-d continuous statistical distributions.
Smoothing copulas with AbsBandwidthGCVND cross-validation.
Sequential local polynomial filtering (regression) on uniform hyperrectangular grids.
Definition: BoundaryHandling.hh:21
Definition: GCVCopulaSmoother.hh:20
Definition: SequentialGroupedCopulaSmoother.hh:29
SequentialGroupedCopulaSmoother(const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, int symbetaPower, double maxFilterDegree, const BoundaryHandling &boundaryMethod, double initialBw, const double *bwCoeffs, const GCVCalc *cvCalc, bool becomeCvCalcOwner, double cvRange, unsigned nCV, bool useConvolve)
Definition: AbsArrayProjector.hh:14
Definition: AbsBandwidthGCV.hh:118