npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
LOrPEGroupedCopulaSmoother.hh
Go to the documentation of this file.
1 #ifndef NPSTAT_LORPEGROUPEDCOPULASMOOTHER_HH_
2 #define NPSTAT_LORPEGROUPEDCOPULASMOOTHER_HH_
3 
4 /*!
5 // \file LOrPEGroupedCopulaSmoother.hh
6 //
7 // \brief Constant bandwidth multivariate LOrPE copula smoother with
8 // cross-validation
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 filters for copula smoothing which
25  // utilize systems of discrete orthogonal multivariate polynomials
26  */
27  template <unsigned MaxLOrPEDeg>
29  public GCVCopulaSmoother<LocalPolyFilterND<MaxLOrPEDeg> >
30  {
31  public:
33 
34  /**
35  // Constructor arguments are as follows:
36  //
37  // nBinsInEachDim -- number of copula bins in each dimension
38  //
39  // dim -- copula dimensionality
40  //
41  // marginTolerance -- tolerance for the margin to be uniform
42  //
43  // maxNormCycles -- max number of copula normalization cycles
44  //
45  // kernel -- kernel to use for generating the filters.
46  // This should be a standard kernel, with
47  // location of 0 in each dimension. The scales
48  // should normally be set to 1 (unless you
49  // want different scale factors for different
50  // dimensions).
51  //
52  // taper, maxDegree -- LocalPolyFilterND parameters
53  //
54  // initialBw -- "central" bandwidth for cross validation
55  // calculations (or the actual bandwidth used
56  // in case cross validation is not performed).
57  // Set this parameter to 0.0 in order to
58  // disable filtering altogether.
59  //
60  // cvCalc -- calculator for the quantity being optimized
61  // in the cross validation process. May be NULL
62  // in which case cross validation will not
63  // be used.
64  //
65  // becomeCvCalcOwner -- tells us whether we should destroy cvCalc
66  // in the destructor of the base class.
67  //
68  // cvRange -- we will scan bandwidth values between
69  // initialBw/cvRange and initialBw*cvRange
70  // uniformly in the log space.
71  //
72  // nCV -- number of bandwidth values to try in the
73  // bandwidth scan. If this number is even, it
74  // will be increased by 1 internally so that
75  // the "central" bandwidth is included in
76  // the scan. If this parameter is 0 or 1, the
77  // value given by "initialBw" will be used.
78  //
79  // useConvolve -- if "true", use "convolve" method of the
80  // filter rather than "filter" method.
81  */
83  const unsigned* nBinsInEachDim, unsigned dim,
84  double marginTolerance, unsigned maxNormCycles,
85  const AbsDistributionND& kernel,
86  const double* taper, unsigned maxDegree,
87  double initialBw,
88  const typename Base::GCVCalc* cvCalc,
89  bool becomeCvCalcOwner,
90  double cvRange, unsigned nCV, bool useConvolve);
91 
92  inline virtual ~LOrPEGroupedCopulaSmoother() {}
93  };
94 }
95 
96 #include "npstat/stat/LOrPEGroupedCopulaSmoother.icc"
97 
98 #endif // NPSTAT_LORPEGROUPEDCOPULASMOOTHER_HH_
Interface definition for multivariate continuous statistical distributions.
Smoothing copulas with AbsBandwidthGCVND cross-validation.
Local polynomial filtering (regression) on uniform hyperrectangular grids.
Definition: AbsDistributionND.hh:26
Definition: GCVCopulaSmoother.hh:20
Definition: LOrPEGroupedCopulaSmoother.hh:30
LOrPEGroupedCopulaSmoother(const unsigned *nBinsInEachDim, unsigned dim, double marginTolerance, unsigned maxNormCycles, const AbsDistributionND &kernel, const double *taper, unsigned maxDegree, double initialBw, const typename Base::GCVCalc *cvCalc, bool becomeCvCalcOwner, double cvRange, unsigned nCV, bool useConvolve)
Definition: AbsArrayProjector.hh:14
Definition: AbsBandwidthGCV.hh:118