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()函数对预测结果进行检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值