Java調用R語言完成時間序列預測

1、R語言可以通過按照rJava包,然後調用Java對象

2、Java可以導入Jri包,調用R語言腳本。

Java調用R語言兩種方式。

1、Reverse方式

 

import org.rosuda.REngine.REXP;

import org.rosuda.REngine.Rserve.RConnection;

 

public class Test {

    public static void main(String[] args) {

       try {

           RConnection c = new RConnection();

           REXP x = c.eval("R.version.string");

           System.out.println(x.asString());

       } catch (Exception e) {

            e.printStackTrace();

       }

    }

}

 

2、JRI方式

參見JRI示例代碼rtest

3、集成過程中可能遇到的坑

環境變量配置

必須配置和系統對應的32位或者64位環境變量,分別位R_HOME,JRI_HOME,R_HOME\bin,JRI_HOME\x64

Rengine類NOTFOUND異常,需要檢查Rengine是否添加到工程class path下。fone.components下可能需要在自己的plugin.xml文件中配置,因爲重寫了PluginClassLoader。

R腳本異常輸出

R腳本中支持tryCatch(),可以獲取對應的異常,我們此處通過tryCatch獲取異常信息,並且輸出到日誌文件中,格式如下:

output<-tryCatch({

express

},error=function(err){write.table(paste(err,""), file=logFileName, col.names=FALSE)})

R語言中的數據轉換

R語言中一般可以通過as.的形式進行數據轉換,如:as.numeric(),as.Date, data.as.dataframe()

R語言中的時間序列

R語言中的時間序列,目前只支持日期格式“yyyy-mm-dd”或者“yyyy-mm”格式,即時間序列中的date必須是時間類型,單獨的yyyy(年)不行。

R語言中的時間序列預測

時間序列預測,一般用兩種預測模型(ARIMA, Holt-winters)。(此部分待補充)(預測分解)

ARIMA使用方式:

datatsfc<-auto.arima(datas)#自動時間序列模型(水平、趨勢、季節自動識別調整)

datatsfc2<-forecast(datatsfc,h=forecastPeriodNums)#ARIMA模型預測

Holt-winters:(區分加法模型和乘法模型,即是否考慮季節性趨勢)

datatsfc<-HoltWinters(datas)

datatsfc2<-forecast:::forecast.HoltWinters(datatsfc, h=forecastPeriodNums)

預測模型驗證

R語言中提供了accuracy()函數對預測結果進行檢查。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章