RegressionPipeline
A RegressionPipeline object is all you need in order to perform a fullRegression on a set of events.
#include "../../pointprocess/InterEventDistributions.h"
#include "../../pointprocess/RegressionPipeline.h"
#include "../../pointprocess/WeightsProducer.h"
#include "../../tests/testData.h"
#include <vector>
#include "../../pointprocess/serialize.h"
int main() {
auto td = getTestData();
auto pip = RegressionPipeline(
Distributions::InverseGaussian, // distribution
9, // AR_ORDER
true // hasTheta0
);
auto ppRes = pip.fullRegression(
td.testEvents, // event times
60.0, // windowLength
0.005, // delta
true, // rightCensoring
1000, // maxIter
WeightsProducer(0.98)
);
// Serialization...
ppResData2csv(ppRes, std::string("myData.csv"));
ppResTaus2csv(ppRes, std::string("myTaus.csv"));
}
The output of the fullRegression() method is a PointProcessResult:
struct PointProcessResult{
std::vector<std::shared_ptr<RegressionResult>> results;
std::vector<double> taus;
Distributions distribution;
double percOut;
double ksDistance;
double t0;
double autoCorr;
unsigned char AR_ORDER;
bool hasTheta0;
double windowLength;
double delta;
// ...
}