• 人民币-欧元预测(ARIMA算法)代码


    import pandas as pd
    import matplotlib.pyplot as plt
    import statsmodels as sm
    from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
    import numpy as np
    
    discfile = r'D:期末论文安排日线数据
    enminbi_ouyuan.xlsx'
    forecastnum = 5
    data = pd.read_excel(discfile, index_col = '时间')
    data = data['']
    data
    plt.rcParams['font.sans-serif'] = ['SimHei']
    ##datetime时间转化
    data.index = pd.to_datetime(data.index,format="%Y/%m/%d")
    plt.figure(figsize=(8,4))
    plt.plot(data)
    plt.show()
    ##ACF,PACF计算
    fig = plt.figure(figsize = (12,8))
    ax1 = fig.add_subplot(211)
    fig = plot_acf(data,lags = 40,ax =ax1)
    ax1.xaxis.set_ticks_position('bottom')
    fig.tight_layout()
    ax2 = fig.add_subplot(212)
    fig = plot_pacf(data,lags = 40,ax =ax2)
    ax1.xaxis.set_ticks_position('bottom')
    fig.tight_layout()
    
    data_diff = data.diff(5)
    data_diff = data_diff.dropna()
    
    ##差分后ACF,PACF计算
    fig = plt.figure(figsize = (12,8))
    ax1 = fig.add_subplot(211)
    fig = plot_acf(data_diff,lags = 40,ax =ax1)
    ax1.xaxis.set_ticks_position('bottom')
    fig.tight_layout()
    ax2 = fig.add_subplot(212)
    fig = plot_pacf(data_diff,lags = 40,ax =ax2)
    ax1.xaxis.set_ticks_position('bottom')
    fig.tight_layout()
    
    arima11 = sm.tsa.arima_model.ARMA(data_diff,order=(6,4))
    model_results=arima11.fit()
    predict = model_results.predict()
    forecast = model_results.forecast(5)
    plt.figure(figsize=(12,8))
    plt.plot(data_diff.iloc[data_diff.size-1000:data_diff.size])
    plt.plot(predict[data_diff.size-1000:data_diff.size],'r')
    plt.show()
  • 相关阅读:
    01:oracle sql developer配置
    删除eclipse或者MyEclipse的workspace记录
    c++特殊函数
    java类和对象的基础(笔记)
    java打印日历
    10_9 java笔记
    程序流程
    学习疑惑……
    位运算和逻辑运算
    多种类型的指针
  • 原文地址:https://www.cnblogs.com/xizhu/p/10143429.html
Copyright © 2020-2023  润新知