以下是使用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])
请注意,这些代码示例仅供参考,实际应用时需要根据具体数据集进行调整。例如,模型的参数(如滞后阶数、季节周期等)需要根据数据集的特性来确定。此外,生成的示例数据仅用于演示,实际分析时应使用真实的时间序列数据。
标签:分析,fit,示例,len,时间,序列,import,model,data From: https://www.cnblogs.com/redufa/p/18493882