zoukankan      html  css  js  c++  java
  • 基于R语言的时间序列分析预测

    • 数据来源: R语言自带 Nile 数据集(尼罗河流量)
    • 分析工具:R-3.5.0 & Rstudio-1.1.453
    #清理环境,加载包
    rm(list=ls())
    library(forecast)
    library(tseries)
    #趋势查看
    plot(Nile)
    

    #平稳性检验
    #自相关图
    acf(Nile)
    

    #偏相关图
    pacf(Nile)
    

    #也可以直接用tsdisplay查看
    tsdisplay(Nile)
    

    #单位根检验
    adf.test(Nile)
    

    • 从自相关图上看,自相关系数没有快速衰减为0,呈拖尾,单位根检验进一步验证,存在单位根,所以序列为非平稳序列
    #做序列差分
    #可以用ndiffs判断需要做几阶差分
    ndiffs(Nile)
    

    • 需要做一阶差分
    #做一阶差分,然后再进行检验
    Nile_diff=diff(Nile,1)
    plot(Nile_diff)
    

    acf(Nile_diff)
    

    pacf(Nile_diff)
    

    adf.test(Nile_diff)
    

    #建立模型
    (mod=arima(Nile,order=c(0,1,1),method='ML'))
    

    • 根据acf图和pacf图,拟定为0,1,1
    #auto.arima通过选取AIC和BIC最小来选取模型,与根据acf和pacf图建立的模型进行比较
    (mod_auto=auto.arima(Nile))
    

    # 残差正态性检验
    qqnorm(mod$residuals)
    qqline(mod$residuals)
    

    qqnorm(mod_auto$residuals)
    qqline(mod_auto$residuals)
    

    # 残差白噪检验
    Box.test(mod$residuals,type='Ljung-Box')
    

    Box.test(mod_auto$residuals,type='Ljung-Box')
    

    • 根据检验结果来看,还是选择根据acf图和pacf图建立的模型比较好
    # 进行预测
    (pre=forecast(mod,5))
    

    plot(Nile,col='pink')
    par(new=T)
    plot(pre,col='green')
    

    plot(pre,col='green')
    

  • 相关阅读:
    .NET 图片解密为BASE64
    IIS&ASP.NET 站点IP跳转到域名
    http转https实战教程iis7.5
    接口传参几种方式
    Python3 字符串
    ASP.Net Core WebApi几种版本控制对比
    Docker 部署NetCore 接口(三)
    Docker关键概念和基本命令(二)
    Windows平台下kafka环境的搭建以及简单使用
    CentOS7 安装 Docker-CE(一)
  • 原文地址:https://www.cnblogs.com/purple5252/p/15540219.html
Copyright © 2011-2022 走看看