ts-aggregator/project_template/MultTrendAddSeasonality.h
2022-12-13 12:36:06 +04:00

34 lines
1009 B
C++

#ifndef MULTTRENDADDSEASONALITY_H
#define MULTTRENDADDSEASONALITY_H
#include "Method.h"
#include "Aic.h"
#include "Param.h"
using namespace std;
// êîíêðåòíàÿ ðåàëèçàöèÿ àáñòðàêòíîãî êëàññà Method
// ðåàëèçóåò ìåòîä ýêñïîíåíöèàëüíîãî ñãëàæèâàíèÿ ñ ìóëüòèïëèêàòâíûì òðåíäîì, àääèòèâíîé ñåçîííîñòüþ
class MultTrendAddSeasonality : public Method {
public:
double alpha; // ïàðàìåòð ñãëàæèâàíèÿ
vector<double> S; // ñãëàæåííûé äàííûì ìåòîäîì ðÿä
double gamma; // ïàðàìåòð ñãëàæèâàíèÿ òðåíäà
double delta; // ïàðàìåòð ñãëàæèâàíèÿ ñåçîííîé êîìïîíåíòû
vector<double> T; // ñãëàæåííûé òðåíä
vector<double> I; // ñåçîííàÿ êîìïîíåíòà
int p; // ïåðèîä ñåçîííîñòè
MultTrendAddSeasonality(vector<double>, int);
~MultTrendAddSeasonality();
vector<double> getForecast();
void init();
void createModel();
void createModelForEstimation();
void setParam(string, double);
double calcEstimation(Aic *);
Param* optimize(Estimation *); // ìåòîä îïòèìèçàöèè îäíîãî ïàðàìåòðà
};
#endif