Как я могу прогнозировать многомерный временной ряд? - PullRequest
0 голосов
/ 07 июля 2019

Я использовал следующий код в atmot для прогнозирования многомерных временных рядов с использованием библиотеки статистики Sunashu.

double[][] series = {
    {0,118},
    {11,143},
    {13,145},
    {3,88},
    {11,138},
    {3,180},
    {5,88}
};

Matrix matrix = new DenseMatrix(series);

int p = 1;
MultivariateIntTimeTimeSeries timeSeries = new MultivariateSimpleTimeSeries(matrix);
VARFit varFit = new VARFit(timeSeries, p);
VARMAModel varmaModel = varFit.getVARMA();

System.out.println("VARMA model: " + varmaModel);
VARMAForecastOneStep forecast = new VARMAForecastOneStep(timeSeries, varmaModel);
System.out.println("forecast series: " + forecast.xHat(12));

Я получаю следующую трассировку стека:

Exception in thread "main" java.lang.IllegalArgumentException: EX<sub>t</sub> = 0
    at com.numericalmethod.suanshu.misc.ArgumentAssertion.assertTrue(vjb:256)
    at com.numericalmethod.suanshu.stats.timeseries.linear.multivariate.stationaryprocess.arma.VARMAAutoCovariance.<init>(ol:188)
    at com.numericalmethod.suanshu.stats.timeseries.linear.multivariate.stationaryprocess.arma.VARMAForecastOneStep.<init>(em:117)
    at net.aline.paml.compute.test.VARFitExample.main(VARFitExample.java:58)

Ошибка выдается в следующей строке:

public VARMAAutoCovariance(VARMAModel model, int nLags) {
ArgumentAssertion.assertTrue(DoubleUtils.isZero(model.mu().norm(), 0.0D), "EX<sub>t</sub> = 0", new Object[0]);
...