时间序列分析之ARIMA——Java实现

通过ADF检验计算出p值,如果p值大于0.05,则说明数据不平稳,需要进行差分处理,差分后的数据,再次进行p值计算,如果不满足条件,则继续差分,最后得出总共进行了几次差分,差分次数即为ARIMA的参数d。
本文主要参考:
https://blog.csdn.net/u013201628/article/details/62236654
但是进行了修改,取消了季节性差分,而是转换为通过d值进行差分数据,然后进行预测的过程。

public double [] preDealDiff(int period)
{
    switch (period)
    {
        case 0:
            return this.originalData;
        case 1:
            this.dataFirDiff = this.preFirDiff(this.originalData);
            return this.dataFirDiff;
        case 2:
            this.dataFirDiff = this.preFirDiff(this.originalData);
            this.dataFirDiff = this.preFirDiff(this.dataFirDiff);
            return this.dataFirDiff;

        default:
            this.dataFirDiff = this.preFirDiff(this.originalData);
            this.dataFirDiff = this.preFirDiff(this.dataFirDiff);
            this.dataFirDiff = this.preFirDiff(this.dataFirDiff);
            return this.dataFirDiff;
    }
}
public int aftDeal(int predictValue, int period)
{

    switch (period) {
    case 0:
        return (int)predictValue;
    case 1:
        return (int)(predictValue + originalData[originalData.length - 1]);
    case 2:
        return (int)(predictValue + originalData[originalData.length - 1]  + preDealDiff(1)[preDealDiff(1).length -1]);
    default:
        return (int)(predictValue + originalData[originalData.length - 1] +  preDealDiff(2)[preDealDiff(2).length - 1]  + preDealDiff(1)[preDealDiff(1).length -1]);
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值