Как вызвать функцию auto.Arima R в java и сохранить результат прогноза?

Я новичок в R в Java. Я использую функцию auto.Arima R в Java для прогнозирования моих данных на 12 периодов. но период прогнозируемого результата составляет десять периодов. Как я могу сделать прогноз на 12 периодов? Я также хочу сохранить результат прогноза в массиве. Это мой код, он не может перестать работать, и я получаю сообщения об ошибках.

Что я могу сделать, чтобы сохранить его результат?

package Arima;

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;

public class Arima {

    public static void main(String[] args) {
        Rengine re = new Rengine(Rargs, false, null);
        System.out.println("Rengine created, waiting for R");
        if (!re.waitForR()) {
            System.out.println("Cannot load R");
            return;
        }
        re.eval("library(forecast);");
        re.eval("data<-scan('D:/timeseries.txt',skip=1);");
        re.eval("datats<-data;");
        // I use auto.arima function to forecast my data for 12 periods. 
        // but the period of forecast result is ten period.
        // How can I do for 12 periods of forecast ?  

        re.eval("arima<-auto.arima(datats);");
        re.eval("fcast<-forecast(arima);");
        REXP fs = re.eval("summary(fcast);");
        // I want to get result of forecast and returned it at an array
        double[] forecast = fs.asDoubleArray();
        for(int i=0; i<forecast.length; i++)
            System.out.println(forecast[i]);
        re.end();
    }
}

person Nurul    schedule 22.01.2012    source источник
comment
Трудно ответить без информации о точных сообщениях об ошибках, которые вы получаете.   -  person tmr    schedule 16.02.2012


Ответы (1)


Функция прогноза имеет аргумент h, указывающий горизонт прогноза. По умолчанию h=10. Так что просто измените свой вызов на forecast(arima,h=12), и все будет в порядке.

person Rob Hyndman    schedule 06.03.2012