import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_squared_error
# 假设你有一个时间序列数据,存储在DataFrame的'value'列中
# 例如,这里我们生成一个示例时间序列数据
np.random.seed(0)
date_rng = pd.date_range(start='1/1/2020', end='1/01/2023', freq='D')
df = pd.DataFrame(date_rng, columns=['date'])
df['value'] = np.random.randn(len(df)).cumsum() # 累积和生成一个趋势时间序列
df.set_index('date', inplace=True)
# 拆分训练集和测试集
train_size = int(len(df) * 0.8)
train, test = df[:train_size], df[train_size:]
# 拟合ARIMA模型
# 这里我们假设p=1, d=1, q=1,但在实际应用中你应该根据ACF和PACF图来确定这些参数
model = ARIMA(train, order=(1, 1, 1))
model_fit = model.fit()
# 打印模型摘要
print(model_fit.summary())
# 预测测试集
start_index = test.index[0]
end_index = test.index[-1]
predictions = model_fit.predict(start=start_index, end=end_index, typ='levels')
# 计算均方误差(MSE)
mse = mean_squared_error(test['value'], predictions)
print(f'Mean Squared Error: {mse}')
# 可视化结果
plt.figure(figsize=(12, 6))
plt.plot(train.index, train['value'], label='Train')
plt.plot(test.index, test['value'], label='Test')
plt.plot(test.index, predictions, label='Predictions', color='red')
plt.legend(loc='best')
plt.show()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
ARIMA(AutoRegressive Integrated Moving Average,自回归积分滑动平均)模型是时间序列分析中常用的一种方法。它结合了自回归(AR)、差分(I)和移动平均(MA)三个步骤来预测未来的值。在Python中,statsmodels库提供了方便的ARIMA模型实现。 压缩包文件代码是一个使用statsmodels库来拟合ARIMA模型的示例代码。在这个示例中,我们首先生成了一个示例时间序列数据,并将其拆分为训练集和测试集。然后,我们拟合了一个ARIMA(1, 1, 1)模型,并使用该模型来预测测试集中的值。最后,我们计算了预测结果的均方误差(MSE),并可视化了训练集、测试集和预测结果。 请注意,在实际应用中,你需要根据时间序列数据的特性来确定ARIMA模型的参数(p, d, q)。这通常涉及到观察自相关函数(ACF)和偏自相关函数(PACF)图,以及进行模型诊断(如残差分析)。statsmodels库提供了绘制ACF和PACF图的函数,以及进行模型诊断的工具。
资源推荐
资源详情
资源评论
收起资源包目录
使用statsmodels库来拟合ARIMA模型示例代码.rar (1个子文件)
ARIMA.py 1KB
共 1 条
- 1
资源评论
图表制作解说(目标1000个图表)
- 粉丝: 947
- 资源: 305
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功