python ARIMA时间序列分析之forecast 、predict and get_prediction

本文介绍了使用ARIMA模型进行时间序列分析的方法,重点讲解了forecast和predict函数的使用,包括如何设置参数来预测未来的值以及获取预测结果的置信区间。
部署运行你感兴趣的模型镜像

时间序列分析-2 forecast 、predict

forecast and get_forcast、predict and get_prediction
forecast 参数steps,表示预报多少个时间点(fit样本数据后)。
eg:

from statsmodels.tsa.arima.model import ARIMA

y=[1,2,3,4,5,6]

model=ARIMA(y,order=(1,1,0))
m=model.fit()
m.forecast(5)

在fit数据序列后(样本外),forecast5个点(为7,8,9,10,11)y的值。

predict 参数(start,end) ,start起始时间点,end结束时间点。
起始、结束都没有限制(in sample与out of sample 均可),end大于start。
样本内的为拟合值,样本外为预测。

如果只给一个int值,缺省认为:
大于fit样本的最后时间点,预测这个时刻的值。
小于fit样本的最后时间点,predict当前值到fit样本的最后时间点。

eg:

x=[1,2,3,4,5,6]
model=ARIMA(y,order=(1,1,0))
m=model.fit()
m.predict(2) #predict x等于2,3,4,5,6的y
m.predict(7) #forecast x等于7的y

get_prediction, get_forecast基本同上
但返回的值不一样。
他们都给出置信区间conf_int
预测结果为置信区间的均值。
通过.predicted_mean或forecast_mean属性获取预测值。

eg:

from statsmodels.tsa.arima.model import ARIMA
y=[1,2,3,4,5,6]
model=ARIMA(y,order=(1,1,0))
m=model.fit()
result=m.get_prediction(2)

result.conf_int() #返回置信区间

result.predicted_mean #返回预测结果

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 时间序列分析Python 开源代码 对于时间序列分析,虽然 `hctsa` 是一个强大的工具包并支持数千种特征提取方法[^1],但它主要基于 MATLAB 实现。然而,可以通过 `pyopy` 包将其集成到 Python 中使用。除此之外,还有许多专门为 Python 设计的时间序列分析开源库。 以下是几个广泛使用的 Python 时间序列分析开源项目: #### 1. **Statsmodels** `statsmodels` 提供了丰富的统计模型和时间序列分析功能,适合传统的时间序列建模需求。 ```python import statsmodels.api as sm from statsmodels.tsa.arima.model import ARIMA # 创建ARIMA模型实例 model = ARIMA(data, order=(5,1,0)) result = model.fit() print(result.summary()) ``` #### 2. **Prophet** 由 Facebook 开发的 Prophet 库专为处理具有强烈季节性和趋势变化的时间序列数据而设计。它非常适合商业场景中的预测任务。 ```python from fbprophet import Prophet # 初始化Prophet模型 m = Prophet() m.fit(df) # 构造未来日期的数据框 future = m.make_future_dataframe(periods=365) forecast = m.predict(future) ``` #### 3. **Darts** `darts` 是一个灵活且易于使用的 Python 库,适用于各种时间序列任务,包括单变量和多变量预测、分类以及异常检测。 ```python from darts.models import ExponentialSmoothing # 使用指数平滑法创建模型 model = ExponentialSmoothing(trend="add", seasonal="multiplicative", sp=12) model.fit(train_series) prediction = model.predict(24) ``` #### 4. **Pandas 和 NumPy** 尽管不是专门针对时间序列的库,但 Pandas 和 NumPy 的组合可以完成大部分基础操作,例如重采样、滚动窗口计算等。 ```python import pandas as pd # 对时间序列进行重采样 resampled_data = data.resample('M').mean() # 计算移动平均 rolling_mean = data['value'].rolling(window=7).mean() ``` #### 数据子集选取 如果需要从 DataFrame 中选择特定列来辅助时间序列分析,则可利用 `.loc[]` 或 `.iloc[]` 方法实现这一目标[^2]。 ```python selected_columns_df = df[['timestamp', 'value']] print(selected_columns_df) ``` #### 关于开源软件的优势 客户倾向于采用开源软件的主要原因在于其灵活性、定制化能力以及与其他技术栈的良好兼容性[^3]。这使得像上述提到的各种 Python 工具能够被快速采纳并融入现有工作流中。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITLiu_JH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值