SedSat3 1.1.6
Sediment Source Apportionment Tool - Advanced statistical methods for environmental pollution research
Loading...
Searching...
No Matches
multiplelinearregressionset.cpp
Go to the documentation of this file.
2
7
13{
14 map<string,MultipleLinearRegression>::operator=(mp);
16 Source = mp.Source;
17 return *this;
18}
20{
21 QJsonObject out;
22 for (map<string,MultipleLinearRegression>::const_iterator it = cbegin(); it!= cend(); it++)
23 {
24 out[QString::fromStdString(it->first)] = it->second.toJsonObject();
25 }
26 return out;
27}
28bool MultipleLinearRegressionSet::ReadFromJsonObject(const QJsonObject &jsonobject)
29{
30 clear();
31 for(QString key: jsonobject.keys() ) {
33 MLR.ReadFromJsonObject(jsonobject[key].toObject());
34 operator[](key.toStdString()) = MLR;
35 }
36 return true;
37}
38
40{
41 if (count(key.toStdString())==0)
42 { operator[](key.toStdString()) = MLR;
43 return true;
44 }
45 return false;
46
47}
48
50{
51 string out;
52 for (map<string,MultipleLinearRegression>::const_iterator it = cbegin(); it!= cend(); it++)
53 {
54 out += it->first + ":\n";
55 out += it->second.ToString();
56 out += "_______________________________________\n";
57 }
58 return out;
59}
60
62{
63 QTableWidget *tablewidget = new QTableWidget();
64 tablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
65 if (begin()->second.CoefficientsIntercept().size()>2)
66 tablewidget->setColumnCount(5);
67 else
68 tablewidget->setColumnCount(3);
69
70 tablewidget->setRowCount(size());
71 QStringList headers;
72 QStringList sources;
73 int i=0;
74 for (map<string,MultipleLinearRegression>::iterator it=begin(); it!=end(); it++ )
75 {
76 sources<<QString::fromStdString(it->first);
77 tablewidget->setItem(i,0, new QTableWidgetItem(QString::number(it->second.CoefficientsIntercept()[0])));
78 tablewidget->setItem(i,1, new QTableWidgetItem(QString::number(it->second.CoefficientsIntercept()[1])));
79 tablewidget->setItem(i,2, new QTableWidgetItem(QString::number(it->second.P_Value()[0])));
80 if (it->second.P_Value()[0]< it->second.PValueThreshold())
81 tablewidget->item(i, 2)->setForeground(Qt::red);
82 if (it->second.CoefficientsIntercept().size() > 2)
83 {
84 tablewidget->setItem(i, 3, new QTableWidgetItem(QString::number(it->second.CoefficientsIntercept()[2])));
85 tablewidget->setItem(i, 4, new QTableWidgetItem(QString::number(it->second.P_Value()[1])));
86 if (it->second.P_Value()[1] < it->second.PValueThreshold())
87 tablewidget->item(i, 4)->setForeground(Qt::red);
88 }
89 i++;
90 }
91 if (begin()->second.CoefficientsIntercept().size() > 2)
92 headers << "Intercept" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[0]) + " coefficient" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[0]) + " P-value" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[1]) + " coefficient" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[1]) + " P-value";
93 else
94 headers << "Intercept" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[0]) + " coefficient" << QString::fromStdString(begin()->second.GetIndependentVariableNames()[0]) + " P-value" << "Size coefficient" << "Size P-value";
95 tablewidget->setHorizontalHeaderLabels(headers);
96 tablewidget->setVerticalHeaderLabels(sources);
97 return tablewidget;
98}
99
101{
102 string out;
103 int counter = 0;
104 for (map<string,MultipleLinearRegression>::iterator it = begin(); it!= end(); it++)
105 {
106 if (counter==i)
107 return it->first;
108 counter++;
109 }
110 return "";
111}
Abstract base class providing common serialization and visualization interface.
Definition interface.h:65
Interface & operator=(const Interface &intf)
Assignment operator.
Definition interface.cpp:14
bool ReadFromJsonObject(const QJsonObject &jsonobject) override
Deserialize object from JSON format.
MultipleLinearRegressionSet & operator=(const MultipleLinearRegressionSet &mp)
string ToString() const override
Convert object to string representation.
QTableWidget * ToTable() override
Create a Qt table widget representation of the data.
QJsonObject toJsonObject() const override
Serialize object to JSON format.
bool Append(QString key, const MultipleLinearRegression &MLR)
string ToString() const override
Convert object to string representation.
bool ReadFromJsonObject(const QJsonObject &jsonobject) override
Deserialize object from JSON format.