Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
riskmodel.h
Go to the documentation of this file.
1 #pragma once
2 #include <map>
3 #include <string>
4 #include <unordered_map>
5 #include <vector>
6 
7 namespace host::poco {
8 /*
9  * POCO data types for models's JSON file parsing
10  *
11  * 1. Full hierarchical linear models definition
12  */
13 
15  double value{};
16  double pvalue{};
17  double tvalue{};
18  double std_error{};
19 };
20 
22  std::string formula;
23  std::unordered_map<std::string, CoefficientInfo> coefficients;
25  double rsquared{};
26 };
27 
28 struct Array2Info {
29  int rows{};
30  int cols{};
31  std::vector<double> data;
32 };
33 
35  std::vector<std::string> variables;
40  std::vector<double> variances;
41 };
42 
44  std::unordered_map<std::string, LinearModelInfo> models;
45  std::unordered_map<std::string, HierarchicalLevelInfo> levels;
46 };
47 
48 /*
49  * 2. Lite hierarchical linear models (Energy Balance) definition
50  */
51 
52 struct VariableInfo {
53  std::string name;
54  short level{};
55  std::string factor;
56 };
57 
59  std::string name;
60  std::map<std::string, double> coefficients;
62 };
63 
65  double percentage{};
66  std::vector<VariableInfo> variables;
67  std::map<std::string, std::map<std::string, std::vector<FactorDynamicEquationInfo>>> equations;
68 };
69 } // namespace host::poco
Plain old class object (POCO) types for loading configuration file.
Definition: jsonparser.cpp:3
Definition: riskmodel.h:28
std::vector< double > data
Definition: riskmodel.h:31
int rows
Definition: riskmodel.h:29
int cols
Definition: riskmodel.h:30
Definition: riskmodel.h:14
double pvalue
Definition: riskmodel.h:16
double value
Definition: riskmodel.h:15
double tvalue
Definition: riskmodel.h:17
double std_error
Definition: riskmodel.h:18
Definition: riskmodel.h:58
double residuals_standard_deviation
Definition: riskmodel.h:61
std::string name
Definition: riskmodel.h:59
std::map< std::string, double > coefficients
Definition: riskmodel.h:60
Definition: riskmodel.h:34
std::vector< std::string > variables
Definition: riskmodel.h:35
Array2Info correlation
Definition: riskmodel.h:39
Array2Info transition
Definition: riskmodel.h:38
Array2Info residual_distribution
Definition: riskmodel.h:36
Array2Info inverse_transition
Definition: riskmodel.h:37
std::vector< double > variances
Definition: riskmodel.h:40
Definition: riskmodel.h:43
std::unordered_map< std::string, LinearModelInfo > models
Definition: riskmodel.h:44
std::unordered_map< std::string, HierarchicalLevelInfo > levels
Definition: riskmodel.h:45
Definition: riskmodel.h:21
std::unordered_map< std::string, CoefficientInfo > coefficients
Definition: riskmodel.h:23
std::string formula
Definition: riskmodel.h:22
double residuals_standard_deviation
Definition: riskmodel.h:24
double rsquared
Definition: riskmodel.h:25
Definition: riskmodel.h:64
double percentage
Definition: riskmodel.h:65
std::map< std::string, std::map< std::string, std::vector< FactorDynamicEquationInfo > > > equations
Definition: riskmodel.h:67
std::vector< VariableInfo > variables
Definition: riskmodel.h:66
Definition: riskmodel.h:52
short level
Definition: riskmodel.h:54
std::string name
Definition: riskmodel.h:53
std::string factor
Definition: riskmodel.h:55