ARIMA模型全称为自回归差分移动平均模型(Autoregressive Integrated Moving Average Model)。ARIMA模型主要由三部分构成,分别为自回归模型(AR)、差分过程(I)和移动平均模型(MA)。
RIMA模型的基本思想是利用数据本身的历史信息来预测未来。一个时间点上的标签值既受过去一段时间内的标签值影响,也受过去一段时间内的偶然事件的影响,这就是说,ARIMA模型假设:标签值是围绕着时间的大趋势而波动的,其中趋势是受历史标签影响构成的,波动是受一段时间内的偶然事件影响构成的,且大趋势本身不一定是稳定的。
这个模型还听常用的,因此今天试着使用这个模型做了以下某市的GDP预测。代码如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pywt
import os
# 创建输出目录
output_directory = "D:/xiaobo/output_images/"
os.makedirs(output_directory, exist_ok=True)
# 指定中文显示
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题
# 从CSV文件读取数据
df = pd.read_csv("D:/xiaobo/data_arima.csv",parse_dates=['year'], index_col='year',encoding='gbk')
# 模型训练
from statsmodels.tsa.arima.model import ARIMA
# 选择GDP时间序列
ts = df['GDP_dx']
# 假设通过ACF和PACF确定了参数p=1, d=1, q=1
model = ARIMA(ts, order=(1, 1, 1))
model_fit = model.fit()
# 预测未来的10个值
forecast = model_fit.forecast(steps=3)
print("预测值:")
print(forecast)
# 可视化预测结果
plt.figure(figsize=(10, 6))
plt.plot(ts, label="原始数据")
plt.plot(forecast, label="预测数据", color="red")
plt.legend()
plt.tick_params(axis='x', labelsize=14)
plt.tick_params(axis='y', labelsize=14)
plt.show()
实际上的结果,2023年:43800左右;2024年:预计46000左右;
这个预测GDP的结果比我预料的要好。
下一步要继续了解ARIMA算法的内涵和原理,才能更好的应用。
希望对你有用。
标签:plt,模型,ARIMA,实践,算法,import,model,forecast From: https://blog.csdn.net/lhr123789/article/details/144769266