npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
SequentialCopulaSmoother.hh
Go to the documentation of this file.
1 #ifndef NPSTAT_SEQUENTIALCOPULASMOOTHER_HH_
2 #define NPSTAT_SEQUENTIALCOPULASMOOTHER_HH_
3 
4 /*!
5 // \file SequentialCopulaSmoother.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 // September 2010
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 CVCopulaSmoother<SequentialPolyFilterND>
29  {
30  public:
32 
33  inline virtual ~SequentialCopulaSmoother() {}
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  // doublyStochastic -- if "true", a doubly stochastic approximation
84  // will be derived for every original filter
85  */
86 #ifdef SWIG
87  private:
88 #endif // SWIG
89  SequentialCopulaSmoother(const unsigned* nBinsInEachDim,
90  unsigned dim, double marginTolerance,
91  unsigned maxNormCycles,
92  int symbetaPower, double maxFilterDegree,
93  const BoundaryHandling& boundaryMethod,
94  double initialBw, const double* bwCoeffs,
95  const CVCalc* cvCalc, bool becomeCvCalcOwner,
96  double cvRange, unsigned nCV, bool useConvolve,
97  bool doublyStochastic=true);
98 
99 #ifdef SWIG
100  public:
102  const unsigned* nBinsInEachDim, unsigned dim,
103  double marginTolerance, unsigned maxNormCycles,
104  int symbetaPower, double maxFilterDegree,
105  const BoundaryHandling& boundaryMethod, double initialBw,
106  const double* bwCoeffs, unsigned nBwCoeffs,
107  const CVCalc* cvCalc, bool becomeCvCalcOwner,
108  double cvRange, unsigned nCV, bool useConvolve,
109  bool doublyStochastic=true);
110 #endif // SWIG
111  };
112 }
113 
114 #include "npstat/stat/SequentialCopulaSmoother.icc"
115 
116 #endif // NPSTAT_SEQUENTIALCOPULASMOOTHER_HH_
Interface definition for 1-d continuous statistical distributions.
Smoothing copulas with AbsBandwidthCVND cross-validation.
Sequential local polynomial filtering (regression) on uniform hyperrectangular grids.
Definition: BoundaryHandling.hh:21
Definition: CVCopulaSmoother.hh:20
Definition: SequentialCopulaSmoother.hh:29
SequentialCopulaSmoother(const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, int symbetaPower, double maxFilterDegree, const BoundaryHandling &boundaryMethod, double initialBw, const double *bwCoeffs, const CVCalc *cvCalc, bool becomeCvCalcOwner, double cvRange, unsigned nCV, bool useConvolve, bool doublyStochastic=true)
Definition: AbsArrayProjector.hh:14
Definition: AbsBandwidthCV.hh:176