https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csvj基于这个数据使用arima的代码示例
时间: 2024-12-09 16:28:31 浏览: 13
"airline-passengers.csv" 是一个经典的季节性时间序列数据集,通常用于预测航空乘客的数量。ARIMA模型(自回归积分移动平均模型)是一种常用的时间序列分析工具,可以处理这种数据。以下是使用Python的`pandas`, `statsmodels`, 和 `sklearn`库对这个数据集应用ARIMA的一个简单示例:
```python
import pandas as pd
from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as plt
# 加载数据
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv"
data = pd.read_csv(url, index_col=0, parse_dates=True) # 设置日期作为索引
series = data['Passengers'] # 获取乘客数量列
# 数据预处理 (差分以去除趋势)
def difference(dataset, order=1):
diff = list()
for i in range(order+1):
diff.append([dataset.iloc[i + j] - dataset.iloc[i + j - 1] for j in range(len(dataset))])
return diff
diff_series = difference(series.dropna()) # 删除缺失值并做一次差分
# 确定合适的ARIMA模型
model = ARIMA(diff_series, order=(5, 1, 0)) # 这里假设我们选择了(5,1,0),你可以通过尝试不同的参数调整找到最优
model_fit = model.fit(disp=0)
# 预测未来数据
forecast, stderr, conf_int = model_fit.forecast(steps=12) # 假设我们要预测接下来12个月的数据
# 绘制原始数据、差分数据及预测结果
plt.figure(figsize=(10,6))
plt.plot(data, label='Original')
plt.plot(diff_series, label='First Difference')
plt.plot(forecast, marker='o', color='r', linestyle='', label='Forecast')
plt.fill_between(conf_int.index, conf_int[:, 0], conf_int[:, 1], alpha=0.5, color='k')
plt.legend()
plt.show()
```
阅读全文