Я использовал следующий код в 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]);