python之多元时间序列ARIMAX

python之多元时间序列ARIMAX

python之多元时间序列ARIMAX

python之多元时间序列ARIMAX 

python之多元时间序列ARIMAX 

python之多元时间序列ARIMAX 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

import statsmodels.api as sm
from pylab import mpl

# 画图中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

data_df = pd.read_excel("先行期数划分.xlsx", encoding="ANSI", sheet_name="电量")

data_df.columns = ["时间", "电量"]

# 先行期即变量
data_df["变量"] = data_df["电量"]-10000
data_df.head()

data_df.index=data_df["时间"]

data_df[["电量"]].plot()

# 训练集、测试集
train_df = data_df.iloc[:-5,:]
test_df = data_df.iloc[-5:,:]

# 训练
modle = sm.tsa.statespace.SARIMAX(train_df["电量"], exog=train_df["变量"]).fit(disp=-1)
modle.summary()

# 预测5个月
modle.forecast(steps=5, exog=test_df[["变量"]])