时间序列分析

以下是使用Python进行时间序列分析的十个示例代码,这些代码涵盖了不同的时间序列分析方法,包括ARIMA、季节性分解、指数平滑等。

1. 自回归(AR)模型

from statsmodels.tsa.ar_model import AutoReg
import numpy as np

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合AR模型
model = AutoReg(data, lags=1)
model_fit = model.fit()

# 进行预测
yhat = model_fit.predict(len(data), len(data))

2. 移动平均(MA)模型

from statsmodels.tsa.arima.model import ARIMA

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合MA模型
model = ARIMA(data, order=(0, 0, 1))
model_fit = model.fit()

# 进行预测
yhat = model_fit.predict(len(data), len(data))

3. 自回归移动平均(ARMA)模型

from statsmodels.tsa.arima.model import ARIMA

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合ARMA模型
model = ARIMA(data, order=(2, 1))
model_fit = model.fit()

# 进行预测
yhat = model_fit.predict(len(data), len(data))

4. 自回归积分移动平均(ARIMA)模型

from statsmodels.tsa.arima.model import ARIMA

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合ARIMA模型
model = ARIMA(data, order=(1, 1, 1))
model_fit = model.fit()

# 进行预测
yhat = model_fit.predict(len(data), len(data), typ='levels')

5. 季节性自回归积分移动平均(SARIMA)模型

from statsmodels.tsa.statespace.sarimax import SARIMAX

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合SARIMA模型
model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
model_fit = model.fit(disp=False)

# 进行预测
yhat = model_fit.predict(len(data), len(data))

6. 向量自回归(VAR)模型

from statsmodels.tsa.vector_ar.var_model import VAR

# 生成示例多变量数据
data = np.random.randn(100, 2)

# 拟合VAR模型
model = VAR(data)
model_fit = model.fit()

# 进行预测
yhat = model_fit.forecast(model_fit.y, steps=1)

7. 简单指数平滑(SES)模型

from statsmodels.tsa.holtwinters import SimpleExpSmoothing

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合SES模型
model = SimpleExpSmoothing(data)
model_fit = model.fit()

# 进行预测
yhat = model_fit.predict(len(data), len(data))

8. Holt-Winters指数平滑(HWES)模型

from statsmodels.tsa.holtwinters import ExponentialSmoothing

# 生成示例数据
data = np.random.randn(100).cumsum()

# 拟合HWES模型
model = ExponentialSmoothing(data, trend="add", seasonal="add", seasonal_periods=12)
model_fit = model.fit()

# 进行预测
yhat = model_fit.forecast(12)

9. 时间序列分解

from statsmodels.tsa.seasonal import seasonal_decompose

# 生成示例数据
data = np.random.randn(100).cumsum()

# 时间序列分解
decomposition = seasonal_decompose(data, model='additive')
decomposition.plot()

10. 时间序列的平稳性检验(ADF测试)

from statsmodels.tsa.stattools import adfuller

# 生成示例数据
data = np.random.randn(100).cumsum()

# 执行ADF测试
result = adfuller(data)
print('ADF Statistic:', result[0])
print('p-value:', result[1])

请注意,这些代码示例仅供参考,实际应用时需要根据具体数据集进行调整。例如,模型的参数(如滞后阶数、季节周期等)需要根据数据集的特性来确定。此外,生成的示例数据仅用于演示,实际分析时应使用真实的时间序列数据。

posted @   redufa  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示