npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
BandwidthGCVLeastSquares1D.hh
Go to the documentation of this file.
1 #ifndef NPSTAT_BANDWIDTHGCVLEASTSQUARES1D_HH_
2 #define NPSTAT_BANDWIDTHGCVLEASTSQUARES1D_HH_
3 
4 /*!
5 // \file BandwidthGCVLeastSquares1D.hh
6 //
7 // \brief Cross-validating one-dimensional density estimates of grouped data
8 // by optimizing the L2 distance (MISE)
9 //
10 // Author: I. Volobouev
11 //
12 // June 2015
13 */
14 
16 
17 namespace npstat {
18  /**
19  // Class for calculating KDE or LOrPE cross-validation MISE approximations
20  // for 1-dimensional density estimates. operator() returns -MISE estimate
21  // (a quantity to be maximized). This class is intended for use inside
22  // degree and/or bandwidth scans.
23  */
24  template<typename Numeric, typename Num2>
25  struct BandwidthGCVLeastSquares1D : public AbsBandwidthGCV1D<Numeric,Num2>
26  {
27  inline virtual ~BandwidthGCVLeastSquares1D() {}
28 
29  // Unweighted samples
30  virtual double operator()(
31  const HistoND<Numeric>& histo,
32  const Num2* densityEstimate,
33  const Num2* leaveOneOutEstimate,
34  unsigned lenEstimate,
35  const AbsPolyFilter1D& filterUsed) const;
36 
37  // Weighted samples
38  virtual double operator()(
39  const HistoND<Numeric>& histo,
40  double effectiveSampleSize,
41  const Num2* densityEstimate,
42  const Num2* leaveOneOutEstimate,
43  unsigned lenEstimate,
44  const AbsPolyFilter1D& filterUsed) const;
45  };
46 }
47 
48 #include "npstat/stat/BandwidthGCVLeastSquares1D.icc"
49 
50 #endif // NPSTAT_BANDWIDTHGCVLEASTSQUARES1D_HH_
Interface definitions for cross-validation with grouped data.
Definition: HistoND.hh:46
Definition: AbsArrayProjector.hh:14
Definition: AbsBandwidthGCV.hh:38
Definition: AbsPolyFilter1D.hh:27
Definition: BandwidthGCVLeastSquares1D.hh:26
virtual double operator()(const HistoND< Numeric > &histo, const Num2 *densityEstimate, const Num2 *leaveOneOutEstimate, unsigned lenEstimate, const AbsPolyFilter1D &filterUsed) const
virtual double operator()(const HistoND< Numeric > &histo, double effectiveSampleSize, const Num2 *densityEstimate, const Num2 *leaveOneOutEstimate, unsigned lenEstimate, const AbsPolyFilter1D &filterUsed) const