Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
univariate_summary.h
Go to the documentation of this file.
1 #pragma once
2 #include <optional>
3 #include <ostream>
4 #include <string>
5 #include <vector>
6 
7 namespace hgps::core {
8 
15  public:
18 
21  UnivariateSummary(const std::string name);
22 
25  UnivariateSummary(const std::vector<double> values);
26 
30  UnivariateSummary(const std::string name, const std::vector<double> values);
31 
34  std::string name() const noexcept;
35 
38  bool is_empty() const noexcept;
39 
42  unsigned int count_valid() const noexcept;
43 
46  unsigned int count_null() const noexcept;
47 
50  unsigned int count_total() const noexcept;
51 
54  double min() const noexcept;
55 
58  double max() const noexcept;
59 
62  double range() const noexcept;
63 
66  double sum() const noexcept;
67 
70  double average() const noexcept;
71 
74  double variance() const noexcept;
75 
78  double std_deviation() const noexcept;
79 
82  double std_error() const noexcept;
83 
86  double kurtosis() const noexcept;
87 
90  double skewness() const noexcept;
91 
93  void clear() noexcept;
94 
97  void append(double value) noexcept;
98 
101  void append(const std::optional<double> &option) noexcept;
102 
105  void append(const std::vector<double> &values) noexcept;
106 
108  void append_null() noexcept;
109 
112  void append_null(unsigned int count) noexcept;
113 
116  std::string to_string() const noexcept;
117 
122  friend std::ostream &operator<<(std::ostream &stream, const UnivariateSummary &summary);
123 
124  private:
125  std::string name_;
126  unsigned int null_count_{};
127  double min_{};
128  double max_{};
129  double moments_[5]{};
130 };
131 } // namespace hgps::core
Defines an univariate statistical summary data type.
Definition: univariate_summary.h:14
double variance() const noexcept
Gets the sample variance.
Definition: univariate_summary.cpp:47
unsigned int count_valid() const noexcept
Gets the number of valid data points included in the summary.
Definition: univariate_summary.cpp:27
bool is_empty() const noexcept
Determine whether the summary is empty.
Definition: univariate_summary.cpp:25
UnivariateSummary()
Initialises a new instance of the UnivariateSummary class.
Definition: univariate_summary.cpp:8
friend std::ostream & operator<<(std::ostream &stream, const UnivariateSummary &summary)
Output streams operator for UnivariateSummary type.
Definition: univariate_summary.cpp:154
double skewness() const noexcept
Gets the skewness.
Definition: univariate_summary.cpp:72
double std_deviation() const noexcept
Gets the sample standard deviation.
Definition: univariate_summary.cpp:55
double max() const noexcept
Gets the maximum.
Definition: univariate_summary.cpp:39
double average() const noexcept
Gets the average or mean.
Definition: univariate_summary.cpp:45
double range() const noexcept
Gets the summary data range.
Definition: univariate_summary.cpp:41
double kurtosis() const noexcept
Gets the kurtosis.
Definition: univariate_summary.cpp:59
std::string to_string() const noexcept
Convert this instance to a string representation.
Definition: univariate_summary.cpp:134
unsigned int count_total() const noexcept
Gets the total number of data points.
Definition: univariate_summary.cpp:33
void append_null() noexcept
Append a single null value to the summary.
Definition: univariate_summary.cpp:130
double std_error() const noexcept
Gets the standard error.
Definition: univariate_summary.cpp:57
std::string name() const noexcept
Gets the factor or variable name.
Definition: univariate_summary.cpp:23
double sum() const noexcept
Gets the sum value.
Definition: univariate_summary.cpp:43
void append(double value) noexcept
Append a new data point to the summary.
Definition: univariate_summary.cpp:89
void clear() noexcept
Clears current summary (empty)
Definition: univariate_summary.cpp:82
unsigned int count_null() const noexcept
Gets the number of null data points, not included in the summary.
Definition: univariate_summary.cpp:31
double min() const noexcept
Gets the minimum.
Definition: univariate_summary.cpp:37
Top-level namespace for Health-GPS Core C++ API.
Definition: analysis.h:7