Stan
2.5.0
probability, sampling & optimization
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
stan
prob
welford_var_estimator.hpp
Go to the documentation of this file.
1
#ifndef STAN__PROB__WELFORD__VAR__ESTIMATOR__BETA
2
#define STAN__PROB__WELFORD__VAR__ESTIMATOR__BETA
3
4
#include <vector>
5
#include <
stan/math/matrix/Eigen.hpp
>
6
7
namespace
stan {
8
9
namespace
prob {
10
11
class
welford_var_estimator
{
12
13
public
:
14
15
welford_var_estimator
(
int
n):
_m
(Eigen::VectorXd::Zero(n)),
16
_m2
(Eigen::VectorXd::Zero(n))
17
{
restart
(); }
18
19
void
restart
() {
20
_num_samples
= 0;
21
_m
.setZero();
22
_m2
.setZero();
23
}
24
25
void
add_sample
(
const
Eigen::VectorXd& q) {
26
27
++
_num_samples
;
28
29
Eigen::VectorXd delta(q -
_m
);
30
_m
+= delta /
_num_samples
;
31
_m2
+= delta.cwiseProduct(q -
_m
);
32
33
}
34
35
int
num_samples
() {
return
_num_samples
; }
36
37
void
sample_mean
(Eigen::VectorXd&
mean
) { mean =
_m
; }
38
39
void
sample_variance
(Eigen::VectorXd& var) {
40
if
(
_num_samples
> 1)
41
var =
_m2
/ (
_num_samples
- 1.0);
42
}
43
44
protected
:
45
46
double
_num_samples
;
47
48
Eigen::VectorXd
_m
;
49
Eigen::VectorXd
_m2
;
50
51
};
52
53
}
// prob
54
55
}
// stan
56
57
58
#endif
stan::prob::welford_var_estimator::add_sample
void add_sample(const Eigen::VectorXd &q)
Definition:
welford_var_estimator.hpp:25
stan::prob::welford_var_estimator::num_samples
int num_samples()
Definition:
welford_var_estimator.hpp:35
stan::prob::welford_var_estimator::_num_samples
double _num_samples
Definition:
welford_var_estimator.hpp:46
stan::prob::welford_var_estimator::_m
Eigen::VectorXd _m
Definition:
welford_var_estimator.hpp:48
stan::prob::welford_var_estimator::sample_variance
void sample_variance(Eigen::VectorXd &var)
Definition:
welford_var_estimator.hpp:39
stan::prob::welford_var_estimator::sample_mean
void sample_mean(Eigen::VectorXd &mean)
Definition:
welford_var_estimator.hpp:37
stan::prob::welford_var_estimator::_m2
Eigen::VectorXd _m2
Definition:
welford_var_estimator.hpp:49
stan::math::mean
boost::math::tools::promote_args< T >::type mean(const std::vector< T > &v)
Returns the sample mean (i.e., average) of the coefficients in the specified standard vector...
Definition:
mean.hpp:23
Eigen.hpp
stan::prob::welford_var_estimator
Definition:
welford_var_estimator.hpp:11
stan::prob::welford_var_estimator::welford_var_estimator
welford_var_estimator(int n)
Definition:
welford_var_estimator.hpp:15
stan::prob::welford_var_estimator::restart
void restart()
Definition:
welford_var_estimator.hpp:19
[
Stan Home Page
]
© 2011–2014, Stan Development Team.