ts-aggregator/project_template/Aic.h

40 lines
1.9 KiB
C
Raw Permalink Normal View History

2022-12-13 12:36:06 +04:00
#ifndef AIC_H
#define AIC_H
#include "Estimation.h"
#include <vector>
using namespace std;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Estimation.
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
class Aic : public Estimation {
private:
static double getMinValue(vector<double> AicWeights); // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//For fuzzy adoptive weights calculate
//Delta koeff
static double delta;
static double N;
static double relativeError(double value, double forecastedValue);
static double forecastedTendency(vector<double> realSeria);
static double grayTendency(double forecastedTendency, vector<double> timeSeria, vector<vector<double>> forecastedSeries);
static double grayBasicWeight(double relativeError, vector<double> timeSeria, vector<vector<double>> forecastedSeries);
static double adaptiveControlCoefficient(int i);
static double beta(vector<double> timeSeria, vector<vector<double>> forecastedSeries);
static double alpha(vector<double> timeSeria, vector<vector<double>> forecastedSeries);
public:
Aic();
~Aic();
static int getParamsCount(vector<double> model);
static double logLikNLS(vector<double> model, vector<double> weights);
static double logLikLM(vector<double> model, vector<double> weights);
static vector<double> calculateWeights(vector<double> AicWeights); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
static vector<double> calculateFuzzyAdaptiveWeights(vector<double> timeSeria, vector<vector<double>> forecastedSeries); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
double getBicValue(int paramsCount, vector<double> original, vector<double> model);
double getAiccValue(int paramsCount, vector<double> original, vector<double> model);
double getValue(int paramsCount,// int tsLen, bool isSecondOrder,
vector<double> original, vector<double> model); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double getValue(// int tsLen, bool isSecondOrder,
vector<double> original, vector<double> model); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
#endif