14 #ifndef PROB_ESTIMATION_H_INCLUDED
15 #define PROB_ESTIMATION_H_INCLUDED
34 #include <boost/accumulators/accumulators.hpp>
35 #include <boost/accumulators/statistics/stats.hpp>
36 #include <boost/accumulators/statistics/mean.hpp>
37 #include <boost/accumulators/statistics/variance.hpp>
38 #include <boost/bind.hpp>
39 #include <boost/ref.hpp>
44 template<
class InIter>
48 namespace ba = boost::accumulators;
50 ba::accumulator_set<double, ba::stats<ba::tag::variance> > acc;
51 std::for_each(first, last, boost::bind<void>(boost::ref(acc), _1));
57 template<
class InIter>
60 namespace ba = boost::accumulators;
62 ba::accumulator_set<double, ba::stats<ba::tag::variance> > acc;
63 std::for_each(first, last, boost::bind<void>(boost::ref(acc), _1));
66 double v = ba::variance(acc);
70 "Cannot compute Beta distribution parameters with this method.");
75 double alpha = Beta_distribution::find_alpha(m, v);
76 double beta = Beta_distribution::find_beta(m, v);
82 template<
class InIter>
85 double N = std::distance(first, last);
90 std::plus<double>(), _1,
92 static_cast<double(*)(
double)
>(std::log),
95 double s = std::log(sum/N) - lsum/N;
96 double k = (3 - s + std::sqrt((s - 3)*(s - 3) + 24*s)) / (12*s);
103 template<
size_t D,
class InIter>
106 const size_t N = std::distance(first, last);
115 double kappa = (R*(3 - R*R)) / (1 - R*R);
double magnitude() const
return the l2-norm of this vector
Definition: m_vector_d.impl.h:369
Definition of various standard probability distributions.
double accumulate(const Matrix_d< R, C, T > &mat, double init)
Definition: m_matrix_d.impl.h:432
for k
Definition: APPgetLargeConnectedEdges.m:61
Definition: prob_distribution.h:984
Gamma_distribution mle_gamma(InIter first, InIter last)
Definition: prob_estimation.h:83
Value_type mean(Iterator begin, Iterator end, const Value_type &)
Definition: prob_stat.h:56
#define IFT(a, ex, msg)
Definition: l_exception.h:101
Von_mises_fisher_distribution< D > mle_vmf(InIter first, InIter last)
Definition: prob_estimation.h:104
boost::math::beta_distribution Beta_distribution
Definition: prob_distribution.h:61
sum(zmx.*zmy) sum(zmy.^2)]
boost::math::normal Normal_distribution
Definition: prob_distribution.h:68
Definition: g_quaternion.h:37
for m
Definition: APPgetLargeConnectedEdges.m:64
Support for error handling exception classes in libKJB.
boost::math::gamma_distribution Gamma_distribution
Definition: prob_distribution.h:65
Normal_distribution mle_normal(InIter first, InIter last)
Definition: prob_estimation.h:46
Object thrown when computation fails somehow during execution.
Definition: l_exception.h:321
Beta_distribution mle_beta(InIter first, InIter last)
Definition: prob_estimation.h:58